Fourth order approx. of first derivative.
7 ビュー (過去 30 日間)
古いコメントを表示
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?
0 件のコメント
採用された回答
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 件のコメント
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 Exchange で Polynomials についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!