how to find value of variable in natural logarithmic

2 views (last 30 days)
How to find value of X:
ln(X/0.466)*66.66+X*4.4805*10^(-4)+X=5.66
  4 Comments
Star Strider
Star Strider on 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 on 30 Apr 2021
hint #1: e^(ln(x)) = x
hint #2: e^(ln(y) + ln(z)) = y * z

Sign in to comment.

Answers (1)

DGM
DGM on 30 Apr 2021
Edited: DGM on 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!