Fourth order approx. of first derivative.
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Jim Oste
il 25 Feb 2015
Commentato: John D'Errico
il 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 Commenti
Risposta accettata
Roger Stafford
il 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 Commenti
John D'Errico
il 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?
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!