从 Sympy 中的级数展开中获取 n 阶系数
Getting n'th order coefficient from series expansion in Sympy
我有一个使用 numpy 的 poly1d 定义的多项式:
import numpy as np
p = np.poly1d([-1.37970733e+07, 8.02055768e+07, -1.98442743e+08, 2.70981281e+08,
-2.20611918e+08, 1.07019785e+08, -2.85873914e+07, 3.24251782e+06])
然后我对这个多项式做一个关于我称为 radMax = 0.80868373
的点的级数展开。这是我进行系列扩展的方法:
from sympy import series, Symbol, Poly
x = Symbol('x')
polyExpand = p(x).series(x,radMax,3)/(p(radMax)/0.0523772)
这给了我想要的展开式,我想要二阶项的系数。如果你运行上面的代码,你会看到这个系数是“0.2843162879664”。我想提取这个系数。
如果您想按项处理系数:
from sympy import sympify
print(polyExpand.as_coefficients_dict()[sympify(f"(x - {radMax}) ** 2")])
如果您想通过索引获取系数:
coeffs = list(polyExpand.as_coefficients_dict().values())
print(coeffs[2]) # order n = 2
这些将正确输出-0.284316287966400
。你忘了减号。
我有一个使用 numpy 的 poly1d 定义的多项式:
import numpy as np
p = np.poly1d([-1.37970733e+07, 8.02055768e+07, -1.98442743e+08, 2.70981281e+08,
-2.20611918e+08, 1.07019785e+08, -2.85873914e+07, 3.24251782e+06])
然后我对这个多项式做一个关于我称为 radMax = 0.80868373
的点的级数展开。这是我进行系列扩展的方法:
from sympy import series, Symbol, Poly
x = Symbol('x')
polyExpand = p(x).series(x,radMax,3)/(p(radMax)/0.0523772)
这给了我想要的展开式,我想要二阶项的系数。如果你运行上面的代码,你会看到这个系数是“0.2843162879664”。我想提取这个系数。
如果您想按项处理系数:
from sympy import sympify
print(polyExpand.as_coefficients_dict()[sympify(f"(x - {radMax}) ** 2")])
如果您想通过索引获取系数:
coeffs = list(polyExpand.as_coefficients_dict().values())
print(coeffs[2]) # order n = 2
这些将正确输出-0.284316287966400
。你忘了减号。