私はGnuplotを使って簡単なことをしようとしていますが、どういうわけか私は説明できません。私の機能の定義に何かひどく間違っているようだ。間違ったフィットパラメータ、関数評価中の未定義値
私はまずいくつかの機能を使い始めました。これらの機能的な形は、フィットがかなりうまく機能するので重要ではありませんが、後で関与するので、同様に報告しています。私は
m=3.8
e=0.5
を課し、かなりうまく動作するようだデータに重畳された関数g(X)をプロットした場合
evap(x)=(x>x_fc)?A*qnet(x)/wm2_to_mmh:(x<x_wp)?0:(A*qnet(x)/wm2_to_mmh)*(x-x_wp)/(x_fc-x_wp)
fit evap(x) './fluxes_da_1p0.txt' using 1:2 via A, x_fc, x_wp
sensible(x)=((qnet(x)/wm2_to_mmh)-evap(x))/(1+B)+C
fit sensible(x) './fluxes_da_1p0.txt' using 1:3 via B,C
は、その後、私は
deltasensible(x)=abs(sensible(x)-sensible(0.454))
deltalatent(x)=abs(evap(x)-evap(0.454))
period_adv=18.0
g(x)=m*deltalatent(x)*period_adv*(deltasensible(x))**e
を定義しました。私はパラメータに
fit g(x) './advection_da_1p0.txt' using 5:2 via m,e
を使用して、それに合うようにしようとした場合
は、しかし、私はgnuplotのは、私が、E、Mのための本当に奇妙な値を試しているいくつかの理由、次のエラー
iter chisq delta/lim lambda m e
0 4.2471983038e+00 0.00e+00 5.51e+00 3.800000e+00 5.000000e-01
1 3.7149813491e+00 -1.43e+04 5.51e-01 3.573384e+00 4.843345e-01
Current data point
=========================
# = 8 out of 8
x = 0.0178156
z = 0.0309726
Current set of parameters
=========================
m = 0.0178156
e = -0.0583802
"rain_estimate.gpl", line 52: Undefined value during function evaluation
を取得しますそれらの初期値を提供した。私がdeltalatent(x)依存関係を削除すると、すべてが正常に動作しています。私は何か簡単なものを逃しています
肯定的な 'e'を強制するには、' e = ep * ep'と 'fe via ep'で置き換えるのがよいでしょう。 – maij
@maij貴重な提案をありがとう。私は実際にスタックエクスチェンジでこれと似たものを見つけ出して試しましたが、まだ問題が発生しています。 Gnuplotは依然としてより低いeを求めています... 'パラメータの最終セット漸近標準誤差 ============================= ================= m = 1.4648 +/- 0.1888(12.89%) e = 8.26822e-05 +/- 413.7(5.004e + 08%) ' –