forward approximation of derivative
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
ray sanchez
il 13 Mag 2015
Commentato: Titus Edelhofer
il 15 Mag 2015
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.
0 Commenti
Risposta accettata
Titus Edelhofer
il 13 Mag 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 Commenti
Titus Edelhofer
il 15 Mag 2015
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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Surface and Mesh Plots in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!