If I had the derivative of an equation and had data points how would I plot them
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Batuhan Yildiz
am 2 Okt. 2022
Beantwortet: Walter Roberson
am 2 Okt. 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 Kommentare
Akzeptierte Antwort
Torsten
am 2 Okt. 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 Kommentare
Batuhan Yildiz
am 2 Okt. 2022
Bearbeitet: Image Analyst
am 2 Okt. 2022
Torsten
am 2 Okt. 2022
Bearbeitet: Torsten
am 2 Okt. 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)
Weitere Antworten (1)
Walter Roberson
am 2 Okt. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!