MATLAB Answers

How to derivate a vector

227 views (last 30 days)
Thierry Gelinas
Thierry Gelinas on 12 Apr 2015
Commented: Image Analyst on 12 Apr 2015
Hi, I put a polynom ( x^2+x-1) in a form of a vector :
[1 1 -1].I don't know how to derivate this vector and how to evaluate it.
Thanks, Thierry.

  0 Comments

Sign in to comment.

Answers (3)

Image Analyst
Image Analyst on 12 Apr 2015
Not sure how those 3 numbers came from that equation, but anyway....The derivative is the slope. You have two line segments, from 1 to 1 and from 1 to -1. So the slope of the first line segment is 0 and the slope of the second line segment is -2. You can get this from
slopes = diff(yourVector);

  0 Comments

Sign in to comment.


Star Strider
Star Strider on 12 Apr 2015
If you want to evaluate your polynomial and do a numerical derivative, use the polyval function to evaluate it, then the gradient function to take the derivative:
h = 0.1; % Spacing Constant
x = -5:h:5; % Independent Variable Vector
y = polyval([1 1 -1], x); % Evaluate Polynomial
dydx = gradient(y, h); % Take Numerical Derivative At Each Value Of ‘x’
Note that unlike diff, the gradient function will produce a vector the same length as the original data vector.

  3 Comments

Roger Stafford
Roger Stafford on 12 Apr 2015
Why use the crude 'gradient' function when the precise derivatives for polynomials can be determined as given by Mohammad Abouali?
Star Strider
Star Strider on 12 Apr 2015
Because I don’t know what the problem actually is.
Is Thierry supposed to evaluate the polynomial and then take the numerical derivative, or evaluate the polynomial and its analytic derivative at the same values of x?
I’m offering the best numerical derivative function as an option.
Image Analyst
Image Analyst on 12 Apr 2015
I agree with Star. The language in the question is so imprecise, it's impossible to determine if the [1 1 -1] vector is the x input vector or the polynomial y output vector. So I also gave a numerical answer. If the x location(s) where the derivative is known for certain, then you could just use calculus to determine the slope as 2*x+1 and plug in the x where you want the slope computed at.

Sign in to comment.


Youssef  Khmou
Youssef Khmou on 12 Apr 2015
additionally to the above answers, the simplest way to evaluate the polynomial is via anonymous function :
f=@(x) x.^2+x-1
x=0:0.1:10;
Generally, coefficients vector is used to find the roots. concerning the derivation, gradient is more efficient than diff, when you have the sample rate :
df=gradient(f(x),0.1);
plot(x,f(x),x,df,'r')

  0 Comments

Sign in to comment.

Sign in to answer this question.