求解特定变量的方程

问题描述

我想重新排列以下方程式

c1 + (c2*a) + (c3*b) +(c4*a*a) + (c5*a*b) + (c6*b*b) + (c7*x) + (c8*x*x) = R

到x =...。 pythons sympy有办法吗?我不是数学专家,所以一个基本问题是,是否有可能重新安排这样的方程式。

感谢任何提示解决方案!

欢呼

解决方法

尝试一下:

from sympy import *
var('a,b,c1,c2,c3,c4,c5,c6,c7,c8,x,R')

eqn=Eq(R,c1+c2*a+c3*b+c4*a*a+c5*a*b+c6*b*b+c7*x+c8*x*x)

solve(eqn,x)

如果您想扩展方程式,我建议对变量c使用数组。

,

我认为您需要在eq中使用symbol()函数之前。

from sympy import *
a,R = symbols('a b c1 c2 c3 c4 c5 c6 c7 c8 x R')
eqn=Eq(R,c1+c2*a+c3*b+c4*a*a+c5*a*b+c6*b*b+c7*x+c8*x*x)
solve(eqn,x)
,

假设您已经定义了方程式

import sympy as sp
a,R = sp.symbols('a,R')
eq = sp.Eq(R,c1+c2*a+c3*b+c4*a*a+c5*a*b+c6*b*b+c7*x+c8*x*x)

您可以访问它的手侧并进行操作:

subtrahend = c1+c2*a+c3*b+c4*a*a+c5*a*b+c6*b*b + c8*x*x
dividend = c7
eq = sp.Eq(eq.lhs - subtrahend,eq.rhs - subtrahend)
eq = sp.Eq(eq.rhs / dividend,eq.lhs / dividend)

您的等式现在应该变成Eq(x,(R - a**2*c4 - a*b*c5 - a*c2 - b**2*c6 - b*c3 - c1 - c8*x**2)/c7)