gpt4 book ai didi

gnuplot - gnuplot 中的平滑峰值

转载 作者:行者123 更新时间:2023-12-04 22:59:24 31 4
gpt4 key购买 nike

我在 x_i 点有数据点 f(x_i)(函数 f 未知,只有数值),f(0) = 0。数据显示小 x 处的峰状结构,随后是较大 x 处的缓慢肩部衰减设置在最大值的一半。我想通过这些数据点绘制平滑线。
如果我使用贝塞尔曲线,那么确实 f(0)=0 没问题,但峰值显着降低(约 25%)。如果我使用 acsplines,那么峰值看起来会好一些,但不保持 f(0) = 0。
如何在不丢失重要信息(f(0)= 0)或分布的峰高的情况下平滑该数据集?

最佳答案

使用 acsplines 平滑绘制一个近似三次样条,它不会通过您的原始数据点。

更好的方法可能是使用三次样条 smooth csplines ,它通过所有数据点,但可能会显示尖峰的过冲。

在您的情况下,可能最好的解决方案是使用单调三次样条,smooth mcsplines ,保持原始数据点的单调性和凸性(参见 F.N. Fritsch 和 R.E. Carlson,“单调分段三次插值”,SIAM 数值分析杂志 17,第 238-246 页(1980 年))。

这是一个简短的示例,显示了这些差异:
test.dat文件包含点

0 0
0.2 1
0.4 10
0.6 80
1 30
2 20
3 13
4 7
5 2
6 1
7 0

绘制它们的脚本是
set xzeroaxis
set style data lines
set samples 500
plot 'test.dat' u 1:2 smooth acsplines title 'acsplines', \
'' u 1:2 smooth csplines title 'csplines', \
'' u 1:2 smooth mcsplines lw 2 title 'mcsplines',\
'' u 1:2 w p pt 7 title 'data points'

enter image description here

关于gnuplot - gnuplot 中的平滑峰值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30580471/

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