Fourth order approx. of first derivative.
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jim Oste
am 25 Feb. 2015
Kommentiert: John D'Errico
am 25 Feb. 2015
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/147297/image.jpeg)
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 Kommentare
Akzeptierte Antwort
Roger Stafford
am 25 Feb. 2015
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 Kommentare
John D'Errico
am 25 Feb. 2015
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?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Polynomials finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!