gpt4 book ai didi

r - 从 R 中的 smooth.spline 计算曲率

转载 作者:行者123 更新时间:2023-12-03 15:59:11 26 4
gpt4 key购买 nike

有没有办法计算在 R 中具有平滑样条曲线(或类似曲线)的特定点的曲率?
该曲线是根据一组 x,y 点计算的。

先感谢您。

最佳答案

如果您知道有一个 predict(),这实际上很容易。 smooth.spline() 创建的对象的方法并且这个方法有一个参数 deriv它允许您预测给定的导数(在您的情况下需要二阶导数)而不是样条上的点。

 cars.spl <- with(cars, smooth.spline(speed, dist, df = 3))
with(cars, predict(cars.spl, x = speed, deriv = 2))

这使:
$x
[1] 4 4 7 7 8 9 10 10 10 11 11 12 12 12 12 13 13 13 13 14 14 14 14 15 15
[26] 15 16 16 17 17 17 18 18 18 18 19 19 19 20 20 20 20 20 22 23 24 24 24 24 25

$y
[1] -6.492030e-05 -6.492030e-05 3.889944e-02 3.889944e-02 5.460044e-02
[6] 7.142609e-02 6.944645e-02 6.944645e-02 6.944645e-02 9.273343e-02
[11] 9.273343e-02 1.034153e-01 1.034153e-01 1.034153e-01 1.034153e-01
[16] 5.057841e-02 5.057841e-02 5.057841e-02 5.057841e-02 1.920888e-02
[21] 1.920888e-02 1.920888e-02 1.920888e-02 1.111307e-01 1.111307e-01
[26] 1.111307e-01 1.616749e-01 1.616749e-01 1.801385e-01 1.801385e-01
[31] 1.801385e-01 1.550027e-01 1.550027e-01 1.550027e-01 1.550027e-01
[36] 2.409237e-01 2.409237e-01 2.409237e-01 2.897166e-01 2.897166e-01
[41] 2.897166e-01 2.897166e-01 2.897166e-01 1.752232e-01 1.095682e-01
[46] -1.855994e-03 -1.855994e-03 -1.855994e-03 -1.855994e-03 4.478382e-05

哪里 $y是拟合样条的二阶导数,在观察到的 speed 处评估用于拟合样条的数据中的值。当然,您可以在此处插入您想要的任何值,例如在 speed 范围内等距分布的 100 个值。 .例如:
newspeed <- with(cars, seq(min(speed), max(speed), length = 100))
curvature <- predict(cars.spl, x = newspeed, deriv = 2)

plot(curvature, type = "l")

关于r - 从 R 中的 smooth.spline 计算曲率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28114677/

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