fsolve y soluciones imaginarias
Publicado por emilio (52 intervenciones) el 09/07/2010 18:29:38
Hola amigos, estoy trabajando un una famila de ecuaciones no lineales, y necesito calcular para cada una sus raices en cierto intervalo, he utilizado un pequeño m file, para que vaya corriendo un fsolve y calcule algo asi:
for r=0:10 ptos de inicio para fsolve
C = fsolve ( f(x) , r )
end,
las raices las guardo y todo funciona bien pero ocurre lo siguiente, que cuando grafico f(x), me di cuenta que varias de las soluciones q ponía el fsolve eran imaginarias y medaba la siguiente advertencia:
No solution found.
fsolve stopped because the problem appears regular as measured by the gradient,
but the vector of function values is not near zero as measured by the
default value of the function tolerance.
<stopping criteria details>
pero me arroja igual un valor numerico, que es modulo del imaginario, este valor no es advertido como imaginario, osea no trae una i, y no se como puedo filtrar estos valores para q no aparezcan
he intentado ver la condicón dentro del m file del fsolve para filtrarlo a traves de un if pero no lo encontré, si alguien me puede ayudar sería de mucha ayuda, o si alguien tiene una mejor idea de como poder manejar estas eqs. de otra forma. SALUDOS
for r=0:10 ptos de inicio para fsolve
C = fsolve ( f(x) , r )
end,
las raices las guardo y todo funciona bien pero ocurre lo siguiente, que cuando grafico f(x), me di cuenta que varias de las soluciones q ponía el fsolve eran imaginarias y medaba la siguiente advertencia:
No solution found.
fsolve stopped because the problem appears regular as measured by the gradient,
but the vector of function values is not near zero as measured by the
default value of the function tolerance.
<stopping criteria details>
pero me arroja igual un valor numerico, que es modulo del imaginario, este valor no es advertido como imaginario, osea no trae una i, y no se como puedo filtrar estos valores para q no aparezcan
he intentado ver la condicón dentro del m file del fsolve para filtrarlo a traves de un if pero no lo encontré, si alguien me puede ayudar sería de mucha ayuda, o si alguien tiene una mejor idea de como poder manejar estas eqs. de otra forma. SALUDOS
Valora esta pregunta


0