魔鬼可能在乎我,假设我想“简化”以下表达式,完全忽略了将各种数字提高到任意幂或除以零是非常顽皮的事实。
也就是说,我想:
- 代替为了,
- “交叉乘以”等式的两侧,以及
- 用 9/4 替换浮点数 2.25。
我想假装我回到了学校。有没有软件可以为我做到这一点?
编辑:在我写的第 4 根的地方,x我应该有 . 的 4 次方x。给您带来的不便,我深表歉意!
魔鬼可能在乎我,假设我想“简化”以下表达式,完全忽略了将各种数字提高到任意幂或除以零是非常顽皮的事实。
也就是说,我想:
我想假装我回到了学校。有没有软件可以为我做到这一点?
编辑:在我写的第 4 根的地方,x我应该有 . 的 4 次方x。给您带来的不便,我深表歉意!
您正在寻找的是计算机代数系统。您应该能够在 Mathematica、Maple、Maxima 或 SymPy 中做到这一点。特别是,我在下面的 SymPy 中展示了一个示例。
import sympy as sym
d, x = sym.symbols("d x", real=True)
eq = sym.Eq(0.12556841/d**2.25, (2.513274*d + 0.10053 + 2.11*sym.pi)/(d + 0.04))
eq_new = sym.nsimplify(eq).subs(d, x**4)
结果是
感谢您的回答和评论。他们肯定有帮助。这段代码至少让我了解了一部分,并且可以解释我在寻找什么。
将这两个符号定义为实数和正数使得 sympy 可以允许对所涉及的指数进行运算,至少在这种情况下是这样。
结果确实是多项式。
>>> from sympy import *
>>> x = Symbol('x', real=True, positive=True)
>>> d = Symbol('d', real=True, positive=True)
>>> (0.125567841*(d+0.04)-d**Rational(9,4)*(2.513274*d+0.10053+2.11*pi)).subs(d, x**4)
-x**9*(2.513274*x**4 + 0.10053 + 2.11*pi) + 0.125567841*x**4 + 0.00502271364
>>> (-x**9*(2.513274*x**4 + 0.10053 + 2.11*pi) + 0.125567841*x**4 + 0.00502271364).expand()
-2.513274*x**13 - 2.11*pi*x**9 - 0.10053*x**9 + 0.125567841*x**4 + 0.00502271364