def _bcbcg_blbcg_least_square_exp_b(self): """ """ self._BB_6 = np.random.random( ( self._mat.shape[0],6) ) self._BX_6 = np.ones ( (self._mat.shape[1],6) ) #line 1 blbcg_solver_obj = BLBCG() self._final_x_blbcg_m6s6, self._final_r_blbcg_m6s6, self._residual_hist_blbcg_m6s6 = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_6, self._BX_6, 6, self._tol, self._maxiter, 0) #line 2 blbcg_solver_obj = BLBCG() self._final_x_blbcg_m6s12, self._final_r_blbcg_m6s12, self._residual_hist_blbcg_m6s12 = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_6, self._BX_6, 12, self._tol, self._maxiter, 0) #line 3 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_m6s6, self._final_r_bcbcg_m6s6, self._residual_hist_bcbcg_m6s6 = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB_6, self._BX_6, 6, self._tol, self._maxiter, 0) #line 4 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_m6s12, self._final_r_bcbcg_m6s12, self._residual_hist_bcbcg_m6s12 = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB_6, self._BX_6, 12, self._tol, self._maxiter, 0) plot_worker = Presenter() residual_list = [self._residual_hist_blbcg_m6s6, self._residual_hist_blbcg_m6s12, \ self._residual_hist_bcbcg_m6s6, self._residual_hist_bcbcg_m6s12 ] legend_list = ["blbcg_m6s6", "blbcg_m6s12", "bcbcg_m6s6", "bcbcg_m6s12"] color_list = ["r","k","b","y"] #plot_worker.instant_plot_y_log10(residual_list, "Chem97ZtZ", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list) plot_worker.instant_plot_y_log10(residual_list, "test", "#iteration", "$\\mathbf{log_{10}\\frac{||x_1||}{||b_1||}}$", legend_list, color_list)
def _bcbcg_blbcg_least_square_exp_b(self): """ figure 2""" print("_bcbcg_blbcg_least_square_exp_b starting ... ") m = 3 self._BB = np.random.random((self._mat.shape[0], m)) self._BX = np.ones((self._mat.shape[1], m)) #line 1 blbcg_solver_obj = BLBCG() self._final_x_blbcg_a, self._final_r_blbcg_a, self._residual_hist_blbcg_a = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB, self._BX, 16, self._tol, self._maxiter, 0) #line 2 blbcg_solver_obj = BLBCG() self._final_x_blbcg_b, self._final_r_blbcg_b, self._residual_hist_blbcg_b = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB, self._BX, 32, self._tol, self._maxiter, 0) #line addition #blbcg_solver_obj = BLBCG() #self._final_x_blbcg_c, self._final_r_blbcg_c, self._residual_hist_blbcg_c = \ # blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_4, self._BX_4, 32, self._tol, self._maxiter, 0) #line 3 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_a, self._final_r_bcbcg_a, self._residual_hist_bcbcg_a = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB, self._BX, 16, self._tol, self._maxiter, 0) #line 4 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_b, self._final_r_bcbcg_b, self._residual_hist_bcbcg_b = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB, self._BX, 32, self._tol, self._maxiter, 0) #line addition #bcbcg_solver_obj = BCBCG() #self._final_x_bcbcg_c, self._final_r_bcbcg_c, self._residual_hist_bcbcg_c = \ # bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB_4, self._BX_4, 32, self._tol, self._maxiter, 0) plot_worker = Presenter() #residual_list = [self._residual_hist_blbcg_a, self._residual_hist_blbcg_b, self._residual_hist_blbcg_c, \ # self._residual_hist_bcbcg_a, self._residual_hist_bcbcg_b, self._residual_hist_bcbcg_c ] residual_list = [self._residual_hist_blbcg_a, self._residual_hist_blbcg_b, \ self._residual_hist_bcbcg_a, self._residual_hist_bcbcg_b ] #legend_list = ["blbcg_m4s4", "blbcg_m4s8", "blbcg_m4s12", "bcbcg_m4s4", "bcbcg_m4s8", "bcbcg_m4s12"] legend_list = [ "blbcg_m3s16", "blbcg_m3s32", "bcbcg_m3s16", "bcbcg_m3s32" ] #color_list = ["r","k","b","y","g","m"] color_list = ["r", "k", "b", "g"] #plot_worker.instant_plot_y_log10(residual_list, "test", "#iteration", "$\\mathbf{log_{10}\\frac{||x_1||}{||b_1||}}$", legend_list, color_list) plot_worker.instant_plot_y_log10( residual_list, "bodyy6", "#iteration", "$\\mathbf{log_{10}\\frac{||x_1||}{||b_1||}}$", legend_list, color_list)
def _bcbcg_blbcg_least_square_exp_b(self): """ figure 2""" print("_bcbcg_blbcg_least_square_exp_b starting ... ") m=3 self._BB = np.random.random( ( self._mat.shape[0],m) ) self._BX = np.ones ( (self._mat.shape[1],m) ) #line 1 blbcg_solver_obj = BLBCG() self._final_x_blbcg_a, self._final_r_blbcg_a, self._residual_hist_blbcg_a = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB, self._BX, 16, self._tol, self._maxiter, 0) #line 2 blbcg_solver_obj = BLBCG() self._final_x_blbcg_b, self._final_r_blbcg_b, self._residual_hist_blbcg_b = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB, self._BX, 32, self._tol, self._maxiter, 0) #line addition #blbcg_solver_obj = BLBCG() #self._final_x_blbcg_c, self._final_r_blbcg_c, self._residual_hist_blbcg_c = \ # blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_4, self._BX_4, 32, self._tol, self._maxiter, 0) #line 3 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_a, self._final_r_bcbcg_a, self._residual_hist_bcbcg_a = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB, self._BX, 16, self._tol, self._maxiter, 0) #line 4 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_b, self._final_r_bcbcg_b, self._residual_hist_bcbcg_b = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB, self._BX, 32, self._tol, self._maxiter, 0) #line addition #bcbcg_solver_obj = BCBCG() #self._final_x_bcbcg_c, self._final_r_bcbcg_c, self._residual_hist_bcbcg_c = \ # bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB_4, self._BX_4, 32, self._tol, self._maxiter, 0) plot_worker = Presenter() #residual_list = [self._residual_hist_blbcg_a, self._residual_hist_blbcg_b, self._residual_hist_blbcg_c, \ # self._residual_hist_bcbcg_a, self._residual_hist_bcbcg_b, self._residual_hist_bcbcg_c ] residual_list = [self._residual_hist_blbcg_a, self._residual_hist_blbcg_b, \ self._residual_hist_bcbcg_a, self._residual_hist_bcbcg_b ] #legend_list = ["blbcg_m4s4", "blbcg_m4s8", "blbcg_m4s12", "bcbcg_m4s4", "bcbcg_m4s8", "bcbcg_m4s12"] legend_list = ["blbcg_m3s16", "blbcg_m3s32", "bcbcg_m3s16", "bcbcg_m3s32"] #color_list = ["r","k","b","y","g","m"] color_list = ["r","k","b","g"] #plot_worker.instant_plot_y_log10(residual_list, "test", "#iteration", "$\\mathbf{log_{10}\\frac{||x_1||}{||b_1||}}$", legend_list, color_list) plot_worker.instant_plot_y_log10(residual_list, "bodyy6", "#iteration", "$\\mathbf{log_{10}\\frac{||x_1||}{||b_1||}}$", legend_list, color_list)
def _cg_bcg_blbcg_least_square_exp(self): """ """ self._BB_1 = np.random.random( ( self._mat.shape[0],1) ) self._BX_1 = np.ones ( (self._mat.shape[1],1) ) self._BB_6 = np.random.random( ( self._mat.shape[0],6) ) self._BX_6 = np.ones ( (self._mat.shape[1],6) ) self._BB_12 = np.random.random( ( self._mat.shape[0],12) ) self._BX_12 = np.ones ( (self._mat.shape[1],12) ) #line 1 bcg_solver_obj = NativeBlockConjugateGradient(self._mat, self._BX_1, self._BB_1, self._tol, self._maxiter) self._final_X_cg, self._final_R_cg, self._residual_hist_cg = bcg_solver_obj.bcg_variant_lstsq_run(0) #line 2 bcg_solver_obj = NativeBlockConjugateGradient(self._mat, self._BX_12, self._BB_12, self._tol, self._maxiter) self._final_X_bcg_m12, self._final_R_bcg_m12, self._residual_hist_bcg_m12 = bcg_solver_obj.bcg_variant_lstsq_run(0) #line 3 blbcg_solver_obj = BLBCG() self._final_x_blbcg_m1s2, self._final_r_blbcg_m1s2, self._residual_hist_blbcg_m1s2 = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_1, self._BX_1, 2, self._tol, self._maxiter, 0) #line 4 blbcg_solver_obj = BLBCG() self._final_x_blbcg_m1s6, self._final_r_blbcg_m1s6, self._residual_hist_blbcg_m1s6 = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_1, self._BX_1, 6, self._tol, self._maxiter, 0) #line 5 blbcg_solver_obj = BLBCG() self._final_x_blbcg_m6s2, self._final_r_blbcg_m6s2, self._residual_hist_blbcg_m6s2 = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_6, self._BX_6, 2, self._tol, self._maxiter, 0) #line 6 blbcg_solver_obj = BLBCG() self._final_x_blbcg_m6s6, self._final_r_blbcg_m6s6, self._residual_hist_blbcg_m6s6 = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_6, self._BX_6, 6, self._tol, self._maxiter, 0) plot_worker = Presenter() residual_list = [self._residual_hist_cg, self._residual_hist_bcg_m12, \ self._residual_hist_blbcg_m1s2, self._residual_hist_blbcg_m1s6, \ self._residual_hist_blbcg_m6s2, self._residual_hist_blbcg_m6s6 ] legend_list = ["cg","bcg_m12", "blbcg_m1s2", "blbcg_m1s6", "blbcg_m6s2", "blbcg_m6s6"] color_list = ["r","k","b","y","m","g"] 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_least_square_exp(self): """ """ blbcg_solver_obj = BLBCG() self._final_x_a, self._final_r_a, self._residual_hist_a = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB, self._BX, self._step_val, self._tol, self._maxiter, 0) bcbcg_solver_obj = BCBCG() self._final_x_b, self._final_r_b, self._residual_hist_b = \ bcbcg_solver_obj.bcbcg_solver(self._mat, self._BB, self._BX, self._step_val, self._tol, self._maxiter, 0) plot_worker = Presenter() residual_list = [self._residual_hist_a, self._residual_hist_b] legend_list = ["blbcg_s2b3_lstsq","blbcg_s2b3"] color_list = ["r","k"] plot_worker.instant_plot_y_log10(residual_list, "crystm01", "#iteration", "$\\frac{||x_1||}{||b_1||}$", legend_list, color_list)
def _cg_bcg_bcbcg_blcg_exp(self, block_size): """ """ print("_cg_bcg_bcbcg_least_square_exp starting, ... ") self._BB_1 = np.random.random((self._mat.shape[0], 1)) self._BX_1 = np.ones((self._mat.shape[1], 1)) self._BB_X = np.random.random((self._mat.shape[0], block_size)) self._BX_X = np.ones((self._mat.shape[1], block_size)) #line 1 bcg_solver_obj = NativeBlockConjugateGradient(self._mat, self._BX_1, self._BB_1, self._tol, self._maxiter) self._final_X_cg, self._final_R_cg, self._residual_hist_cg = bcg_solver_obj.bcg_variant_lstsq_run( 0) ##line 2 bcg_solver_obj = NativeBlockConjugateGradient(self._mat, self._BX_X, self._BB_X, self._tol, self._maxiter) self._final_X_bcg_mX, self._final_R_bcg_mX, self._residual_hist_bcg_mX = bcg_solver_obj.bcg_variant_lstsq_run( 0) #line 3 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_m1sY, self._final_r_bcbcg_m1sY, self._residual_hist_bcbcg_m1sY = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB_1, self._BX_1, self._step_val, self._tol, self._maxiter, 0) #line 4 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_mXsY, self._final_r_bcbcg_mXsY, self._residual_hist_bcbcg_mXsY = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB_X, self._BX_X, self._step_val, self._tol, self._maxiter, 0) #line 5 blbcg_solver_obj = BLBCG() self._final_x_blbcg_mXsY, self._final_r_blbcg_mXsY, self._residual_hist_blbcg_mXsY = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_X, self._BX_X, self._step_val, self._tol, self._maxiter, 0) plot_worker = Presenter() residual_list = [self._residual_hist_cg, self._residual_hist_bcg_mX, self._residual_hist_bcbcg_m1sY, \ self._residual_hist_bcbcg_mXsY, self._residual_hist_blbcg_mXsY] legend_list = ["cg","bcg_m"+str(block_size), "bcbcg_m1_s"+str(self._step_val), \ "bcbcg_m"+str(block_size)+"s"+str(self._step_val), "blbcg_m"+str(block_size)+"s"+str(self._step_val)] color_list = ["r", "k", "b", "g", "m"] plot_worker.instant_plot_y_log10( residual_list, "MG", "#iteration", "$\\mathbf{log_{10}\\frac{||r_1||}{||b_1||}}$", legend_list, color_list)
def _cg_bcg_bcbcg_blcg_exp(self, block_size): """ """ print("_cg_bcg_bcbcg_least_square_exp starting, ... ") self._BB_1 = np.random.random( ( self._mat.shape[0],1) ) self._BX_1 = np.ones ( (self._mat.shape[1],1) ) self._BB_X = np.random.random( ( self._mat.shape[0],block_size) ) self._BX_X = np.ones ( (self._mat.shape[1],block_size) ) #line 1 bcg_solver_obj = NativeBlockConjugateGradient(self._mat, self._BX_1, self._BB_1, self._tol, self._maxiter) self._final_X_cg, self._final_R_cg, self._residual_hist_cg = bcg_solver_obj.bcg_variant_lstsq_run(0) ##line 2 bcg_solver_obj = NativeBlockConjugateGradient(self._mat, self._BX_X, self._BB_X, self._tol, self._maxiter) self._final_X_bcg_mX, self._final_R_bcg_mX, self._residual_hist_bcg_mX = bcg_solver_obj.bcg_variant_lstsq_run(0) #line 3 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_m1sY, self._final_r_bcbcg_m1sY, self._residual_hist_bcbcg_m1sY = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB_1, self._BX_1, self._step_val, self._tol, self._maxiter, 0) #line 4 bcbcg_solver_obj = BCBCG() self._final_x_bcbcg_mXsY, self._final_r_bcbcg_mXsY, self._residual_hist_bcbcg_mXsY = \ bcbcg_solver_obj.bcbcg_solver_least_square(self._mat, self._BB_X, self._BX_X, self._step_val, self._tol, self._maxiter, 0) #line 5 blbcg_solver_obj = BLBCG() self._final_x_blbcg_mXsY, self._final_r_blbcg_mXsY, self._residual_hist_blbcg_mXsY = \ blbcg_solver_obj.blbcg_solver_least_square(self._mat, self._BB_X, self._BX_X, self._step_val, self._tol, self._maxiter, 0) plot_worker = Presenter() residual_list = [self._residual_hist_cg, self._residual_hist_bcg_mX, self._residual_hist_bcbcg_m1sY, \ self._residual_hist_bcbcg_mXsY, self._residual_hist_blbcg_mXsY] legend_list = ["cg","bcg_m"+str(block_size), "bcbcg_m1_s"+str(self._step_val), \ "bcbcg_m"+str(block_size)+"s"+str(self._step_val), "blbcg_m"+str(block_size)+"s"+str(self._step_val)] color_list = ["r","k","b","g","m"] plot_worker.instant_plot_y_log10(residual_list, "MG", "#iteration", "$\\mathbf{log_{10}\\frac{||r_1||}{||b_1||}}$", legend_list, color_list)