If I had the derivative of an equation and had data points how would I plot them
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Batuhan Yildiz
le 2 Oct 2022
Réponse apportée : Walter Roberson
le 2 Oct 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 commentaires
Réponse acceptée
Torsten
le 2 Oct 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 commentaires
Batuhan Yildiz
le 2 Oct 2022
Modifié(e) : Image Analyst
le 2 Oct 2022
Torsten
le 2 Oct 2022
Modifié(e) : Torsten
le 2 Oct 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)
Plus de réponses (1)
Walter Roberson
le 2 Oct 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 commentaires
Voir également
Catégories
En savoir plus sur Scatter Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!