How to calculate gradient from semilogy plot graph?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
christina widyaningtyas
am 14 Jul. 2022
Bearbeitet: Torsten
am 1 Mär. 2023
I have data and already plotted in semilogy graph,
I need to know the gradient from that graph
Any one can help me, please?
I use Matlab 2016b versiaon
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1065230/image.png)
0 Kommentare
Akzeptierte Antwort
Torsten
am 14 Jul. 2022
In the left part, your functional equation is approximately
f(x) = 10^(-3.2*x+70)
I don't know from your question whether you mean the gradient of your original function f(x) or that of log10(f(x)) that is shown in the plot.
5 Kommentare
Torsten
am 15 Jul. 2022
Bearbeitet: Torsten
am 15 Jul. 2022
I don't know what you try to do.
The linear part of the semilogy plot can be approximated by g(t) = 70-3.2*t.
Thus the original pressure function is
p(t) = 10^g(t) = 10^(70-3.2*t).
Now I just calculated its gradient symbolically:
syms t
p = 10^(70-3.2*t)
gradp = diff(p,t)
Or maybe you don't have a licence for the Symbolic Toolbox ?
Try
license checkout Symbolic_Toolbox
Torsten
am 15 Jul. 2022
Bearbeitet: Torsten
am 15 Jul. 2022
I think I made a mistake in the calculation of your pressure function.
I assumed that in the semilogy plot, log(p) is plotted against t. But that's not true - it's also p that is shown.
The following code should be correct:
b = log10(70);
a = log10(6/70)/30;
syms t
p = 10^(a*t+b);
double(subs(p,t,0))
double(subs(p,t,30))
gradp = diff(p,t);
p = matlabFunction(p);
gradp = matlabFunction(gradp);
t = 0:0.1:40;
plot(t,p(t))
plot(t,gradp(t))
Weitere Antworten (1)
BELDA
am 1 Mär. 2023
1° question n°1 :
b = log10(70);
a = log10(6/70)/30;
Vous avez élévé la fonction f(x) en log base 10 c a d en échelle semilog alors que x est en échelle linéaire afin de mieux définir ma fonction f(x);
pourquoi pour a=log10(6/70)/30 comment on trouve (6/70)/30 pour -3.2x
D'avance merci .
1 Kommentar
Torsten
am 1 Mär. 2023
Bearbeitet: Torsten
am 1 Mär. 2023
You search for the constants of a linear function a*x+b such that (from the graph)
p(0) = 10^(a*0+b) = 70
p(20) = 10^(a*20+b) = 6 (I don't know how I came up with p(30) = 6 as done above).
The equations are thus
70 = 10^b, thus b = log10(70) and
6 = 10^(a*20+b) -> log10(6) = a*20+log10(70) -> a = (log10(6)-log10(70))/20 = log10(6/70) / 20.
The original pressure curve is thus approximately
p(t) = 10^(log10(6/70) / 20 * t + log10(70))
Siehe auch
Kategorien
Mehr zu Argument Definitions 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!