當前位置: 首頁>>代碼示例>>Python>>正文


Python sympy.zeros方法代碼示例

本文整理匯總了Python中sympy.zeros方法的典型用法代碼示例。如果您正苦於以下問題:Python sympy.zeros方法的具體用法?Python sympy.zeros怎麽用?Python sympy.zeros使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在sympy的用法示例。


在下文中一共展示了sympy.zeros方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: get_equations

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def get_equations(self):
        """
        :return: Functions to calculate A, B and f given state x and input u
        """
        f = sp.zeros(3, 1)

        x = sp.Matrix(sp.symbols('x y theta', real=True))
        u = sp.Matrix(sp.symbols('v w', real=True))

        f[0, 0] = u[0, 0] * sp.cos(x[2, 0])
        f[1, 0] = u[0, 0] * sp.sin(x[2, 0])
        f[2, 0] = u[1, 0]

        f = sp.simplify(f)
        A = sp.simplify(f.jacobian(x))
        B = sp.simplify(f.jacobian(u))

        f_func = sp.lambdify((x, u), f, 'numpy')
        A_func = sp.lambdify((x, u), A, 'numpy')
        B_func = sp.lambdify((x, u), B, 'numpy')

        return f_func, A_func, B_func 
開發者ID:EmbersArc,項目名稱:SCvx,代碼行數:24,代碼來源:diffdrive_2d.py

示例2: get_equations

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def get_equations(self):
        """
        :return: Functions to calculate A, B and f given state x and input u
        """
        f = sp.zeros(6, 1)

        x = sp.Matrix(sp.symbols('rx ry vx vy t w', real=True))
        u = sp.Matrix(sp.symbols('gimbal T', real=True))

        f[0, 0] = x[2, 0]
        f[1, 0] = x[3, 0]
        f[2, 0] = 1 / self.m * sp.sin(x[4, 0] + u[0, 0]) * u[1, 0]
        f[3, 0] = 1 / self.m * (sp.cos(x[4, 0] + u[0, 0]) * u[1, 0] - self.m * self.g)
        f[4, 0] = x[5, 0]
        f[5, 0] = 1 / self.I * (-sp.sin(u[0, 0]) * u[1, 0] * self.r_T)

        f = sp.simplify(f)
        A = sp.simplify(f.jacobian(x))
        B = sp.simplify(f.jacobian(u))

        f_func = sp.lambdify((x, u), f, 'numpy')
        A_func = sp.lambdify((x, u), A, 'numpy')
        B_func = sp.lambdify((x, u), B, 'numpy')

        return f_func, A_func, B_func 
開發者ID:EmbersArc,項目名稱:SCvx,代碼行數:27,代碼來源:rocket_landing_2d.py

示例3: compute_channel_operation

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def compute_channel_operation(rho, operators):
        """
        Given a quantum state's density function rho, the effect of the
        channel on this state is:
        rho -> sum_{i=1}^n E_i * rho * E_i^dagger

        Args:
            rho (number): Density function
            operators (list): List of operators

        Returns:
            number: The result of applying the list of operators
        """
        from sympy import zeros
        return sum([E * rho * E.H for E in operators],
                   zeros(operators[0].rows)) 
開發者ID:Qiskit,項目名稱:qiskit-aer,代碼行數:18,代碼來源:noise_transformation.py

示例4: get_matrix_from_channel

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def get_matrix_from_channel(channel, symbol):
        """
        Extract the numeric parameter matrix.

        Args:
            channel (matrix): a 4x4 symbolic matrix.
            symbol (list): a symbol xi

        Returns:
            matrix: a 4x4 numeric matrix.

        Additional Information:
            Each entry of the 4x4 symbolic input channel matrix is assumed to
            be a polynomial of the form a1x1 + ... + anxn + c. The corresponding
            entry in the output numeric matrix is ai.
        """
        from sympy import Poly
        n = channel.rows
        M = numpy.zeros((n, n), dtype=numpy.complex_)
        for (i, j) in itertools.product(range(n), range(n)):
            M[i, j] = numpy.complex(
                Poly(channel[i, j], symbol).coeff_monomial(symbol))
        return M 
開發者ID:Qiskit,項目名稱:qiskit-aer,代碼行數:25,代碼來源:noise_transformation.py

示例5: get_const_matrix_from_channel

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def get_const_matrix_from_channel(channel, symbols):
        """
        Extract the numeric constant matrix.

        Args:
            channel (matrix): a 4x4 symbolic matrix.
            symbols (list): The full list [x1, ..., xn] of symbols
                used in the matrix.

        Returns:
            matrix: a 4x4 numeric matrix.

        Additional Information:
            Each entry of the 4x4 symbolic input channel matrix is assumed to
            be a polynomial of the form a1x1 + ... + anxn + c. The corresponding
            entry in the output numeric matrix is c.
        """
        from sympy import Poly
        n = channel.rows
        M = numpy.zeros((n, n), dtype=numpy.complex_)
        for (i, j) in itertools.product(range(n), range(n)):
            M[i, j] = numpy.complex(
                Poly(channel[i, j], symbols).coeff_monomial(1))
        return M 
開發者ID:Qiskit,項目名稱:qiskit-aer,代碼行數:26,代碼來源:noise_transformation.py

示例6: compute_P

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def compute_P(self, As):
        """
        This method creates the matrix P in the
        f(x) = 1/2(x*P*x)+q*x
        representation of the objective function
        Args:
            As (list): list of symbolic matrices repersenting the channel matrices

        Returns:
            matrix: The matrix P for the description of the quadaric program
        """
        from sympy import zeros
        vs = [numpy.array(A).flatten() for A in As]
        n = len(vs)
        P = zeros(n, n)
        for (i, j) in itertools.product(range(n), range(n)):
            P[i, j] = 2 * numpy.real(numpy.dot(vs[i], numpy.conj(vs[j])))
        return P 
開發者ID:Qiskit,項目名稱:qiskit-aer,代碼行數:20,代碼來源:noise_transformation.py

示例7: print_ode

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def print_ode(self, latex_output=False):
        '''
        Prints the ode in symbolic form onto the screen/console in actual
        symbols rather than the word of the symbol.

        Parameters
        ----------
        latex_output: bool, optional
            Defaults to false which prints the equation in terms of symbols,
            if set to yes then the formula in terms of latex equations will
            be printed onto the screen.
        '''
        A = self.get_ode_eqn()
        B = sympy.zeros(A.rows,2)
        for i in range(A.shape[0]):
            B[i,0] = sympy.symbols('d' + str(self._stateList[i]) + '/dt=')
            B[i,1] = A[i]

        if latex_output:
            print(sympy.latex(B, mat_str="array", mat_delim=None,
                              inv_trig_style='full'))
        else:
            sympy.pretty_print(B) 
開發者ID:publichealthengland,項目名稱:pygom,代碼行數:25,代碼來源:deterministic.py

示例8: _computeOdeVector

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def _computeOdeVector(self):
        # we are only testing it here because we want to be flexible and
        # allow the end user to input more state than initially desired
        if len(self.ode_list) <= self.num_state:
            self._ode = sympy.zeros(self.num_state, 1)
            fromList, _t, eqn = self._unrollTransitionList(self.ode_list)
            for i, eqn in enumerate(eqn):
                if len(fromList[i]) > 1:
                    raise InputError("An explicit ode cannot describe more " +
                                     "than a single state")
                else:
                    self._ode[fromList[i][0]] = eqn
        else:
            raise InputError("The total number of ode is %s " +
                             "where the number of state is %s" %
                             len(self.ode_list), self.num_state)

        return None 
開發者ID:publichealthengland,項目名稱:pygom,代碼行數:20,代碼來源:base_ode_model.py

示例9: _computeTransitionVector

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def _computeTransitionVector(self):
        """
        Get all the transitions into a vector, arranged by state to
        state transition then the birth death processes
        """
        self._transitionVector = sympy.zeros(self.num_transitions, 1)
        _f, _t, eqn = self._unrollTransitionList(self._getAllTransition())
        for i, eqn in enumerate(eqn):
            self._transitionVector[i] = eqn

        return self._transitionVector

    ########################################################################
    #
    # Other type of matrices
    #
    ######################################################################## 
開發者ID:publichealthengland,項目名稱:pygom,代碼行數:19,代碼來源:base_ode_model.py

示例10: _computeTransitionJacobian

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def _computeTransitionJacobian(self):
        if self._GMat is None:
            self._computeDependencyMatrix()

        F = sympy.zeros(self.num_transitions, self.num_transitions)
        for i in range(self.num_transitions):
            for j, eqn in enumerate(self._transitionVector):
                for k, state in enumerate(self._iterStateList()):
                    diffEqn = sympy.diff(eqn, state, 1)
                    tempEqn, isDifficult = simplifyEquation(diffEqn)
                    F[i,j] += tempEqn*self._vMat[k,i]
                    self._isDifficult = self._isDifficult or isDifficult

        self._transitionJacobian = F

        self._hasNewTransition.reset('transitionJacobian')
        return F 
開發者ID:publichealthengland,項目名稱:pygom,代碼行數:19,代碼來源:simulate.py

示例11: test_cu3

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def test_cu3():
    E = eye(2)
    UPPER = Matrix([[1, 0], [0, 0]])
    LOWER = Matrix([[0, 0], [0, 1]])
    theta, phi, lambd = symbols("theta phi lambd")
    U = Circuit().rz(lambd)[0].ry(theta)[0].rz(phi)[0].run_with_sympy_unitary()

    actual_1 = Circuit().cu3(theta, phi, lambd)[0, 1].run(backend="sympy_unitary")
    expected_1 = reduce(TensorProduct, [E, UPPER]) + reduce(TensorProduct, [U, LOWER])
    print("actual")
    print(simplify(actual_1))
    print("expected")
    print(simplify(expected_1))
    print("diff")
    print(simplify(actual_1 - expected_1))
    assert simplify(actual_1 - expected_1) == zeros(4) 
開發者ID:Blueqat,項目名稱:Blueqat,代碼行數:18,代碼來源:test_sympy.py

示例12: get_equations

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def get_equations(self):
        """
        :return: Functions to calculate A, B and f given state x and input u
        """
        f = sp.zeros(14, 1)

        x = sp.Matrix(sp.symbols('m rx ry rz vx vy vz q0 q1 q2 q3 wx wy wz', real=True))
        u = sp.Matrix(sp.symbols('ux uy uz', real=True))

        g_I = sp.Matrix(self.g_I)
        r_T_B = sp.Matrix(self.r_T_B)
        J_B = sp.Matrix(self.J_B)

        C_B_I = dir_cosine(x[7:11, 0])
        C_I_B = C_B_I.transpose()

        f[0, 0] = - self.alpha_m * u.norm()
        f[1:4, 0] = x[4:7, 0]
        f[4:7, 0] = 1 / x[0, 0] * C_I_B * u + g_I
        f[7:11, 0] = 1 / 2 * omega(x[11:14, 0]) * x[7: 11, 0]
        f[11:14, 0] = J_B ** -1 * (skew(r_T_B) * u) - skew(x[11:14, 0]) * x[11:14, 0]

        f = sp.simplify(f)
        A = sp.simplify(f.jacobian(x))
        B = sp.simplify(f.jacobian(u))

        f_func = sp.lambdify((x, u), f, 'numpy')
        A_func = sp.lambdify((x, u), A, 'numpy')
        B_func = sp.lambdify((x, u), B, 'numpy')

        return f_func, A_func, B_func 
開發者ID:EmbersArc,項目名稱:SCvx,代碼行數:33,代碼來源:rocket_landing_3d.py

示例13: channel_matrix_representation

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def channel_matrix_representation(self, operators):
        """
        We convert the operators to a matrix by applying the channel to
        the four basis elements of the 2x2 matrix space representing
        density operators; this is standard linear algebra

        Args:
            operators (list): The list of operators to transform into a Matrix

        Returns:
            sympy.Matrix: The matrx representation of the operators
        """
        from sympy import Matrix, zeros
        shape = operators[0].shape
        standard_base = []
        for i in range(shape[0]):
            for j in range(shape[1]):
                basis_element_ij = zeros(*shape)
                basis_element_ij[(i, j)] = 1
                standard_base.append(basis_element_ij)

        return (Matrix([
            self.flatten_matrix(
                self.compute_channel_operation(rho, operators))
            for rho in standard_base
        ])) 
開發者ID:Qiskit,項目名稱:qiskit-aer,代碼行數:28,代碼來源:noise_transformation.py

示例14: get_equations

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def get_equations(self):
        """
        :return: Functions to calculate A, B and f given state x and input u
        """
        f = sp.zeros(14, 1)

        x = sp.Matrix(sp.symbols('m rx ry rz vx vy vz q0 q1 q2 q3 wx wy wz', real=True))
        u = sp.Matrix(sp.symbols('ux uy uz', real=True))

        g_I = sp.Matrix(self.g_I)
        r_T_B = sp.Matrix(self.r_T_B)
        J_B = sp.Matrix(self.J_B)

        C_B_I = dir_cosine(x[7:11, 0])
        C_I_B = C_B_I.transpose()

        f[0, 0] = - self.alpha_m * u.norm()
        f[1:4, 0] = x[4:7, 0]
        f[4:7, 0] = 1 / x[0, 0] * C_I_B * u + g_I
        f[7:11, 0] = 1 / 2 * omega(x[11:14, 0]) * x[7: 11, 0]
        f[11:14, 0] = J_B ** -1 * (skew(r_T_B) * u - skew(x[11:14, 0]) * J_B * x[11:14, 0])

        f = sp.simplify(f)
        A = sp.simplify(f.jacobian(x))
        B = sp.simplify(f.jacobian(u))

        f_func = sp.lambdify((x, u), f, 'numpy')
        A_func = sp.lambdify((x, u), A, 'numpy')
        B_func = sp.lambdify((x, u), B, 'numpy')

        return f_func, A_func, B_func 
開發者ID:EmbersArc,項目名稱:SuccessiveConvexificationFreeFinalTime,代碼行數:33,代碼來源:model_6dof.py

示例15: get_grad_eqn

# 需要導入模塊: import sympy [as 別名]
# 或者: from sympy import zeros [as 別名]
def get_grad_eqn(self):
        '''
        Return the gradient of the ode in algebraic form

        Returns
        -------
        :class:`sympy.matrices.matrices`
            A matrix of dimension [number of state x number of parameters]

        '''
        # finds

        if self._Grad is None:
            ode = self.get_ode_eqn()
            self._Grad = sympy.zeros(self.num_state, self.num_param)

            for i in range(self.num_state):
                # need to adjust such that the first index is not
                # included because it correspond to time
                for j, p in enumerate(self._iterParamList()):
                    eqn, isDifficult = simplifyEquation(diff(ode[i], p, 1))
                    self._Grad[i,j] = eqn
                    self._isDifficult = self._isDifficult or isDifficult

        if self._isDifficult:
            self._GradCompile = self._SC.compileExprAndFormat(self._sp,
                                                              self._Grad,
                                                              modules='mpmath',
                                                              outType="mat")
        else:
            self._GradCompile = self._SC.compileExprAndFormat(self._sp,
                                                              self._Grad,
                                                              outType="mat")
        self._hasNewTransition.reset('grad')

        return self._Grad 
開發者ID:publichealthengland,項目名稱:pygom,代碼行數:38,代碼來源:deterministic.py


注:本文中的sympy.zeros方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。