如何解决Sympy表达式中复数的格式
我正在尝试在SymPy中求解表达式。
x,c,m=symbols('x,m')
y = x**4 + sym.Rational(11/4)*(c/m)*(x**2)+(sym.Rational(3/2)*(c/m)**2)
solve(y,x)
在Sympy中,有一种方法可以使sqrt(-1)在输出表达式中自动格式化为 i ,而不是在平方根中包含-1?
解决方法
方程式得出[-sqrt(2)*sqrt(-c/m),sqrt(2)*sqrt(-c/m),-sqrt(3)*sqrt(-c/m)/2,sqrt(3)*sqrt(-c/m)/2]
。没有任何提示,所有变量都可能很复杂,并且c/m
可能是一个正实数。没有理由将I
带出平方根。 (请注意sympy represents I
with a capital。)
但是,如果c
和m
被声明为实数和正数,则输出将更改:
import sympy as sym
c,m = sym.symbols('c,m',real=True,positive=True)
x = sym.symbols('x')
y = x ** 4 + sym.Rational(11 / 4) * (c / m) * (x ** 2) + (sym.Rational(3 / 2) * (c / m) ** 2)
sym.solve(y,x)
结果:
[-sqrt(2)*I*sqrt(c)/sqrt(m),sqrt(2)*I*sqrt(c)/sqrt(m),-sqrt(3)*I*sqrt(c)/(2*sqrt(m)),sqrt(3)*I*sqrt(c)/(2*sqrt(m))]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。