我有一个由四个方程组成的线性系统,其中有四个变量$a、b、c、d$和两个参数$I、h$,其中方程的形式大致为$$a h^3 i^3+b h^2 i^2+c h i+d=0$$
我想以$I,h$的形式得到$a,b,c,d$。
这在SymPy有可能吗?如果没有,有人能想出其他方法吗?
为了完整性,答案是肯定的,Sympy中的solve
求解带参数的方程组。使用您所述方程式的示例:
from sympy import *
var('a b c d i h')
eqns = [a*h**3*i**3 + b*h**2*i**2 + c*h*i + d, a+b+c+d, a-b*h*i**2 -c - d, a+b+c-h**2 - i**2]
solve(eqns, [a,b,c,d])
solve
的第一个自变量是方程列表,第二个自变量是要求解的变量列表。输出是一个解决方案,以字典形式呈现:
{c: (h**2 + i**2)*(-h**4*i**5 + h**3*i**3 - 2*h**2*i**2 + h*i**2 + 1)/(h*i*(-h**3*i**4 + h**2*i**2 + h*i**2 - 2*h*i + 1)),
b: -(2*h**2 + 2*i**2)/(h*i*(h**2*i**3 + h*i**2 - h*i + 1)),
a: (-h**3*i**2 + h**2 - h*i**4 + i**2)/(h*i*(h**2*i**3 + h*i**2 - h*i + 1)),
d: -h**2 - i**2}