与符号输出一致的方程组
System of equations in sympy with symbolic output
是否可以使用 sympy 求解方程组(线性或非线性),其中输出是符号的?
示例:
1. f_m = a0 + a1*(-dx) + a2*(-dx)^2
2. f_c = a0
3. f_p = a0 + a1*(dx) + a2*(dx)^2
求解a2。
通过 Mathematica 命令
解决方案是
a2 = (1/2)*(f_m - 2*f_c + f_p).
这是Sympy中的一个基本操作,你应该学习文档。
只是为了让你开始:
import sympy as sp
f_m, f_c, f_p = sp.var('f_m, f_c, f_p')
a0, a1, a2 = sp.var('a0:3')
dx = sp.var('dx')
eq1 = sp.Eq(f_m, a0 + a1*(-dx) + a2*(-dx)**2)
eq2 = sp.Eq(f_c, a0)
eq3 = sp.Eq(f_p, a0 + a1*(dx) + a2*(dx)**2 )
sp.linsolve([eq1, eq2, eq3], (a0, a1, a2))
# sp.solve([eq1, eq2, eq3], (a0, a1, a2)) # also works
{(f_c, (-f_m + f_p)/(2*dx), (-2*f_c + f_m + f_p)/(2*dx**2))}
是否可以使用 sympy 求解方程组(线性或非线性),其中输出是符号的?
示例:
1. f_m = a0 + a1*(-dx) + a2*(-dx)^2
2. f_c = a0
3. f_p = a0 + a1*(dx) + a2*(dx)^2
求解a2。
通过 Mathematica 命令
解决方案是
a2 = (1/2)*(f_m - 2*f_c + f_p).
这是Sympy中的一个基本操作,你应该学习文档。 只是为了让你开始:
import sympy as sp
f_m, f_c, f_p = sp.var('f_m, f_c, f_p')
a0, a1, a2 = sp.var('a0:3')
dx = sp.var('dx')
eq1 = sp.Eq(f_m, a0 + a1*(-dx) + a2*(-dx)**2)
eq2 = sp.Eq(f_c, a0)
eq3 = sp.Eq(f_p, a0 + a1*(dx) + a2*(dx)**2 )
sp.linsolve([eq1, eq2, eq3], (a0, a1, a2))
# sp.solve([eq1, eq2, eq3], (a0, a1, a2)) # also works
{(f_c, (-f_m + f_p)/(2*dx), (-2*f_c + f_m + f_p)/(2*dx**2))}