Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)