コード例 #1
0
def setup_covariance_matrix_scaling_factor_beta(equality_constraints, \
    optimization_variables, residuals):

    beta = ci.mul([residuals.T, residuals]) / (residuals.numel() + \
        equality_constraints.numel() - optimization_variables.numel())

    return beta
コード例 #2
0
ファイル: matrices.py プロジェクト: adbuerger/casiopeia
def setup_covariance_matrix_scaling_factor_beta(equality_constraints, \
    optimization_variables, residuals):

    beta = ci.mul([residuals.T, residuals]) / (residuals.size() + \
        equality_constraints.size() - optimization_variables.size())

    return beta
コード例 #3
0
ファイル: matrices.py プロジェクト: adbuerger/casiopeia
    def _setup_fisher_matrix(self):

        self._fisher_matrix = self._fisher_matrix_A - ci.mul([ \

                self._fisher_matrix_B.T, \

                ci.solve(self._fisher_matrix_C, \
                        
                        self._fisher_matrix_B, \
                        
                        "csparse")])
コード例 #4
0
    def _setup_fisher_matrix(self):

        self._fisher_matrix = self._fisher_matrix_A - ci.mul([ \

                self._fisher_matrix_B.T, \

                ci.solve(self._fisher_matrix_C, \

                        self._fisher_matrix_B, \

                        "csparse")])
コード例 #5
0
ファイル: doe.py プロジェクト: adbuerger/casiopeia
    def _plot_confidence_ellipsoids(self, pdata, properties = "initial"):

        if properties == "initial":

            covariance_matrix = {"initial": self.covariance_matrix_initial}

        elif properties == "optimized":

            covariance_matrix = {"optimized": self.covariance_matrix_optimized}

        elif properties == "all":

            covariance_matrix = {"initial" : self._covariance_matrix_initial, \
                "optimized" : self._covariance_matrix_optimized}

        else:

            raise ValueError('''
Input-value not supported, choose either "initial", "final", or "all".
''')

        plotting_directory = "confidence_ellipsoids_" + \
                os.path.basename(__main__.__file__).strip(".py")

        try:
            os.mkdir(plotting_directory)

        except OSError:
            if not os.path.isdir(plotting_directory):

                raise OSError('''
Plotting directory "confidence_ellipsoids_{0}"
does not yet exist, but could not be created.

Do you have write access within your working folder, or is
some file with this name already present within your working folder?
'''.format(plotting_directory))

        xy = np.array([np.cos(np.linspace(0, 2*np.pi, 100)), 
            np.sin(np.linspace(0, 2*np.pi, 100))])

        for p1 in range(pdata.size):

            for p2 in range(pdata.size)[p1+1:]:

                plt.figure()

                for prop, cm in covariance_matrix.iteritems():

                    covariance_matrix_p1p2 = np.array([ \

                            [cm[p1, p1], cm[p1, p2]], \
                            [cm[p2, p1], cm[p2, p2]]

                        ])

                    w, v = np.linalg.eig(covariance_matrix_p1p2)

                    ellipsoid = ci.repmat(np.array([pdata[p1], pdata[p2]]), 1, 100) + \
                        ci.mul([v, ci.diag(w), xy])

                    plt.plot(ellipsoid[0,:].T, ellipsoid[1,:].T, label = \
                        "p_" + str(p1) + ", p_" + str(p2) + " " + prop)
                
                plt.scatter(pdata[p1], pdata[p2], color = "k")    
                plt.legend(loc="upper right")                
                plt.savefig(plotting_directory + "/p_" + str(p1) + \
                    "-p_" + str(p2) + "-" + properties + ".png", bbox_inches='tight')
                plt.close()
コード例 #6
0
ファイル: pe.py プロジェクト: MannyKayy/casiopeia
    def _setup_objective(self):

        self._objective = 0.5 * ci.mul([self._residuals.T, self._residuals])
コード例 #7
0
ファイル: pe.py プロジェクト: adbuerger/casiopeia
    def _setup_objective(self):

        self._objective =  0.5 * ci.mul([self._residuals.T, self._residuals])
コード例 #8
0
ファイル: doe.py プロジェクト: MannyKayy/casiopeia
    def _plot_confidence_ellipsoids(self, pdata, properties = "initial"):

        if properties == "initial":

            covariance_matrix = {"initial": self.covariance_matrix_initial}

        elif properties == "optimized":

            covariance_matrix = {"optimized": self.covariance_matrix_optimized}

        elif properties == "all":

            covariance_matrix = {"initial" : self._covariance_matrix_initial, \
                "optimized" : self._covariance_matrix_optimized}

        else:

            raise ValueError('''
Input-value not supported, choose either "initial", "final", or "all".
''')

        plotting_directory = "confidence_ellipsoids_" + \
                os.path.basename(__main__.__file__).strip(".py")

        try:
            os.mkdir(plotting_directory)

        except OSError:
            if not os.path.isdir(plotting_directory):

                raise OSError('''
Plotting directory "confidence_ellipsoids_{0}"
does not yet exist, but could not be created.

Do you have write access within your working folder, or is
some file with this name already present within your working folder?
'''.format(plotting_directory))

        xy = np.array([np.cos(np.linspace(0, 2*np.pi, 100)), 
            np.sin(np.linspace(0, 2*np.pi, 100))])

        for p1 in range(pdata.size):

            for p2 in range(pdata.size)[p1+1:]:

                plt.figure()

                for prop, cm in covariance_matrix.iteritems():

                    covariance_matrix_p1p2 = np.array([ \

                            [cm[p1, p1], cm[p1, p2]], \
                            [cm[p2, p1], cm[p2, p2]]

                        ])

                    w, v = np.linalg.eig(covariance_matrix_p1p2)

                    ellipsoid = ci.repmat(np.array([pdata[p1], pdata[p2]]), 1, 100) + \
                        ci.mul([v, ci.diag(w), xy])

                    plt.plot(ellipsoid[0,:].T, ellipsoid[1,:].T, label = \
                        "p_" + str(p1) + ", p_" + str(p2) + " " + prop)
                
                plt.scatter(pdata[p1], pdata[p2], color = "k")    
                plt.legend(loc="upper right")                
                plt.savefig(plotting_directory + "/p_" + str(p1) + \
                    "-p_" + str(p2) + "-" + properties + ".png", bbox_inches='tight')
                plt.close()