求解特定变量的方程

Solve Equation for specific variable

我想重新排列以下等式

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 使用数组,以防您想扩展方程式。

我认为您需要先使用 symbols() 函数,然后再在方程式中使用它。

from sympy import *
a, b, c1, c2, c3, c4, c5, c6, c7, c8, x, 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,b,c1,c2,c3,c4,c5,c6,c7,c8,x,R = sp.symbols('a,b,c1,c2,c3,c4,c5,c6,c7,c8,x,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)