How to fix in Gauss formula
3 views (last 30 days)
Show older comments
Hello,
I have here two formulas of Jacobi and Gauss.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/462070/image.png)
I wrote code in the method Jacobi and it worked for me, but in Gauss there is a problem it came out to me a matrix instead of a vector.
I have a problem with B and c in Gauss, If I did right.
Thanks for the helpers
%Jacobi
L = tril(A,-1);
U = triu(A,1);
D = diag(A);
B = -1./D.*(L+U);
c = (1./D).*b;
x_new = B*x+c;
%Gauss
L = tril(A,-1);
U = triu(A,1);
D = diag(A);
B = -1./(L+D).*U;
c = (1./(L+D)).*b;
x_new = B*x+c;
0 Comments
Accepted Answer
Jon
on 15 Dec 2020
It looks like in your calculation of c in both the Jacobi and Gauss you should do a Matrix -vector multiply not an element by element so replace yours with
c = (1./D)*b;
and
c = (1./(L+D))*b;
Maybe there are some other issues too.
Also as a comment you compute the same terms multiple times which isn't too efficient, e.g. 1./(L+D) gets computed twice in your Gauss calculation.
7 Comments
More Answers (0)
See Also
Categories
Find more on Operating on Diagonal Matrices 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!