forward approximation of derivative

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.

 Respuesta aceptada

Titus Edelhofer
Titus Edelhofer el 13 de Mayo de 2015
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

2 comentarios

ray sanchez
ray sanchez el 13 de Mayo de 2015
Thanks that was helpful! I'm still trying to figure out how to output the value for both at x=3.2 and the error.
Hi,
look for the entry in x closest to 3.2:
[~,idx] = min(abs(x-delx/2-3.2));
Get the derivative at this point:
der = yforward(idx);
and plot the line:
h=plot(x(1:end-1)-delx/2, y(idx) + (x(1:end-1)-delx/2-3.2) * der);
That should also help with your question, otherwise please reformulate ...
Titus

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 13 de Mayo de 2015

Comentada:

el 15 de Mayo de 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by