0

我有几张图表,我想为其合成原始 (x,y) 数据。我没有原始数据,只有图表。

理想情况下,我希望能够使用数学函数来近似曲线的形状,这样我就可以改变函数以产生稍微不同的输出,这样我就可以有简单的再现性。

第一张图片显示了一组曲线:最近一段时间的平均温度异常,可以追溯到现在之前的 20,000 年。第二张图片显示了一个阶跃函数,在现在之前 10,000 年发生了变化(对数刻度)。(您还会注意到它们具有相反的 x 轴方向)。

对于其中的每一个,我想要生成的最终数据是一个文本文件,每 10 年或 100 年有一个温度异常值。

欢迎任何解决方案。

在此处输入图像描述 在此处输入图像描述

4

2 回答 2

1

我不确定我是否完全理解你的问题。但是您可以尝试做的是将数据数字化(windig 适用于 windows,engage 适用于 linux),然后在点之间进行一些数据插值。

几乎一直有效的平凡插值只是两个连续点之间的直线。更复杂的方法是保持二阶导数连续 的三次样条(例如 B 样条http://en.wikipedia.org/wiki/B-spline )。

于 2012-10-14T12:28:35.363 回答
0

我决定回答一些关于使用代数生成曲线的方法的细节。

对于周期性曲线,您可以使用正弦或余弦,并调整幅度和频率以匹配您的特定情况。例如,y = A sin(2x),其中幅度为 A,周期与 x 的内部函数(括号内的那个位)有关。在 gnuplot 中试试这个:

A=2
f(x) = A*sin(2*x)
set xrange[-pi:pi]
plot f(x), sin(x), cos(x)

要随着 x 的变化而改变幅度,只需将 x 值的幂项或指数项添加到幅度:

f(x) = A*exp(0.5*x)*sin(2*x)
set xrange[-2*pi:2*pi]
plot f(x), sin(x)
# add an initial value (offset)
f(x) = 5+A*exp(0.5*x)*sin(2*x)
plot f(x), sin(x)

等等。

于 2012-12-04T00:23:28.790 回答