精华内容
下载资源
问答
  • 加速sympy矩阵运算

    2021-02-10 02:02:31
    我写了一个代码,它使用sympy来建立一个矩阵和一个向量。这两个元素是sympy符号。然后我把矩阵求逆,然后把逆矩阵和向量相乘。这应该是一个具有n个变量的线性方程组的通用解算器。我对这些线性方程的符号解法感兴趣...

    我写了一个代码,它使用sympy来建立一个矩阵和一个向量。这两个元素是sympy符号。然后我把矩阵求逆,然后把逆矩阵和向量相乘。这应该是一个具有n个变量的线性方程组的通用解算器。我对这些线性方程的符号解法感兴趣。

    问题是我的代码太慢了。

    例如,对于n=4,它大约需要30秒,但是对于n=7,我到目前为止还没有解决它,代码运行了一整晚(8小时),早上还没有完成。

    这是我的密码。在from sympy import *

    import pprint

    MM = Matrix(niso,1, lambda i,j:var('MM_%s' % (i+1) ))

    MA = Matrix (niso,1, lambda i,j:var('m_%s%s' % ('A', chr(66+i)) ) )

    MX = Matrix (niso,1, lambda i,j:var('m_%s%s'% (chr(66+i), 'A')))

    RB = Matrix(niso,1, lambda i,j:var('R_%s%s' % ('A'+chr(66+i),i+2)))

    R = Matrix (niso, niso-1, lambda i,j: var('R_%s%d' % (chr(65+i) , j+2 )))

    K= Matrix(niso-1,1, lambda i,j:var('K_%d' % (i+2) ) )

    C= Matrix(niso-1,1, lambda i,j:var('A_%d' % i))

    A = Matrix(niso-1,niso-1, lambda i,j:var('A_%d' % i))

    b = Matrix(niso-1,1, lambda i,j:var('A_%d' % i))

    for i in range(0,niso-1):

    for j in range(0,niso-1):

    A[i,j]=MM[j+1,0]*(Add(Mul(R[0,j],1/MA[i,0]/(RB[i,0]-R[0,i])))+R[i+1,j]/MX[i,0]/(-RB[i,0]+R[0,i]))

    for i in range(0,niso-1):

    b[i,0]=MM[0,0]*(Add(Mul(1,1/MA[i,0]/(RB[i,0]-R[0,i])))+1/MX[i,0]/(-RB[i,0]+R[0,i]))

    A_in = Inverse(A)

    if niso <= 4:

    X =simplify(A_in*b)

    if niso > 4:

    X = A_in*b

    pprint(X)

    有没有办法加快速度?在

    展开全文
  • python 矩阵初等行变换,解线性方程,numpy矩阵运算,sympy矩阵运算,求过渡矩阵,求具体某一基组下的坐标,解析几何 1.python实现 注意:用 python 对矩阵做初等行变换时,numpy 是没有现成的方法类似于rref()这样...

    python 矩阵初等行变换,解线性方程,numpy矩阵运算,sympy矩阵运算,求过渡矩阵,求具体某一基组下的坐标,解析几何

    1.python实现

    注意:用 python 对矩阵做初等行变换时,numpy 是没有现成的方法类似于rref()这样。
    但是 有一个科学计算库 sympy ,它的 Matrix 类 自带方法 rref() 专门做初等行变换;
    可以把 numpy.array() 的实例化对象传给 sympy.Matrix() 来创建,再 调用rref()方法。
    在这里插入图片描述

    2.matlab实现

    直接调用内置函数 rref() 就OK
    在这里插入图片描述

    展开全文
  • sympy版本:1.2假设求解矩阵方程AX=A+2X其中求解之前对矩阵方程化简为(A−2E)X=A令B=(A−2E)使用qtconsole输入下面程序进行求解In [26]: from sympy import *In [27]: from sympy.abc import *In [28]: A=Matrix([[4,...

    sympy版本:1.2

    假设求解矩阵方程

    AX=A+2X

    其中

    求解之前对矩阵方程化简为

    (A−2E)X=A

    B=(A−2E)

    使用qtconsole输入下面程序进行求解

    In [26]: from sympy import *

    In [27]: from sympy.abc import *

    In [28]: A=Matrix([[4,2,3],[1,1,0],[-1,2,3]])

    In [29]: A

    Out[29]:

    Matrix([

    [ 4, 2, 3],

    [ 1, 1, 0],

    [-1, 2, 3]])

    In [30]: B=A-2*diag(1,1,1)

    In [31]: B

    Out[31]:

    Matrix([

    [ 2, 2, 3],

    [ 1, -1, 0],

    [-1, 2, 1]])

    In [32]: B.inv()*A

    Out[32]:

    Matrix([

    [ 3, -8, -6],

    [ 2, -9, -6],

    [-2, 12, 9]])

    将结果验证一下:

    In [38]: X=B.inv()*A

    In [39]: X

    Out[39]:

    Matrix([

    [ 3, -8, -6],

    [ 2, -9, -6],

    [-2, 12, 9]])

    In [40]: A*X-A-2*X

    Out[40]:

    Matrix([

    [0, 0, 0],

    [0, 0, 0],

    [0, 0, 0]])

    求解矩阵方程过程中注意的问题是左乘还是右乘问题,在此例中是B.inv()*A ,如果矩阵方程变为

    XA=A+2X

    那么求解结果为:

    In [35]: X=A*B.inv()

    In [36]: X

    Out[36]:

    Matrix([

    [ 3, -8, -6],

    [ 2, -9, -6],

    [-2, 12, 9]])

    将结果验证一下:

    X=A*B.inv()

    X

    Out[36]:

    Matrix([

    [ 3, -8, -6],

    [ 2, -9, -6],

    [-2, 12, 9]])

    X*A-A-2*X

    Out[37]:

    Matrix([

    [0, 0, 0],

    [0, 0, 0],

    [0, 0, 0]])

    以上这篇python/sympy求解矩阵方程的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • Sympy矩阵求逆/运算

    2020-12-08 04:03:46
    使用Continuum Anaconda分布中的Sympy 0.7.2(我懒得自己构建堆栈,不要讨厌),当我在做复杂矩阵代数时,经常遇到这个问题,其中一些本机函数将典型的“1j”替换为“I”。这很烦人,因为它不能很好地处理其他算术运算...

    使用Continuum Anaconda分布中的Sympy 0.7.2(我懒得自己构建堆栈,不要讨厌),当我在做复杂矩阵代数时,经常遇到这个问题,其中一些本机函数将典型的“1j”替换为“I”。这很烦人,因为它不能很好地处理其他算术运算,基本上保持了它的形式并增加了因子,而不是计算一个浓缩的结果。我举个例子:>>> T

    [ 1, 1.0 - 1.0*I]

    [1.0 + 1.0*I, 0]

    >>> T.inv()

    [-(0.5 + 0.5*I)*(1.0 - 1.0*I) + 1, 0.5 - 0.5*I]

    [ 0.5 + 0.5*I, -0.5]

    >>> T.inv()*T

    [-(0.5 + 0.5*I)*(1.0 - 1.0*I) + 1 + (0.5 - 0.5*I)*(1.0 + 1.0*I), (1.0 - 1.0*I)*(

    -(0.5 + 0.5*I)*(1.0 - 1.0*I) + 1)]

    [ 0,

    (0.5 + 0.5*I)*(1.0 - 1.0*I)]

    因为T.inv()*T绝对是1,(单位矩阵,而不是数字)而且没有那么乱,(格式也很恶心…因为任何原因)。如果我手动将“I”替换为“1j”,我会得到1,正如您所做的那样。上面的结果是正确的,(结果是1),但是你可以想象,对于那些不“让我们找到单位矩阵”的更复杂的问题,这可以很快得到非常粗略的结果。在

    我想知道有没有比我现在的更好的解决方案,那就是把矩阵转换成字符串,然后手动将“I”替换为“1j”。。。。在

    ^{pr2}$

    谢谢

    展开全文
  • I just had a look on sympy and it looks like it's extremely slow.Am I doing something wrong?from sympy.matrices import zerosfrom time import timeimport numpy as npt = time()M = zeros(500,500)print("Ti...
  • 使用来自Continuum Anaconda发行版的Sympy 0.7.2,(懒得构建我自己的堆栈,不讨厌),在做复杂矩阵代数时我一直遇到这个问题,其中一些原生函数取代了典型的'1j'使用'I' . 这很烦人,因为它不能很好地与其他算术运算...
  • Sympy代数符号运算

    2021-03-04 12:28:23
    Python之Sympy代数符号运算库 计算器与数学 计算机代数系统 CAS Sympy符号运算的基本使用指南 Sympy 与 Math 函数的区别 定义变量 Symbol(‘x’), symbols(‘u v w’) 函数 基本数值类型(real-rational-integer-...
  • 并在代码运行前从sympy库导入“*”这个模块代码中的数学符号:加号+、减号-、乘号*、除号/、指数**、对数log()、e的指数幂exp()小括号可以改变运算顺序无穷大oo,(两个小写字母O)圆周率pi自然常数E,(一个大写字母E)...
  • SymPy中的向量和矩阵

    2021-03-17 11:36:33
    SymPy 中的向量和矩阵 Vectors and Matrice in SymPy 准备工作: from sympy import * init_printing() a,b,c,d,e,f,g,h,i = symbols('a:i') # neat shorthand for multiple symbols! 带符号的矩阵 1、一般用矩阵类...
  • 使用Python-sympy计算高等数学(多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等) sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、...
  • 案例介绍学过线性代数的同学都知道,在将矩阵进行初等变换化为最简型时过程有多么繁琐。今天,给大家带来一个小项目——使用 Python 化简矩阵。...矩阵变换矩阵变换是线性代数中矩阵的一种运算形式。有如下...
  • 目录 目录 前言 (一)矩阵的创建-Matrix() 1.说明: 2.源代码: 3.输出: (二)常用的构造矩阵 1.说明: 2.源代码: 3.输出: ...
  • julia矩阵运算 Julia| 复数 (Julia | Complex Numbers) The syntax to represent the complex number in Julia is: 在Julia中表示复数的语法为: Syntax: 句法: A+Bim Here, A and B are the values, and im...
  • sympy 符号计算库在机器人旋转矩阵方面的应用(代码) 机器人旋转变换 一、变换矩阵 若计算变换矩阵是基于旋转坐标系(上一个坐标系)来计算的,则计算过程用右乘;若计算变换矩阵是基于固定坐标系(初始坐标系)来...
  • 本文使用Python语言的NumPy库,解决数学运算问题中的线性方程组问题、积分问题、微分问题及矩阵化简问题,结果准确快捷,具有一定的借鉴意义。 1.Sympy库简介 SymPy一个用于符号型数学计算(symbolic mathematics)...
  • python中的矩阵运算

    2020-10-03 16:10:57
    python矩阵运算1-1 python矩阵运算所需模块1-2定义矩阵和进行相关的矩阵运算RREF numpy/scipy/sympy: 搬运:python矩阵的运算大全: python矩阵运算可以用numpy模块,也可以用scipy模块,主要运算包括以下几种: 1-1 ...
  • 用Python学数学之Sympy代数符号运算

    千次阅读 2019-03-27 03:27:10
    在我们初、高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在反复解题、不断运算上,计算方法、运算技巧、笔算能力以及数学公式的记忆仿佛成了我们学习数学...
  • 本篇文章给大家带来的内容是关于Python中Sympy代数符号运算的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。在我们初、高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是...
  • 由于拉普拉斯算子是一个整数矩阵,让我们使用整数:L = Matrix([[ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0],[ 0, 1, 0, 0, 0, -1, 0, 0, 0, 0],[ 0, 0, 1, 0, 0, 0, 0, 0, -1, 0],[ 0, 0, 0, 1, 0, 0, 0, 0, -1, 0],[-1,...
  • 使用Python的SymPy库解决数学运算问题

    万次阅读 多人点赞 2017-07-18 09:35:38
    在学习与科研中,经常会遇到一些数学运算问题,使用计算机完成运算具有...本文使用Python语言的NumPy库,解决数学运算问题中的线性方程组问题、积分问题、微分问题及矩阵化简问题,结果准确快捷,具有一定的借鉴意义。
  • sympysympy 表达式变换和化简

    千次阅读 2020-04-27 21:26:52
    simplify()可以对数学表达式进行化简,调用sympy内部的多种表达式变换函数来对其化简 1.radsimp() radsimp()对表达式的分母进行有理化,结果中的分母部分不含无理数. 例: 也可以以对带符号的表达式进行处理 2....
  • SymPy 是一个由 Python 语言编写的符号计算库。我将在本文中简要地介绍如何利用 SymPy 进行符号计算。在介绍 SymPy 之前,我们首先要明确何谓符号计算?计算机代数系统又是什么?什么是符号计算 ?处理数学对象的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 792
精华内容 316
关键字:

sympy矩阵运算