Wrong solution using solve with a logarithmic
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Matthew Worker
el 24 de Jun. de 2021
Respondida: Walter Roberson
el 25 de Jun. de 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 comentarios
dpb
el 24 de Jun. de 2021
Would have to have a complete test case including constants to do any diagnositics...
Respuesta aceptada
Walter Roberson
el 25 de Jun. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Calculus en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!