HELP with creating matrix for Jacobi and Gauss-Seidel method problem!!
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentar
Antworten (1)
Daniel kiracofe
am 13 Nov. 2016
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 Kommentare
Torsten
am 15 Nov. 2016
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.
Siehe auch
Kategorien
Mehr zu Operating on Diagonal Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!