summing two 3d matrices to check convergence
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!