NaN and Infs popping in my matrices after a few iterations of EM algorithm
3 views (last 30 days)
Show older comments
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 Comments
Answers (3)
José-Luis
on 20 Nov 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 Comments
Matt J
on 23 Nov 2012
Edited: Matt J
on 23 Nov 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 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!