我想找到一个Sympy函数,该函数可以满足几个参数。它应该经过几个点,并在某些点上具有一定的导数。我该怎么办?
values = np.array([1.0, 2.0], [2.0, 3.0])
derivats = np.array([1.0, 3.0], [2.0, 5.0])
[请帮助我,我的数学英语不太好,所以请使用我可以谷歌搜索的词。
这里是对SymPy的solve
(docs)和多项式的解释,以给出可能的想法:
from sympy import *
x = symbols('x', real=True)
n = 4 # degree of the polynomial
a = [symbols('a%d' % i, real=True) for i in range(n)]
print(a)
f = sum([a[i]*x**i for i in range(n)]) # f is a polynomial of degree n
g = f.diff(x)
sol = solve([Eq(f.subs(x, 1), 2), Eq(f.subs(x, 2), 3), Eq(g.subs(x, 1), 3), Eq(g.subs(x, 2), 5), ], a)
print(sol)
print(f.subs(sol))
此打印:
{a0: -15, a1: 37, a2: -26, a3: 6}
6*x**3 - 26*x**2 + 37*x - 15