Wrong solution using solve with a logarithmic
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Matthew Worker
le 24 Juin 2021
Réponse apportée : Walter Roberson
le 25 Juin 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 commentaires
dpb
le 24 Juin 2021
Would have to have a complete test case including constants to do any diagnositics...
Réponse acceptée
Walter Roberson
le 25 Juin 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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Assumptions dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!