0

前方差分と中心差分の差分近似の誤差を調査し、誤差を表にしh=[1.E-3 1.E-4 1.E-5 1.E-6 1.E-7 1.E-8 1.E-9 1.E-10 1.E-11 1.E-12 1.E-13]て対数対数図を描きたいと思います。これを行う方法に関するヒントはありますか?これが私たちの中央と前方の違いです。

centdiff=(subs(f, x+h))/(2*h) - (subs(f, x-h))/(2*h)
framdiff=(subs(f, x+h) - f)/h

そして私たちの機能:

f=60*x-(x.^2+x+0.1).^6./(x+1).^6-10*x.*exp(-x);
4

1 に答える 1

2

近似の誤差は、それを使用して得た結果と分析結果の差です。幸いなことfに、簡単に(まあまあ)微分できる素晴らしい関数があります。導関数を見つけて、対応する Matlab 関数を作成したら、解析結果を近似結果と比較するだけです。最も簡単な方法は、おそらくfor異なる .xml に対してループを使用することhです。

したがって、アイデアは次のようなものです(テストされていません。アイデアを提供するためだけです):

cent_error = zeros(size(h));
forw_error = zeros(size(h));
for idx = 1:size(h)
    cent_error(idx) = abs(analytical_diff - centdiff(f, h));
    forw_error(idx) = abs(analytical_diff - forwdiff(f, h));
end

loglog(...)
于 2011-09-08T16:46:08.453 に答える