gpt4 book ai didi

python - 操纵样条的导数

转载 作者:行者123 更新时间:2023-12-01 02:02:56 24 4
gpt4 key购买 nike

我正在使用 scipy.interpolate 库中的 InterpolatedUnivariateSpline 函数。我知道存在一个函数可以评估所得样条曲线的导数。我感兴趣的是样条曲线的对数的导数。有没有办法直接计算?

最佳答案

FlyingTeller's suggestion可能是最优的:log(f) 的导数是 f'/f,它很容易实现:

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import InterpolatedUnivariateSpline
x = np.arange(1, 9)
y = np.sqrt(x) # something to use as y-values
spl = InterpolatedUnivariateSpline(x, y)

logder = lambda x: spl.derivative()(x)/spl(x) # derivative of log of spline

t = np.linspace(x.min(), x.max())
plt.plot(t, logder(t))
plt.show()

plot

根据数据的对数构造样条线也是一种合理的做法,但它与原始样条线的对数不是一回事。

if you can define a function, depending on a spline, which can be differentiated by python (analytically)

对任意函数进行分析微分超出了 SciPy 的范围。在上面的例子中,我必须知道log(x)的导数是1/x; SciPy 不知道这一点。 SymPy是一个用于符号数学运算(例如导数)的库。

可以使用 SymPy 以符号方式查找函数的导数,然后使用 lambdify 将其转置,转换为 SciPy 或 matplotlib 等可以使用的可调用函数。

还可以使用 entirely symbolic way 中的样条线使用 SymPy 但速度很慢。

关于python - 操纵样条的导数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49406282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com