0

元の (x,y) データを合成したいグラフの画像がいくつかあります。元のデータはなく、グラフだけです。

理想的には、関数を変化させてわずかに異なる出力を生成し、単純な再現性を持たせるために、数学関数を使用して曲線の形状を近似できるようにしたいと考えています。

最初の画像は一連の曲線を示しています。現在から 20,000 年前までさかのぼる、最近の期間の平均からの温度異常です。2 番目の画像は、現在から 10,000 年前に変化するステップ関数を示しています (ログ スケール)。(x 軸の方向が反対になっていることにも気付くでしょう)。

これらのそれぞれについて、作成したい最終的なデータは、10 年または 100 年ごとの温度異常値を含むテキスト ファイルです。

どんな解決策でも大歓迎です。

ここに画像の説明を入力 ここに画像の説明を入力

4

2 に答える 2

1

あなたの質問を完全に理解しているかどうかわかりません。しかし、データをデジタル化し (windig は Windows で動作し、engauge は Linux で動作します)、ポイント間のデータ補間を行うことができます。

ほとんど常に機能する自明な補間は、2 つの連続するポイント間の単なる直線です。より洗練されたアプローチは、二次導関数を連続に保つ 3 次スプライン (たとえば、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 に答える