NaN and Infs popping in my matrices after a few iterations of EM algorithm
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello ;
So, I'm implementing the EM algorithm in Matlab, but my matrices quickly end up contaminated by NaN and Inf values. I think it might be caused by matrix inversions, but I'm not sure it's the only reason.
Here is the code : em_algo.m http://pastebin.com/vJGqQPw7 iterates until convergence (which never happens due to my issue) and calls smoother.m http://pastebin.com/yD9Je37i at each iteration. The NaNs and Infs start popping around the ~8th iteration, usually.
I guess in there somewhere I'm doing something unholy with my matrices, but I really have no clue about what's wrong. I trust your expertise.
Thanks in advance for the help!
0 comentarios
Respuestas (3)
José-Luis
el 20 de Nov. de 2012
It sounds like you are running into numerical stability issues. Look at the following example, that might help you understand what is happening:
val = 1;
while (val ~= Inf)
val = val / 10^-100
end
The NaN's that pop up can be a result of
0/0
0 comentarios
Matt J
el 23 de Nov. de 2012
Editada: Matt J
el 23 de Nov. de 2012
Set a conditional breakpoint at line 45 (making it conditional on i==8 or whenever the NaNs start to pop up). When the code stops there, see whether inv(A) has sensible values.
0 comentarios
Ver también
Categorías
Más información sobre Logical 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!