How to derivate a vector
353 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
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
about 21 hours 前
Although it is not completely clear from the original question, I believe that this is the correct answer.
更多回答(3 个)
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);
0 个评论
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
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
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')
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!