# Strange slope for points in a curve

2 visualizzazioni (ultimi 30 giorni)
Kyle 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 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

Accedi per commentare.

### 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 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
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);

Accedi per commentare.

### 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 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
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.

Accedi per commentare.

### Categorie

Scopri di più su Interpolation 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!

Translated by