Wrong solution using solve with a logarithmic
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Matthew Worker
il 24 Giu 2021
Risposto: Walter Roberson
il 25 Giu 2021
Hello,
I wanted to solve an equation containing a log function. The solution given by Matlab is not correct, until I multiply the logarithm by 10.
I'm aware of the difference between log and log10 and want to use the natural logarithm.
f_1 = 10* (eta_p/(b_pstern * g * eps_min))*(log(W_0/(W_0-B1)))== s*1000 ;
W_K_1 = double(solve(f_1, B1))
In the equation, everything is numeric except for B1. When I type the exact same equation into my calculator, I get the correct answer. The "10*" is the correction factor I use for the "correct" solution.
Am I using the log function wrong or is there some other error?
2 Commenti
dpb
il 24 Giu 2021
Would have to have a complete test case including constants to do any diagnositics...
Risposta accettata
Walter Roberson
il 25 Giu 2021
The outputs cross-check properly
format long g
syms B1
f_1 = (6314642578216891*log(-35316/(B1 - 35316)))/536870912 == 300000 % With *10
f_2 = (5051714062573513*log(-35316/(B1 - 35316)))/4294967296 == 300000 % Without *10
f1_sol = solve(f_1)
f2_sol = solve(f_2)
double(f1_sol)
subs(f_1, B1, f1_sol)
lhs(ans)-rhs(ans)
double(f2_sol)
subs(f_2, B1, f2_sol)
lhs(ans)-rhs(ans)
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Calculus in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!