求解特定变量的方程
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)
。
我想重新排列以下等式
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)
。