How to derivate a vector

353 次查看(过去 30 天)
Thierry Gelinas
Thierry Gelinas2015-4-12
评论: Les Beckham ,about 21 hours 前
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.

采纳的回答

Claudio Contrada
Claudio Contrada about 21 hours 前
hi, use the polyder() function, which returns the coefficients of the derivate as a vector. so if p=[1 1 -1], we have p1=polyder(p). this assigns to p1 the arrray [2 1].
  1 个评论
Les Beckham
Les Beckham about 21 hours 前
Although it is not completely clear from the original question, I believe that this is the correct answer.

请先登录,再进行评论。

更多回答(3 个)

Image Analyst
Image Analyst 2015-4-12
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);

Star Strider
Star Strider 2015-4-12
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 个评论
Image Analyst
Image Analyst 2015-4-12
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.

请先登录,再进行评论。


Youssef  Khmou
Youssef Khmou 2015-4-12
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')

类别

Find more on Interpolation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by