Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python symphy中的矩阵运算误差_Python_Sympy - Fatal编程技术网

Python symphy中的矩阵运算误差

Python symphy中的矩阵运算误差,python,sympy,Python,Sympy,我正试图写一个交响乐剧本,但在L1,L2遇到了问题。欢迎任何帮助 在L1,我试图替换前面一行中矩阵乘法表达式中的值。我不能在矩阵对象中替换吗 在L2,我试图用浮点数计算替换值,但并没有得到它。为什么eval()不提供浮点值 from sympy import * init_printing() x, x1, x2, x3 = symbols ('x x1 x2 x3') N1 = ((x-x2)*(x-x3))/( (x1-x2) * (x1-x3) ) N2 = ((x-x1)*(x-x3))

我正试图写一个交响乐剧本,但在L1,L2遇到了问题。欢迎任何帮助

在L1,我试图替换前面一行中矩阵乘法表达式中的值。我不能在矩阵对象中替换吗

在L2,我试图用浮点数计算替换值,但并没有得到它。为什么eval()不提供浮点值

from sympy import *
init_printing()
x, x1, x2, x3 = symbols ('x x1 x2 x3')
N1 = ((x-x2)*(x-x3))/( (x1-x2) * (x1-x3) )
N2 = ((x-x1)*(x-x3))/( (x2-x1) * (x2-x3) )
N = Matrix([ [N1,N2] ] )
expr1 = N*Transpose(N)
print expr1.subs([ (x1,0.0), (x2,2.5), (x3,5) ]) #L1
N1.evalf (subs={x1:0.0, x2:2.5, x3:5}) #L2
编辑:

在一个答案之后,我将添加一些额外的代码行。行'L3,L4,不工作。在L3,L4,我试图积分f1,这是一个矩阵,和该矩阵的行。但这两种情况都失败了。如何在Symphy中集成矩阵?支持吗

from sympy import *
init_printing()
x, x1, x2, x3 = symbols ('x x1 x2 x3')
N1 = ((x-x2)*(x-x3))/( (x1-x2) * (x1-x3) )
N2 = ((x-x1)*(x-x3))/( (x2-x1) * (x2-x3) )
N = Matrix([ [N1,N2] ] )
expr1 = N*Transpose(N)
print expr1.subs([ (x1,0.0), (x2,2.5), (x3,5) ]) #L1
N1s=N1.subs( [ (x1,0.0), (x2,2.5), (x3,5) ])
N2s=N2.subs( [ (x1,0.0), (x2,2.5), (x3,5) ])
Ns = Matrix([ [N1s,N2s] ] )
f1 = Ns*x**3
f2 = integrate(f1,(x,0,5)) #L3
f2 = integrate(f1.row(1),(x,0,5)) #L4

第一行适合我。确保您使用的是最新版本的SymPy(撰写本文时为1.0)


第二行不起作用,因为除非替换表达式中的所有变量,否则
evalf(subs={…})
不起作用。看见如果您只想替换一些变量,只需使用
subs

非常感谢你的回答。你也能对
L3,L4
发表评论吗?@vfg4341最好问一个新问题,因为这里有一个新问题。