[英]Python sympy equations to matrix
我試圖將4個方程轉換成矩陣形式,但輸出中的第4行是不正確的 。 任何幫助,將不勝感激:
from sympy import linear_eq_to_matrix, symbols, simplify, sin, cos, Eq, pprint
A, B, C, D, z, L, k = symbols('A, B, C, D, z, L, k')
fnc = A + B*z + C*sin(k*z) + D*cos(k*z)
bc1 = Eq(0, fnc.subs(z,0))
bc2 = Eq(0, fnc.subs(z,L))
bc3 = Eq(0, fnc.diff(z,2).subs(z,0))
bc4 = Eq(0, fnc.diff(z,2).subs(z,L))
a, b = linear_eq_to_matrix([bc1, bc2, bc3, bc4], [A, B, C, D])
pprint(bc1)
pprint(bc2)
pprint(bc3)
pprint(bc4)
pprint(a)
我得到以下輸出:
預期產量:
看來,如果您在將系統轉換為矩陣形式之前使用以下代碼行擴展bc4
,則會得到正確的結果:
bc4 = sympy.expand(Eq(0, fnc.diff(z,2).subs(z,L)))
如果其余代碼保持不變,則會產生以下輸出:
0 = A + D
0 = A + B⋅L + C⋅sin(L⋅k) + D⋅cos(L⋅k)
2
0 = -D⋅k
2 2
0 = - C⋅k ⋅sin(L⋅k) - D⋅k ⋅cos(L⋅k)
⎡-1 0 0 -1 ⎤
⎢ ⎥
⎢-1 -L -sin(L⋅k) -cos(L⋅k) ⎥
⎢ ⎥
⎢ 2 ⎥
⎢0 0 0 k ⎥
⎢ ⎥
⎢ 2 2 ⎥
⎣0 0 k ⋅sin(L⋅k) k ⋅cos(L⋅k)⎦
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.