Strange slope for points in a curve
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Kyle
il 3 Ott 2014
Commentato: Mohammad Abouali
il 3 Ott 2014
Dear experts, I want to get the slope for each point from the curve defined below:
x = 1194:1206;
y =[114,115,117,118,119,120,122,123,124,126,127,128,129];
see the attached graph for the curve.
Directly applying the function "gradient" cannt get the correct slope - the slope will jump up an down. It's understandable that I don't have enough data points. I expect the slope changes gradually.
I expect not to use any interpretation or curve fitting method. Any suggestion is welcome. Many thanks
0 Commenti
Risposta accettata
Mohammad Abouali
il 3 Ott 2014
There are two slopes at each point. The left slope and right slope? What you want to do about that?
2 Commenti
Mohammad Abouali
il 3 Ott 2014
It gonna still jumps up and down since your lines are not straight any way.
If you want first order accurate first derivatives do this
x = 1194:1206;
y =[114,115,117,118,119,120,122,123,124,126,127,128,129];
dYO1=(y(2:end)-y(1:end-1))./(x(2:end)-x(1:end-1)); % Or in this case it would be the same as diff(y);
figure, plot(x(1:end-1),dYO1,'o-');
You can calculate second order accurate first derivative as follow:
dYO2=(y(3:end)-y(1:end-2))./(x(3:end)-x(1:end-2));
figure, plot(x(2:end-1),dYO2,'ro-')
if you want the slope of the lines themselves (i.e. at the middle of the line) then dYO1 would be the accurate one ( at the center of the lines not at the point themselves)
xc=0.5*(x(1:end-1)+x(2:end));
plot(xc,dYo1);
Più risposte (1)
Matt J
il 3 Ott 2014
Modificato: Matt J
il 3 Ott 2014
You cannot define a derivative without some sort of interpolation model. You can take first differences using diff(y), but that corresponds to a linear interpolation model.
2 Commenti
Matt J
il 3 Ott 2014
The slope is obviously going to jump up and down no matter what you do. Your points don't all lie on a straight line.
Vedere anche
Categorie
Scopri di più su Smoothing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!