MATLAB: Forward approximation of derivative

derivativeforward approximationMATLABnumerical

I'm trying to figure out how to plot the forward approximation of the derivative of 1000^(x/17) at x=3.2 for h values of 0.01 to 5 in steps of 0.05. Here is what i have so far.
clear; close all; clc;
delx = 0.05;
x = 0.01:delx:5;
y = 1000.^(x/17);
fig = figure();
set(fig,'color','white');
plot(x,y,'linewidth',2);
xlabel('x');
ylabel('y');
grid on;
yforward = (y(2:end-1) - y(1:end-1))./delx;
hold on
plot(x(1:end)-delx/2,yforward,'r-','linewidth',2);
I'm getting an error that says matrix dimensions must agree. I also don't know how to plot the derivative at x = 3. Any help appreciated.

Best Answer

Hi,
first of all, your yforward should be
yforward = (y(2:end) - y(1:end-1))./delx;
which is in fact the same as
yforward = diff(y) ./ delx;
When it comes below to plotting: your last point has no forward derivative anymore, therefore yforward is shorter than x by one element. Try to plot
plot(x(1:end-1)-delx/2,yforward,'r-','linewidth',2);
Titus