用参数求解线性系统

时间:2016-10-26 16:34:26

标签: linear-algebra sympy

我有一个四个方程的线性系统,有四个变量$ 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有可能吗?如果没有,有人可以推荐如何以其他方式做到这一点吗?

1 个答案:

答案 0 :(得分:0)

为了完整性,答案是肯定的,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}