HELP with creating matrix for Jacobi and Gauss-Seidel method problem!!
조회 수: 2 (최근 30일)
이전 댓글 표시
How can i create this matrix in matlab?
aij= [2i when j=i and i=1,2,...,80
0.5i when {j=i+2 and i=1,2,...,78 AND j=i-2 and i=3,4,...,80
0.25i when {j=i+4 and i=1,2,...,76 AND j=i-4 and i=5,6,...,80
0 otherwise]
and those of b are bi = π, for each i = 1,2,...,80.
I will need to use Jacobi and Gauss-seidel method to solve the linear system Ax = b to within 10−5 in the l∞ norm with the given matrix entries above. I am just stuck with how to create the matrix. I have spent so long reading the book and other sites but still have no idea where to even begin with the entries of this matrix so any help is appreciated!
댓글 수: 1
답변 (1개)
Daniel kiracofe
2016년 11월 13일
the brute force approach would be something like this.
for i = 1:80
for j = 1:80
if (i==j)
a(i,j) = 2*i;
elseif ( other conditions)
a(i,j) = whatever
etc.
end
end
There are quicker ways to do it, but this will be easiest to understand. for 80x80 matrix, speed will not be an issue.
댓글 수: 2
Torsten
2016년 11월 15일
Use "tril", "diag" and "triu" to build the appropriate iterations matrices L, D and U and solve the linear systems
L*x_new = b-U*x_old for Gauss-Seidel
and
D*x_new = b-(L+U)*x_old for Jacobi
using "backslash (\)".
Best wishes
Torsten.
참고 항목
카테고리
Help Center 및 File Exchange에서 Operating on Diagonal Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!