How to calculate gradient from semilogy plot graph?

4 views (last 30 days)
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

Accepted Answer

Torsten
Torsten on 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 Comments
Torsten
Torsten on 15 Jul 2022
Edited: Torsten on 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)
p = 
gradp = diff(p,t)
gradp = 
Or maybe you don't have a licence for the Symbolic Toolbox ?
Try
license checkout Symbolic_Toolbox
ans = 1
Torsten
Torsten on 15 Jul 2022
Edited: Torsten on 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;
a = -0.0356
ans = 1.0853
syms t
p = 10^(a*t+b);
double(subs(p,t,0))
ans = 70.0000
double(subs(p,t,30))
ans = 6.0000
gradp = diff(p,t);
p = matlabFunction(p);
gradp = matlabFunction(gradp);
t = 0:0.1:40;
plot(t,p(t))
plot(t,gradp(t))

Sign in to comment.

More Answers (1)

BELDA
BELDA on 1 Mar 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 Comment
Torsten
Torsten on 1 Mar 2023
Edited: Torsten on 1 Mar 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))

Sign in to comment.

Categories

Find more on Argument Definitions in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!