フィルターのクリア

Fourth order approx. of first derivative.

5 ビュー (過去 30 日間)
Jim Oste
Jim Oste 2015 年 2 月 25 日
コメント済み: John D'Errico 2015 年 2 月 25 日
I am working with numerical differentiation and I am approximating the first derivative of f(x)=sin^2(x) with a fourth order approximation of the form:
I have the following code to approximate f'(x) at a = pi/4
k = 1:15;
h = 10.^(-k);
a = pi/4;
D = (1/12.*h).*(-3.*sin(a-h).^2-10.*sin(a).^2+18.*sin(a+h).^2-...
6.*sin(a+2.*h).^2+sin(a+3.*h).^2);
As h gets smaller D should be getting closer to 1 but when I run this code D gets closer to zero. Am I imputing the sin term incorrectly?

採用された回答

Roger Stafford
Roger Stafford 2015 年 2 月 25 日
Your code for 'D' has an error. You have multiplied by 'h' instead of dividing by it. The code should read:
D = (1/12./h).*(-3.*sin(a-h).^2 ...........
  4 件のコメント
Jim Oste
Jim Oste 2015 年 2 月 25 日
Exactly, we were getting practice with numerical differentiation and using Taylor expansions to find approximations with varying offsetted polynomials.
John D'Errico
John D'Errico 2015 年 2 月 25 日
I thought so. A worthwhile thing to do is to look at the centered difference to compute that same value, varying over -2h to +2h. Why would it be a better choice of method in general? Thus, something like this (assuming I did my back of the envelope computations properly)
((f(2h) - f(-2h)) - 8*(f(h) - f(-h)))/(12h)
Why might the above template be a better choice in general, if it is available?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by