9/25/21, 11:22 PM The Programming Language of Euler
TugasSPL_19301244017_Tsania Ismi Fauzia
Nama : Tsania Ismi Fauzia
NIM : 19301244017
Kelas : Pendidikan Matematika C 2019
Penyelesaian Sistem Persamaan Linier (SPL) Secara Numerik
Suatu SPL dapat dinyatakan sebagai persamaan matriks
dengan
A adalah sebuah matriks n x n:
dan X dan B adalah vektor-vektor n-komponen:
dengan pangkat T menyatakan operasi transpose matriks, yakni mengubah
baris menjadi kolom dan
kolom menjadi baris.
Matriks A disebut matriks koefisien, vektor kolom Bsering disebut
vektor konstanta. Gabungan matriks A dan vektor kolom B, yakni matriks
n(n + 1) (A|B), disebut matriks
augmented dari SPL (2.1).
Apabila semua nilai b_i = 0 untuk i = 1,2,....,n, maka SPL (2.1)
disebut sistem homogen. Jika terdapat b_k
tidak sama dengan 0 untuk
suatu 1 kurang dari sama dengan k kurang dari sama dengan n, maka SPL
(2.1) disebut sistem tak homogen. Sistem homogen memegang peranan
penting untuk mengetahui ada
tidaknya penyelesaian SPL (2.1).
Contoh:
Pada SPL di atas,
Selanjutnya akan dibahas beberapa metode tak langsung (iteratif)
penyelesaian dari SPL, di antaranya
Iterasi Jacobi, Iterasi
Gauss-Seidel, dan Metode SOR
Metode Jacobi
Metode Jacobi merupakan salah satu bidang analisis numerik yang
digunakan untuk menyelesaikan solusi
sistem persamaan linear.
Metode iterasi Jacobi merupakan salah satu metode tak langsung, yang
bermula dari suatu hampiran
penyelesaian awal dan kemudian berusaha
memperbaiki hampiran dalam tak berhingga namun langkah
dalam
konvergen. Metode iterasi Jacobi ini digunakan untuk menyelesaikan
persamaan linier yang
proporsi koefisien nolnya besar.
Metode Jacobi merupakan metode konvergen. Sehingga setiap persamaan
harus diubah sedemikian
sehingga koefisien-koefisien nilai mutlaknya
paling besar satu, yaitu
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 1/14
9/25/21, 11:22 PM The Programming Language of Euler
Metode ini ditemukan oleh matematikawan yang berasal dari Jerman,Carl
Gustav Jakob Jacobi.
Penemuan ini diperkirakan pada tahun 1800-an.
Kalau kita mengubah dalam Sistem Persamaan Linear, maka dapat ditulis
sebagai berikut.
Kemudian, diketahui bahwa
di mana
merupakan matriks diagonal,
merupakan matriks segitiga bawah, dan
merupakan matriks segitiga atas.
Kemudian, persamaan di atas dapat diubah menjadi:
Kemudian,
Jika ditulis dalam aturan iteratif, maka metode Jacobi dapat ditulis
sebagai:
di mana
merupakan banyaknya iterasi. Jika
menyatakan hampiran ke-
penyelesaian SPL, maka
adalah hampiran awal.
Iterasi metode Jacobi diperoleh dengan memecahkan i persamaan di Ax =
b untuk x_i untuk memperoleh
(dengan syarat a_ii tidak sama dengan 0)
Untuk setiap k lebih dari sama dengan 1, menghasilkan komponen x^(k)_i
pada x^(k) dari komponen x^(k-
1) dengan
Langkah-langkah pada metode Jacobi adalah sebagai berikut.
1. Pada persamaan ke-i, nyatakan x_i dalam variabel-variabel lainnya:
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 2/14
9/25/21, 11:22 PM The Programming Language of Euler
Perhatikan, di sini harus dipastikan terlebih dahulu susunan SPL-nya
sedemikian rupa sehingga setiap
a_{ii} tidak nol.
2. Tentukan nilai-nilai awal (bebas) untuk x_i (i=1,2,3, ..., n),
kemudian substitusikan ke ruas kanan pada
setiap persamaan di atas,
sehingga didapat nilai-nilai x_i (i=1,2,3, ..., n) yang baru.
3. Ulangi langkah 2 dengan nilai-nilai x_i (i=1,2,3, ..., n) yang
baru, sampai iterasinya konvergen (nilai-nilai
x_i yang baru sama atau
"hampir sama" dengan nilai-nilai nilai-nilai x_i sebelumnya), atau
setelah sekian
iterasi, atau setelah diyakini iterasinya tidak
konvergen.
Contoh:
Untuk menyelesaikan SPL di atas dengan metode Jacobi, ubah SPL
tersebut menjadi:
Berikut kita coba lakukan perhitungan nilai-nilai x_i sampai iterasi
ke-10.
>x1=-1; x2=3; x3=4; x4=7; // nilai-nilai awal x_i dipilih secara bebas
>jacobi=[x1;x2;x3;x4]; // hasil perhitungan disimpan ke suatu matriks
>for i=1:10, ...
y1=12-2*x2-x3-x4; y2=12-2*x1-4*x3+x4; ...
y3=19-2*x1-x2-3*x4; y4=1/2*(19-3*x1-x2-2*x3); ...
x1=y1; x2=y2; x3=y3; x4=y4; ...
jacobi=[jacobi, [x1;x2;x3;x4]]; ...
end
Perhatikan, pada setiap iterasi kita perlu menyimpan nilai-nilai x_i yang baru engan nama
lain, misalnya
y_i, baru setelah iterasinya lengkap nilai-nilai y_i disimpan ke x_i,
sebagai nilai-nilai x_i yang baru.
>jacobi' // tampilkan hasil iterasinya
-1 3 4 7
-5 5 -3 5.5
-0.5 39.5 7.5 17.5
-92 0.5 -72 -17
100 467 253.5 219.25
-1394.75 -982.75 -1305.75 -627.5
3910.75 7397 5673.75 3898.75
-24354.5 -26605.8 -26895.8 -15228.9
95348.1 141075 121020 76739.9
-479899 -598026 -561972 -334571
2.09261e+06 2.87313e+06 2.56155e+06 1.58084e+06
Pada hasil 10 iterasi pertama tersebut terlihat bahwa nilai-nilai x_i semakin lama
semakin "menjauh" dari
nilai-nilai sebelumnya, sehingga dapat disimpulkan iterasinya
tidak konvergen.
Silakan Anda mencoba mengulangi iterasinya dengan nilai-nilai awal x_i yang berbeda,
atau dengan
melanjutkan iterasinya sampai iterasi lebih banyak lagi dan lihat hasilnya.
Apakah iterasi Jacobi yang tidak konvergen tersebut menunjukkan bahwa SPL nya tidak
memiliki solusi?
Kita selesaikan SPL tersebut secara langsung.
>A=[1, 2, 1, 1;2, 1, 4 ,-1;2, 1, 1, 3;3, 1, 2, 2]
1 2 1 1
2 1 4 -1
2 1 1 3
3 1 2 2
>b=[12;12;19;19]
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 3/14
9/25/21, 11:22 PM The Programming Language of Euler
12
12
19
19
>x=A\b
>x=inv(A).b
>A.x
12
12
19
19
Ternyata SPL tersebut memiliki solusi eksak:
Lantas mengapa iterasi Jacobi tiak konvergen ke solusi eksak? Untuk
menemukan jawabannya, silakan
Anda ubah-ubah susunan SPL-nya dan
lakukan iterasi Jacobi lagi. Atau, coba selesaikan SPL lain dengan
iterasi Jacobi tersebut.
Melakukan iterasi Jacobi secara "manual" di atas secara berulang-ulang
tentu memakan waktu lama, baik
untuk menuliskan setiap persamaan
maupun melakukan perhitungan.
Oleh karena itu, iterasi Jacobi dapat dilakukan secara lebih efisien
dalam bentuk itersai matriks.
Untuk melakukan iterasi matriks Jacobi, matriks koefisien A
didekomposisi menjadi matriks segitiga bawah
L, matriks segitiga atas
U, dan matriks diagonal D:
dengan
Jadi, SPL
dapat diubah menjadi
Sekarang kita dapat membuat iterasi matriks
dengan
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 4/14
9/25/21, 11:22 PM The Programming Language of Euler
Kita dapat menggunakan fungsi-fungsi Euler diag, setdiag, zeros, size,
dan length untuk menghasilkan
matriks L, D, dan U dari matriks A.
>A
1 2 1 1
2 1 4 -1
2 1 1 3
3 1 2 2
>diag(A,-1) // elemen-elemen pada diagonal ke-(-1) matriks A
[2, 1, 2]
>diag(A) // elemen-elemen pada diagonal utama (ke-0) matriks A
[1, 1, 1, 2]
>D=setdiag(zeros(size(A)),0,diag(A))
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 2
>//Fungsi untuk menghasilkan matriks segitiga atas
>function triu(A) ...
U=A;for i=0:length(A), U=setdiag(U,-i,0); end
return U
endfunction
>triu(A)
0 2 1 1
0 0 4 -1
0 0 0 3
0 0 0 0
>//Fungsi untuk menghasilkan matriks segitiga bawah
>function tril(A) ...
L=A;for i=0:length(A), L=setdiag(L,i,0); end
return L
endfunction
>tril(A)
0 0 0 0
2 0 0 0
2 1 0 0
3 1 2 0
>//Program/fungsi untuk melakukan iterasi matriks Jacobi
>function jacobit(A,b,x0,n) ...
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 5/14
9/25/21, 11:22 PM The Programming Language of Euler
L=tril(A);
U=triu(A);
D=setdiag(zeros(size(A)),0,diag(A));
hasil=x0;
for i=1:n,
x=inv(D).(b-(L+U).x0);
x0=x;
hasil=[hasil,x0];
end
return hasil'
endfunction
>A
1 2 1 1
2 1 4 -1
2 1 1 3
3 1 2 2
>b
12
12
19
19
>x0=[0;0;0;0]
>jacobit(A,b,x0,10) //Kita coba lakukan iterasi matriks Jacobi untuk SPL sebelumnya
0 0 0 0
12 12 19 9.5
-40.5 -78.5 -45.5 -33.5
248 241.5 279 155
-905 -1445 -1183.5 -762.25
4847.75 5793.75 5560.75 3273
-20409.3 -28653.5 -25289.3 -15719.8
98328 126268 116650 70239.4
-439413 -593006 -533623 -327267
2.04691e+06 2.68606e+06 2.45365e+06 1.48925e+06
-9.31502e+06 -1.24192e+07 -1.12476e+07 -6.86704e+06
>//Hasilnya tidak jauh berbeda dengan hasil sebelumnya, sama-sama divergen.
Kita coba gunakan fungsi jacobit untuk menyelesaikan SPL
>A=[3,-0.1,-0.2; 0.1,7,-0.3; 0.3,-0.2,10]
3 -0.1 -0.2
0.1 7 -0.3
0.3 -0.2 10
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 6/14
9/25/21, 11:22 PM The Programming Language of Euler
>b=[7.85;-19.3;71.4]
7.85
-19.3
71.4
>x0=[0;0;0]
>x=jacobit(A,b,x0,10)
0 0 0
2.61667 -2.75714 7.14
3.00076 -2.48852 7.00636
3.00081 -2.49974 7.00021
3.00002 -2.5 6.99998
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
Hasil di atas memperlihatkan bahwa iterasinya akan konvergen. Akan
dicoba iterasinya sampai 200 kali.
>x=jacobit(A,b,x0,200);
>x[190:200,:]
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
Terlihat bahwa iterasinya konvergen ke solusi
Akan dibandingkan dengan solusi secara langsung:
>x=A\b
-2.5
>A.x
7.85
-19.3
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 7/14
9/25/21, 11:22 PM The Programming Language of Euler
71.4
Terlihat bahwa hasil iterasi Jacobi sama dengan solusi secara langsung
Metode Gauss-Seidel
Metode Gauss-Seidel adalah metode iteratif yang paling umum digunakan
untuk menyelesaikan linear
persamaan aljabar. Asumsikan bahwa kita
diberikan satu set n persamaan:
Anggaplah bahwa untuk lebih ringkas kita membatasi diri pada satu set
persamaan 3 × 3. Jika diagonal
elemen semuanya bukan nol, persamaan
pertama dapat diselesaikan untuk x_1, yang kedua untuk x_2,
dan ketiga
untuk x_3 untuk menghasilkan
di mana j dan j-1 adalah iterasi sekarang dan sebelumnya.
Untuk memulai proses solusi, tebakan awal harus dibuat untuk x's.
Aplikasi pendekatan sederhana adalah
dengan mengasumsikan bahwa mereka
semua nol. Angka nol ini dapat disubstitusikan ke dalam
Persamaan.(x^j_3), yang dapat digunakan untuk menghitung nilai baru
untuk x_1 = b_1/a_11. Lalu kita
ganti yang baru ini nilai x_1 bersama
dengan tebakan nol sebelumnya untuk x_3 ke dalam Persamaan.
(x^j_2)
untuk menghitung nilai yang baru untuk x_2. Proses ini diulang untuk
Persamaan. (x^j_3) untuk
menghitung nilai baru untuk x_3. Kemudian,
kita kembali ke persamaan pertama dan ulangi seluruh
prosedur sampai
solusi kita konvergen cukup dekat dengan nilai sebenarnya. Konvergensi
dapat diperiksa
dengan menggunakan kriteria bahwa untuk semua
Contoh:
Gunakan metode Gauss-Seidel untuk mendapatkan solusi untuk
Perhatikan bahwa solusinya adalah x_1 = 3, x_2 = -2.5, dan x_3 = 7
Solusi:
Pertama, selesaikan setiap persamaan untuk yang tidak diketahui pada
diagonal:
Dengan mengasumsikan bahwa x_2 dan x_3 adalah nol, Persamaan (x_1)
dapat digunakan untuk
menghitung
Nilai ini, bersama dengan nilai asumsi x_3 = 0, dapat disubstitusikan
ke Persamaan (x_2) untuk
menghitung
Iterasi pertama diselesaikan dengan mensubstitusi nilai yang dihitung
untuk x_1 dan x_2 menjadi
Persamaan (x_3) untuk menghasilkan
Untuk iterasi kedua, proses yang sama diulang untuk menghitung
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 8/14
9/25/21, 11:22 PM The Programming Language of Euler
Metode ini, oleh karena itu, konvergen pada solusi yang benar. Iterasi
tambahan dapat diterapkan untuk
memperbaiki jawaban. Namun, dalam
masalah yang sebenarnya, kita tidak akan tahu jawaban yang benar
a
priori. Akibatnya, Persamaan (12.2) menyediakan sarana untuk
memperkirakan kesalahan. Untuk
contoh, untuk x_1 :
Untuk x_2 dan x_3, perkiraan kesalahan
Perhatikan bahwa, seperti kasus ketika menentukan akar persamaan
tunggal, formulasi seperti
Persamaan (12.2) biasanya memberikan
penilaian konservatif konvergensi. Jadi, ketika mereka bertemu,
mereka
memastikan bahwa hasilnya diketahui setidaknya toleransi yang
ditentukan oleh e_s
Metode Gauss-Seidel menggunakan langkah/rumus yang persis sama dengan
metode Jacobi. Bedanya,
pada iterasi Gauss-Seidel, setiap nilai x_i
yang baru langsung digunakan untuk menghitung nilai-nilai x_j
yang
lain (1=<i<j<=n) pada iterasi yang sama.
Contoh:
Kita coba selesaikan SPL terakhir menggunakan iterasi Gauss-Seidel.
Ubah SPL tersebut ke bentuk:
Dari bentuk terakhir dapat dilakukan iterasi dengan menentukan nilai
awal untuk x_1, x_2, dan x_3.
Berikut kita coba lakukan perhitungan 10
iterasi pertama.
>x1=1; x2=1; x3=1; //solusi awal ditentukan sebarang
>gs=[x1;x2; x3] //simpan solusi awal
>for i=1:10, ...
x1=1/3*(7.85+0.1*x2+0.2*x3); ...
x2=1/7*(-19.3-0.1*x1+0.3*x3); ...
x3=1/10*(71.4-0.3*x1+0.2*x2); ...
gs=[gs, [x1; x2; x3]]; ...
end
>long gs' // tampilkan hasil iterasi tersebut
1 1 1
2.71666666667 -2.7530952381 7.00343809524
2.99179269841 -2.4997354059 7.00025151093
3.0000255872 -2.49998958649 6.99999944065
3.00000030983 -2.5000000284 6.99999999014
2.9999999984 -2.5000000004 7.00000000004
2.99999999999 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
3 -2.5 7
Hasil iterasi tersebut memperlihatkan bahwa solusi SPL-nya adalah
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 9/14
9/25/21, 11:22 PM The Programming Language of Euler
sama seperti hasil yang diperoleh dengan metode Jacobi sebelumnya.
Apabila Anda amati secara lebih cermat, terlihat bahwa iterasi
Gauss-Seidel lebih cepat konvergen
dibandingkan dengan iterasi Jacobi.
Mengapa demikian? Jawabannya tentu dapat Anda peroleh dengan
memperhatikan perbedaan kedua metode tersebut. Perhatikan pada iterasi
Gauss-Seidel tidak digunakan
variabel lain untuk menyimpan hasil-hasil
perhitungan nilai-nilai x1,x2, dan x3.
Seperti iterasi Jacobi, iterasi Gauss-Seidel juga dapat dilakukan
secara lebih efisien dalam bentuk iterasi
matriks. Dengan
mendekomposisi matriks koefisien A menjadi matriks segitiga bawah L,
matriks segitiga
atas U, dan matriks diagonal D:
maka, SPL
dapat diubah menjadi
Sekarang kita dapat membuat iterasi matriks
dengan
>// Berikut adalah program Gauss-Seidel dalam bentuk iterasi matriks
>function gausseidel(A,b,x0,n) ...
L=tril(A);
U=triu(A);
D=setdiag(zeros(size(A)),0,diag(A));
hasil=x0;
for i=1:n,
x=inv(L+D).(b-U.x0);
x0=x;
hasil=[hasil,x0];
end
return hasil'
endfunction
Perhitungan "manual" sebelumnya dapat dengan mudah dilakukan menggunakana program tersebut.
>A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8]
10 -1 2 0
-1 11 -1 3
2 -1 10 -1
0 3 -1 8
>b=[6;25;-11;15]
25
-11
15
>x0=[1;1;1;1]
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 10/14
9/25/21, 11:22 PM The Programming Language of Euler
1
>long gausseidel(A,b,x0,10)
1 1 1 1
0.5 2.13636363636 -0.886363636364 0.963068181818
0.990909090909 2.01957644628 -0.999917355372 0.992669163223
1.0019411157 2.00218329733 -1.00090297708 0.999068391365
1.00039892515 2.00020825218 -1.00015212068 0.999902890348
1.00005124935 2.00001731433 -1.0000182294 0.999991228451
1.00000537731 2.00000122387 -1.00000183023 0.99999931227
1.00000048843 2.00000006558 -1.0000001599 0.999999955419
1.00000003854 2.00000000113 -1.00000001205 0.999999998071
1.00000000252 1.99999999966 -1.00000000073 1.00000000004
1.00000000011 1.99999999993 -1.00000000003 1.00000000002
Sekali lagi, kita bandingkan dengan metode Jacobi.
>x0=[1;1;1;1]
>long jacobit(A,b,x0,10)
1 1 1 1
0.5 2.18181818182 -1.1 1.625
1.03818181818 1.775 -0.819318181818 0.919318181818
0.941363636364 2.04190082645 -1.03820454545 1.10696022727
1.01183099174 1.96202530992 -0.973386621901 0.979511621901
0.990879855372 2.00908268219 -1.00821250517 1.01756718104
1.00255076925 1.99363325519 -0.995510984751 0.995567431032
0.998465522469 2.00184886286 -1.00159008523 1.00294865621
1.00050290333 1.99891176987 -0.999213352587 0.999107915776
0.999733847505 2.00036052758 -1.0002986121 1.00050641722
1.00009577518 1.99981054398 -0.99986007502 0.999827475644
Pada iterasi ke-10, iterasi Jacobi memiliki galat hampiran solusi yang lebih besar daripada
galat iterasi ke-
10 iterasi Gauss-Seidel.
Metode SOR
Dalam aljabar linier numerik, metode successive over-relaxation (SOR)
adalah varian dari metode Gauss–
Seidel untuk menyelesaikan sistem
persamaan linear, yang menghasilkan konvergensi yang lebih cepat.
Metode serupa dapat digunakan untuk setiap proses iteratif yang
konvergen [Link] SOR
dirancang secara bersamaan oleh David M.
Young Jr. dan oleh Stanley P. Frankel pada tahun 1950 untuk
tujuan
memecahkan sistem linier secara otomatis pada komputer digital.
Diberikan sistem kuadrat dari n persamaan linier dengan x yang tidak
diketahui:
dimana:
Kemudian A dapat didekomposisi menjadi komponen diagonal D, dan
komponen segitiga bawah dan atas
L dan U:
dimana
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 11/14
9/25/21, 11:22 PM The Programming Language of Euler
Sistem persamaan linear dapat ditulis ulang sebagai:
untuk konstanta
disebut faktor relaksasi.
Metode berturut-turut over-relaksasi adalah teknik iteratif yang
memecahkan sisi kiri ekspresi ini untuk x,
menggunakan nilai
sebelumnya untuk x di sisi kanan. Secara analitis, ini dapat ditulis
sebagai:
di mana
adalah aproksimasi atau iterasi ke-k dari
adalah iterasi berikutnya atau k + 1 dari
Namun, dengan memanfaatkan bentuk segitiga
elemen x(k+1) dapat dihitung secara berurutan menggunakan substitusi
maju
Soal No 1b, 2c, 3, 4 Latihan 7.3 Buku Numerical Analysis
1. Tentukan 2 iterasi pertama dari Metode Jacobi untuk sistem linear
berikut, dengan menggunakan x^(0)
=0
>x1=0; x2=0; x3=0;
>jacobi=[x1;x2;x3];
>for i=1:2, ...
y1=9/10+1/10*x2; ...
y2=7/10+1/10*x1+2/10*x3; ...
y3=6/10+2/10*x2; ...
x1=y1; x2=y2; x3=y3; ...
jacobi=[jacobi, [x1;x2;x3]]; ...
end
>jacobi'
0 0 0
0.9 0.7 0.6
0.97 0.91 0.74
2. Temukan 2 iterasi pertama dari Metode Jacobi untuk sistem linear
berikut, dengan menggunakan x^(0)
=0
>x1=0; x2=0; x3=0; x4=0;
>jacobi=[x1;x2;x3;x4];
>for i=1:2, ...
y1=-2/4-1/4*x2+1/4*x3-1/4*x4; y2=-1/4-1/4*x1+1/4*x3+1/4*x4; ...
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 12/14
9/25/21, 11:22 PM The Programming Language of Euler
y3=1/5*x1+1/5*x2-1/5*x4; y4=1/3-1/3*x1+1/3*x2-1/3*x3; ...
x1=y1; x2=y2; x3=y3; x4=y4; ...
jacobi=[jacobi, [x1;x2;x3;x4]]; ...
end
>jacobi'
0 0 0 0
-0.5 -0.25 0 0.333333
-0.520833 -0.0416667 -0.216667 0.416667
3. Ulangi no 1 dengan menggunakan Metode Gauss-Seidel
>x1=0; x2=0; x3=0;
>gs=[x1;x2;x3]
>for i=1:2, ...
x1=9/10+1/10*x2; ...
x2=7/10+1/10*x1+2/10*x3; ...
x3=6/10+2/10*x2; ...
gs=[gs, [x1;x2;x3]]; ...
end
>long gs'
0 0 0
0.9 0.79 0.758
0.979 0.9495 0.7899
4. Ulangi no 2 dengan menggunakan Metode Gauss-Seidel
>x1=0; x2=0; x3=0; x4=0;
>gs=[x1;x2;x3;x4]
>for i=1:2, ...
x1=-2/4-1/4*x2+1/4*x3-1/4*x4; x2=-1/4-1/4*x1+1/4*x3+1/4*x4; ...
x3=1/5*x1+1/5*x2-1/5*x4; x4=1/3-1/3*x1+1/3*x2-1/3*x3; ...
gs=[gs, [x1;x2;x3;x4]]; ...
end
>long gs'
Real 3 x 4 matrix
0 0 ...
-0.5 -0.125 ...
-0.625 0 ...
Pertanyaan yang masih harus dijawab:
1. Apa syarat metode Jacobi maupun Gauss-Seidel konvergen?
Syarat metode iterasi Jacobi dan Gauss-Seidel konvergen adalah matriks
koefisien A bersifat diagonally
dominant.
Definisi 3 : Matriks A adalah matriks diagonally dominant jika
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 13/14
9/25/21, 11:22 PM The Programming Language of Euler
Matriks A dikatakan strictly diagonally dominant jika
Definisi 4 : Misalkan matriks A = adalah matriks persegi berukuran
dengan nilai eigen
maka
adalah spektral radius matriks A.
ilangan kondisi (condition number ) digunakan untuk menentukan baik
atau buruknya kondisi dari suatu
matriks.
Penyelesaian SPL
merupakan titik tetap iterasi
dapat digunakan untuk mengganti masukan maupun keluaran persamaan,
yakni :
Dari kesamaan ini didapatkan
Dimisalkan
adalah galat hampiran ke-k.
Dengan demikian diperoleh :
,dengan e(0)adalah galat hampiran awal. Untuk iterasi matriks
stasioner (termasuk iterasi Gauss-Seidel)
matriks galat hampiran ke-k
adalah
Dengan menggunakan sifat norm, didapat :|e(k)|= ||M_k|.|e(0)||.Iterasi
matriks dikatakan konvergen jika
2. Bagaimana persamaan dan perbedaan kedua metode tersebut?
Persamaan : sama sama digunakan untuk menyelsaikan Sistem Persamaan
Linear
Perbedaan :
Teknik Jacobi jarang digunakan untuk menyelesaikan SPL berukuran kecil
karena metode-metode
langsung seperti metode eliminasi Gauss lebih
efisien dari pada metode Jacobi. Akan tetapi, untuk SPL
berukuran
besar dengan persentase elemen nol pada matriks koefisien besar,
teknik jacobi lebih efisien
daripada metode langsung dalam hal
penggunaan memori komputer maupun waktu komputasi. Metode
iterasi
Jacobi, prinsipnya: merupakan metode iteratif yang melakuakn
perbaharuan nilai x yang diperoleh
tiap iterasi (mirip metode
substitusi berurutan, successive substitution).
[Link] Numerik/TugasSPL_19301244017_Tsania Ismi [Link] 14/14