MATLAB Answers

diff makes M less than what i want by 1 elment and i want to have second derivaitve numircal

4 views (last 30 days)
amr haggag
amr haggag on 10 Dec 2019
Commented: Adam Danz on 10 Dec 2019
figure(4)
E=(k.^2)*(1.0540^2)/(2*1000*9.1);
fx=diff(E)./diff(k);
fxx=fx./diff(k);
M=((1.054^2)*(1000))./fxx;
plot(k,M);
Error using plot
Vectors must be the same length.
Error in Untitled4 (line 17)
plot(k,M);

  1 Comment

Adam Danz
Adam Danz on 10 Dec 2019
Y = diff(X) acts on vector x by subtracting element m+1 from element m. So, if x is
x = [3 2 7 4 1];
then Y will be
y = [2-3, 7-2, 4-7, 1-4]
= [-1, 5, -3, -3]
There will always be one less element in Y than in X.
To compute the numerical gradient at each point in x rather than between points, use

Sign in to comment.

Answers (1)

Star Strider
Star Strider on 10 Dec 2019
Use the gradient function.
Specifically:
k = 0:0.1:5;
figure(4)
E=(k.^2)*(1.0540^2)/(2*1000*9.1);
fx=gradient(E)./gradient(k);
fxx=fx./gradient(k);
M=((1.054^2)*(1000))./fxx;
plot(k,M);

  0 Comments

Sign in to comment.

Sign in to answer this question.