I am trying to write a script that will compute repeatedly, beginning with step size h=1 and then progressively divide the step size by a factor of 10 to demonstrate how round-off error becomes dominant as the step size is reduced.(adsbygoogle = window.adsbygoogle || []).push({});

In using centered difference approximation of O(h2) to estimate the first derivative at x=0.7 of:

f(x) = -0.25x^5+0.15x^4-1.25x^3+0.35x^2+2.1x-1.4

I have posted the script I have so far bellow:

clear;clc;clear all

ff=@(x) -0.25*x^5+0.15*x^4-1.25*x^3+0.35*x^2+2.1*x-1.4;

df=@(x) -1.25*x^4+0.6*x^3-3.75*x^2+0.7*x+2.1;

function diffex(func,dfunc,x,n)

format long

dftrue=dfunc(x);

h=1;

H(1)=h;

D(1)=(func(x+h)-func(x-h))/(2*h);

E(1)=abs(dftrue-D(i));

for i=2:n

h=h/10;

H(i)=h;

D(i)=(func(x+h)-func(x-h))/(2*h);

E(i)=abs(dftrue-D(i));

end

L=[H' D' E']';

fprintf(' step size finite difference round-off error\n');

fprintf('%14.10f %16.14f %16.13f\n',L);

loglog(H,E),xlabel('Step Size'),ylabel('Error')

title('Plot of Error vs. Step Size')

format short

diffex(ff,df,0.7,11)

Any advice, pointers or suggestions will be greatly appreciated!

thank you

**Physics Forums | Science Articles, Homework Help, Discussion**

Join Physics Forums Today!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# Matlab script for central difference

Loading...

Similar Threads for Matlab script central |
---|

MATLAB MATLAB: forces acting on an object |

MATLAB Matlab histogram |

MATLAB Sovling Bernoulli's differential equation in matlab? |

MATLAB Matlab-like software |

MATLAB Matlab data into bins |

**Physics Forums | Science Articles, Homework Help, Discussion**