summing two 3d matrices to check convergence
1 view (last 30 days)
Show older comments
Given two 3d matrices, obtained in a iterative process as the solution to a PDE, I want to check convergence. To do so, I check:
abs( sum( A(:) - Aold(:) ) ) < eps
Is this the best way to do it? I mean, if I declare
A = rand(100,200,50);
B = rand(100,200,50);
And if I check
check1 = abs( sum( A(:)-B(:) ) );
check2 = abs( sum(sum(sum( A-B ) ) ) );
check3 = abs( sum(A(:)) - sum(B(:)) );
check4 = abs( sum(sum(sum(A))) - sum(sum(sum(B))) );
They should give the same answer. However,
>> check1-check2
ans =
2.3306e-12
>> check1-check3
ans =
3.8846e-09
>> check1-check4
ans =
-2.4812e-10
>> check2-check3
ans =
3.8823e-09
>> check2-check4
ans =
-2.5045e-10
>> check3-check4
ans =
-4.1327e-09
So it clearly is not exactly the same thing. What is the difference between the methods and what is the difference between sum(A(:)) and sum(sum(sum(A))) ? If I want to check convergence on a iterative process, what is the best way to do it?
1 Comment
Accepted Answer
More Answers (0)
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!