how to find value of variable in natural logarithmic

2 visualizzazioni (ultimi 30 giorni)
How to find value of X:
ln(X/0.466)*66.66+X*4.4805*10^(-4)+X=5.66
  4 Commenti
Star Strider
Star Strider il 30 Apr 2021
I would use fsolve, since it would appear to have at most only one root.
Remember to use log, not ln in your code.
Scott MacKenzie
Scott MacKenzie il 30 Apr 2021
hint #1: e^(ln(x)) = x
hint #2: e^(ln(y) + ln(z)) = y * z

Accedi per commentare.

Risposte (1)

DGM
DGM il 30 Apr 2021
Modificato: DGM il 30 Apr 2021
This can be done a number of ways. It's a log plus a positive linear function of x. There will be only one solution. That makes everything easier.
% solving symbolically
syms X
eqn = log(X/0.466)*66.66+X*4.4805*10^(-4)+X==5.66;
aaa = double(solve(eqn,X))
% or using fsolve
f = @(x) log(x/0.466)*66.66 + x*4.4805*10^(-4) + x - 5.66;
bbb = fsolve(f,1)
% or using fzero
ccc = fzero(f,1)
% do the answers make sense? check it graphically
x = linspace(0.2,1,100);
y = log(x/0.466)*66.66 + x*4.4805*10^(-4) + x;
plot(x,y); hold on
plot([0.2 1],[1 1]*5.66)
plot(aaa,5.66,'bo')
plot(bbb,5.66,'ko','markersize',10)

Community Treasure Hunt

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

Start Hunting!

Translated by