Python-sympy方程到矩阵

2024-06-28 12:11:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用下面的公式将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)

我得到以下输出:

enter image description here

预期输出:

enter image description here


Tags: tosincosmatrixeqpprintlinearsubs
1条回答
网友
1楼 · 发布于 2024-06-28 12:11:25

看起来,如果在将系统转换为矩阵形式之前简单地使用以下代码行展开bc4,则会得到正确的结果:

bc4 = sympy.expand(Eq(0, fnc.diff(z,2).subs(z,L)))

在其余代码不变的情况下,将生成以下输出:

^{pr2}$

相关问题 更多 >