sympy에서 함수 파생의 수치 평가를 정의하려면 어떻게해야합니까? 함수에 대한 스플라인으로 설명 할 수있는 함수가 있고 scipy.interpolate를 사용하여 파생 함수입니다. 이 함수로 일부 식을 조작 한 다음 스플라인을 사용하여 식을 계산하려고합니다.은 sympy 함수의 파생어에 대한 수치 평가를 정의합니다.
lambdify를 사용하여 sympy 함수를 수치로 스플라인으로 평가할 수 있습니다. 그러나 어떻게 spline으로 수치 적으로 평가할 sympy 함수의 미분을 정의 할 수 있습니까?
예.
import sympy as sp
import numpy as np
from scipy.interpolate import InterpolatedUnivariateSpline
from sympy.ultilitis.lambdify import implemented_function, lambdify
r = sp.symbols('r')
B = sp.symbols('B', cls=sp.Function)
B_spline = InterpolatedUnivariateSpline([1,2,3,4],[1,4,9,16])
B_der_spline = InterpolatedUnivariateSpline([1,2,3,4],[2,4,6,8])
B = implemented_function(B, lambda r: B_spline(r))
class A(sp.Function):
nargs = 2
@classfunction
def eval(cls, r, B):
return r**2*B(r)
A_eval = lambdify(r, A(r,B))
A_eval(3)
>>> 81.0
A_diff_eval = lambdify(r, sp.diff(A(r,B)))
A_diff_eval(3)
>>> NameError: global name 'Derivative' is not defined