If I had the derivative of an equation and had data points how would I plot them
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Batuhan Yildiz
el 2 de Oct. de 2022
Respondida: Walter Roberson
el 2 de Oct. de 2022
My derivative is 1 - (sin(x))/(2√(x)) - (√x)(cos(x)) and x = [1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0] how would I plot them?
0 comentarios
Respuesta aceptada
Torsten
el 2 de Oct. de 2022
d = @(x)1 - sin(x)./(2*sqrt(x)) - sqrt(x).*cos(x);
x = [1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0];
plot(x,d(x))
2 comentarios
Batuhan Yildiz
el 2 de Oct. de 2022
Editada: Image Analyst
el 2 de Oct. de 2022
Torsten
el 2 de Oct. de 2022
Editada: Torsten
el 2 de Oct. de 2022
why add the @(x)?
I defined the derivative d as a function. Alternatively, you can of course use
x = [1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0];
d = 1 - sin(x)./(2*sqrt(x)) - sqrt(x).*cos(x);
plot(x,d)
would this code also work?
If you are too lazy to compute the exact derivative, you can use the approximation
dy = diff(y)./diff(x)
formed by finite difference quotients.
But note that d gives you an approximate derivative in points (x(1:end-1)+x(2:end))/2, not in x(2:end). Thus for the plot you should use
plot((x(1:end-1)+x(2:end))/2,dy)
instead of
plot(x(2:end),dy)
Alternatively, you can compute the derivative symbolically:
syms x
y = x-sqrt(x).*sin(x);
dy = diff(y,x)
Más respuestas (1)
Walter Roberson
el 2 de Oct. de 2022
if you have numeric derivative and you want to plot the original curve (to within a constant shift) then use cumtrapz() and plot that.
0 comentarios
Ver también
Categorías
Más información sobre Surface and Mesh Plots 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!