Sie sind auf Seite 1von 2

%%

Fun = @(x) exp(-x).*sin(3*x);

dFun = @(x) -exp(-x).*sin(3*x)+ 3*exp(-x).*cos(3*x);

%%

x=linspace(0,4,101);

F=Fun(x);

h=x(2)-x(1);

xCentral=x(2:end-1);

dFCenteral=(F(3:end)-F(1:end-2))/(2*h);

xForward=x(1:end-1);

dFForward=(F(2:end)-F(1:end-1))/h;

xBackward=x(2:end);

dFBackward=(F(2:end)-F(1:end-1))/h;

%%
plot(x,dFun(x));
hold on
plot(xCentral,dFCenteral,'r')
plot(xForward,dFForward,'k');
plot(xBackward,dFBackward,'g');
legend('Analytic','Central','Forward','Backward')
clear

%the function
f = @(x) 25*x^3-6*x^2+7*x-88;
%actual derivative of function
fprime = @(x) 75*x^2-12*x+7;

%step size:
h=0.25;

%forward difference
dfdx_forward = (f(2+h)-f(2))/h
Error_forward = fprime(2)-dfdx_forward %error

%bacward difference
dfdx_backward = (f(2)-f(2-h))/h
Error_backward = fprime(2)-dfdx_backward %error

%central difference
dfdx_central = (f(2+h)-f(2-h))/(2*h)
Error_central = fprime(2)-dfdx_central %error

Das könnte Ihnen auch gefallen