def _lbcg_least_square_exp(self): """ """ lbcg_solver_obj = LBCG() self._final_x_a, self._final_r_a, self._residual_hist_a = \ lbcg_solver_obj.lbcg_solver_least_square(self._mat, self._SB, self._SX, 8, self._tol, self._maxiter) self._final_x_b, self._final_r_b, self._residual_hist_b = \ lbcg_solver_obj.lbcg_solver_least_square(self._mat, self._SB, self._SX, 18, self._tol, self._maxiter) cbcg_solver_obj = CBCG() self._final_x_c, self._final_r_c, self._residual_hist_c = \ cbcg_solver_obj.cbcg_solver_least_square(self._mat, self._SB, self._SX, 8, self._tol, self._maxiter) self._final_x_d, self._final_r_d, self._residual_hist_d = \ cbcg_solver_obj.cbcg_solver_least_square(self._mat, self._SB, self._SX, 18, self._tol, self._maxiter) plot_worker = Presenter() residual_list = [ self._residual_hist_a, self._residual_hist_b, self._residual_hist_c, self._residual_hist_d ] legend_list = [ "lbcg_lstsq_s8", "lbcg_lstsq_s18", "cbcg_lstsq_s8", "cbcg_lstsq_s18" ] color_list = ["r", "k", "b", "y"] #plot_worker.instant_plot_y_log10(residual_list, "crystm01", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list) #plot_worker.instant_plot_y_log10(residual_list, "wathen100", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list) plot_worker.instant_plot_y_log10(residual_list, "bodyy06", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list)
def _pc_lbcg_vs_cbcg(self): """ """ #print(self._mat) self._pc_jacobi = diags(self._mat.diagonal()) #print ("") #print ("dia") #print(self._pc_jacobi) self._pc_jacobi = np.sqrt(self._pc_jacobi) #print ("") #print(self._pc_jacobi) self._pc_jacobi = inv(self._pc_jacobi) #print ("") #print ("inverse") #print(self._pc_jacobi) #print(type(self._pc_jacobi)) self._left_pcd_mat = aslinearoperator(self._pc_jacobi)( self._mat.toarray()) #print ("") #print ("left pcd") self._pcd_mat = np.matmul(self._left_pcd_mat, self._pc_jacobi.toarray()) #print ("") #print (csr_matrix(self._pcd_mat).diagonal()) #print ("mat cond:", np.linalg.cond(self._mat.toarray())) #print ("pcd_mat cond:", np.linalg.cond(self._pcd_mat)) self._pcd_mat = csr_matrix(self._pcd_mat) lbcg_solver_obj = LBCG() self._final_x_a, self._final_r_a, self._residual_hist_a = \ lbcg_solver_obj.lbcg_solver_least_square(self._pcd_mat, self._SB, self._SX, 8, self._tol, self._maxiter) self._final_x_b, self._final_r_b, self._residual_hist_b = \ lbcg_solver_obj.lbcg_solver_least_square(self._pcd_mat, self._SB, self._SX, 18, self._tol, self._maxiter) cbcg_solver_obj = CBCG() self._final_x_c, self._final_r_c, self._residual_hist_c = \ cbcg_solver_obj.cbcg_solver_least_square(self._pcd_mat, self._SB, self._SX, 8, self._tol, self._maxiter) self._final_x_d, self._final_r_d, self._residual_hist_d = \ cbcg_solver_obj.cbcg_solver_least_square(self._pcd_mat, self._SB, self._SX, 18, self._tol, self._maxiter) plot_worker = Presenter() residual_list = [ self._residual_hist_a, self._residual_hist_b, self._residual_hist_c, self._residual_hist_d ] legend_list = [ "pcd_lbcg_lstsq_s8", "pcd_lbcg_lstsq_s18", "pcd_cbcg_lstsq_s8", "pcd_cbcg_lstsq_s18" ] color_list = ["r", "k", "b", "y"] #plot_worker.instant_plot_y_log10(residual_list, "crystm01", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list) #plot_worker.instant_plot_y_log10(residual_list, "wathen100", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list) plot_worker.instant_plot_y_log10(residual_list, "bodyy06", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list)
def _db_lbcg_least_square_exp (self): """ """ lbcg_solver_obj = LBCG() self._final_x_a, self._final_r_a, self._residual_hist_a = \ lbcg_solver_obj.lbcg_solver_least_square(self._mat, self._SB, self._SX, self._step_val, self._tol, self._maxiter) cbcg_solver_obj = CBCG() self._final_x_b, self._final_r_b, self._residual_hist_b = \ cbcg_solver_obj.cbcg_solver(self._mat, self._SB, self._SX, self._step_val, self._tol, self._maxiter) plot_worker = Presenter() residual_list = [self._residual_hist_a, self._residual_hist_b] legend_list = ["lbcg_lstsq_s2", "cbcg_s2"] color_list = ["r","k"] #plot_worker.instant_plot_y_log10(residual_list, "crystm01", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list) plot_worker.instant_plot_y_log10(residual_list, "wathen100", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list)
def _db_lbcg_exp (self): """ """ lbcg_solver_obj = LBCG() self._final_x_a, self._final_r_a, self._residual_hist_a = \ lbcg_solver_obj.lbcg_solver(self._mat, self._B, self._X, 2, self._tol, self._maxiter) self._final_x_b, self._final_r_b, self._residual_hist_b = \ lbcg_solver_obj.lbcg_solver(self._mat, self._B, self._X, 8, self._tol, self._maxiter) cbcg_solver_obj = CBCG() self._final_x_c, self._final_r_c, self._residual_hist_c = \ cbcg_solver_obj.cbcg_solver(self._mat, self._B, self._X, 8, self._tol, self._maxiter) plot_worker = Presenter() residual_list = [self._residual_hist_a, self._residual_hist_b, self._residual_hist_c] legend_list = ["lbcg_s2","lbcg_s8", "cbcg_s8"] color_list = ["r","k", "b"] #plot_worker.instant_plot_y_log10(residual_list, "crystm01", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list) plot_worker.instant_plot_y_log10(residual_list, "vanbody", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list)
def _pc_lbcg_vs_cbcg(self): """ """ #print(self._mat) self._pc_jacobi = diags(self._mat.diagonal()) #print ("") #print ("dia") #print(self._pc_jacobi) self._pc_jacobi = np.sqrt(self._pc_jacobi) #print ("") #print(self._pc_jacobi) self._pc_jacobi = inv(self._pc_jacobi) #print ("") #print ("inverse") #print(self._pc_jacobi) #print(type(self._pc_jacobi)) self._left_pcd_mat = aslinearoperator(self._pc_jacobi)(self._mat.toarray()) #print ("") #print ("left pcd") self._pcd_mat = np.matmul (self._left_pcd_mat, self._pc_jacobi.toarray()) #print ("") #print (csr_matrix(self._pcd_mat).diagonal()) #print ("mat cond:", np.linalg.cond(self._mat.toarray())) #print ("pcd_mat cond:", np.linalg.cond(self._pcd_mat)) self._pcd_mat = csr_matrix(self._pcd_mat) lbcg_solver_obj = LBCG() self._final_x_a, self._final_r_a, self._residual_hist_a = \ lbcg_solver_obj.lbcg_solver_least_square(self._pcd_mat, self._SB, self._SX, 8, self._tol, self._maxiter) self._final_x_b, self._final_r_b, self._residual_hist_b = \ lbcg_solver_obj.lbcg_solver_least_square(self._pcd_mat, self._SB, self._SX, 18, self._tol, self._maxiter) cbcg_solver_obj = CBCG() self._final_x_c, self._final_r_c, self._residual_hist_c = \ cbcg_solver_obj.cbcg_solver_least_square(self._pcd_mat, self._SB, self._SX, 8, self._tol, self._maxiter) self._final_x_d, self._final_r_d, self._residual_hist_d = \ cbcg_solver_obj.cbcg_solver_least_square(self._pcd_mat, self._SB, self._SX, 18, self._tol, self._maxiter) plot_worker = Presenter() residual_list = [self._residual_hist_a, self._residual_hist_b, self._residual_hist_c, self._residual_hist_d ] legend_list = ["pcd_lbcg_lstsq_s8","pcd_lbcg_lstsq_s18" ,"pcd_cbcg_lstsq_s8", "pcd_cbcg_lstsq_s18" ] color_list = ["r","k", "b","y"] #plot_worker.instant_plot_y_log10(residual_list, "crystm01", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list) #plot_worker.instant_plot_y_log10(residual_list, "wathen100", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list) plot_worker.instant_plot_y_log10(residual_list, "bodyy06", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list)
def _lbcg_least_square_exp (self): """ """ lbcg_solver_obj = LBCG() self._final_x_a, self._final_r_a, self._residual_hist_a = \ lbcg_solver_obj.lbcg_solver_least_square(self._mat, self._SB, self._SX, 8, self._tol, self._maxiter) self._final_x_b, self._final_r_b, self._residual_hist_b = \ lbcg_solver_obj.lbcg_solver_least_square(self._mat, self._SB, self._SX, 18, self._tol, self._maxiter) cbcg_solver_obj = CBCG() self._final_x_c, self._final_r_c, self._residual_hist_c = \ cbcg_solver_obj.cbcg_solver_least_square(self._mat, self._SB, self._SX, 8, self._tol, self._maxiter) self._final_x_d, self._final_r_d, self._residual_hist_d = \ cbcg_solver_obj.cbcg_solver_least_square(self._mat, self._SB, self._SX, 18, self._tol, self._maxiter) plot_worker = Presenter() residual_list = [self._residual_hist_a, self._residual_hist_b, self._residual_hist_c, self._residual_hist_d ] legend_list = ["lbcg_lstsq_s8","lbcg_lstsq_s18" ,"cbcg_lstsq_s8", "cbcg_lstsq_s18" ] color_list = ["r","k", "b","y"] plot_worker.instant_plot_y_log10(residual_list, "test", "#iteration", "$\\mathbf{log_{10}\\frac{||x_1||}{||b_1||}}$", legend_list, color_list)
def _db_blbcg_exp(self): """ """ lbcg_solver_obj = LBCG() self._final_x_a, self._final_r_a, self._residual_hist_a = \ lbcg_solver_obj.lbcg_solver(self._mat, self._SB, self._SX, 8, self._tol, self._maxiter) blbcg_solver_obj = BLBCG() self._final_x_b, self._final_r_b, self._residual_hist_b = \ blbcg_solver_obj.blbcg_solver(self._mat, self._BB, self._BX, 8, self._tol, self._maxiter, 0) bcbcg_solver_obj = BCBCG() self._final_x_c, self._final_r_c, self._residual_hist_c = \ bcbcg_solver_obj.bcbcg_solver(self._mat, self._BB, self._BX, 8, self._tol, self._maxiter, 0) plot_worker = Presenter() residual_list = [self._residual_hist_a, self._residual_hist_b, self._residual_hist_c] legend_list = ["lbcg_s8","blbcg_s8b10", "bcbcg_s8b10"] color_list = ["r","k", "b"] plot_worker.instant_plot_y_log10(residual_list, "bodyy6", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list)