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

1 visualización (últimos 30 días)
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 comentario
Adam Danz
Adam Danz el 10 de Dic. de 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

Iniciar sesión para comentar.

Respuestas (1)

Star Strider
Star Strider el 10 de Dic. de 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);

Categorías

Más información sobre Graphics Objects en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by