sympyスクリプトを作成しようとしていますが、L1、L2の問題に直面しています。どんな助けも歓迎です。sympyの行列操作エラー
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
EDIT:
1つの答えの後、私は、コードのいくつかの余分な行を入れています。 L3、L4行は機能しません。 L3、L4では、私は行列であるf1とその行列の行を積分しようとしています。しかし、どちらの場合も失敗する。 sympyで行列を統合するには?それはサポートされていますか?
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
ありがとうございました。 'L3、L4'についてもコメントできますか? – vfg4341
'L3、L4'という行はあなたのために働いていますか? – vfg4341
@ vfg4341 – asmeurer