Anda di halaman 1dari 24

SPL_20305141035_Taufikurohman

Tugas Pekan 4-5


Nama : Taufikurohman

NIM :20305141035

Kelas : Matematika B 2020

Definisi SPL
Suatu sistem yang merupakan gabungan dari beberapa persamaan linier dengan variabel X1, X2,...,Xn. SPL
mempunyai minimal sebuah solusi, disebut konsisten, jika tidak mempunyai solusi disebut tidak
konsisten.

dengan

  A: matriks koefisien dengan ukuran n x n

  b: matriks konstanta(ruas kanan) berukuran n x 1

  x : matriks variabel berukuran n × 1 yang akan

ditentukan/dicari

contoh :

Pada SPL ini dalam bentuk matriks menjadi:

Metode penyelesaian:

A. Metode Langsung

1. Metode Substitusi

2. Metode Eliminasi

3. Metode Grafik (untuk SPL dengan 2 variabel)

4. Metode Cramer

5. Metode Invers

B. Metode Tak Langsung (Iteratif)

1. Iterasi Jacobi

2. Iterasi Gauss-Seidel
3. Metode SOR (succesive over relaxation)

4. dsb.

Metode Jacobi
Langkah-langkah pada metode Jacobi adalah sebagai berikut.

1. Pada persamaan ke-i, nyatakan x_i dalam variabel-variabel lainnya:

Perhatikan disini harus dipastikan terlebih dahulu susunan


SPL-nya

sedemikian rupa sehingga setiap a_{ii} tidak 0 (nol).

2. Menentukan nilai-nilai awal (bebas) untuk x_i(i=1,2,3,...,n),

kemudian Mensubstitusikan ke ruas kanan pada persamaan di atas,

sehingga didapat nilai x_i(i=1,2,3,...,n) yang baru.

3. Mengulangi 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 x_i sebelumnya), atau setelah sekian

iterasi, atau setelah diyakini iterasinya tidak konvergen.

Contoh:

Untuk menyelesaikan SPL tersebut dengan metode Jacobi, ubah SPL

tersebut menjadi berikut:

Berikut akan dicoba melakukan perhitungan nilai-nilai x_i sampai

iterasi ke-10.

>x1=1; x2=2; x3=3; x4=4; // nilai-nilai awal x_i dipilih bebas

>jacobi=[x1;x2;x3;x4]; // hasil perhitungan disimpan ke dalam suatu matrik

>for i=1:10, ...

> y1=-8+x2-2*x3+x4; y2=10+x1+3/2*x3-3/2*x4; ...

> y3=-2-x1-x2; y4=4/3-1/3*x1+1/3*x2-4/3*x3; ...

> x1=y1; x2=y2; x3=y3; x4=y4; ...

> jacobi=[jacobi, [x1;x2;x3;x4]]; ...

> end

Perhatikan bahwa pada setiap iterasi perlu menyimpan setiap

nilai-nilai x_i yang baru dengan nama lain, misalnya y_i. Setelah

iterasinya lengkap, nilai-nilai y_i disimpan kembali ke x_i, sebagai

nilai-nilai x_i yang baru.

>jacobi' // menampilkan hasil iterasi


          1             2             3             4
          -8           9.5           -5     -2.33333
    9.16667           -2         -3.5       13.8333
    10.8333     -6.83333     -9.16667       2.27778
    5.77778       3.66667           -6       7.66667
    15.3333     -4.72222     -11.4444       8.62963
    18.7963     -4.77778     -12.6111       9.90741
    22.3519     -4.98148     -16.0185       10.2901
    29.3457     -7.11111     -19.3704       13.5802
    37.2099     -10.0802     -24.2346       15.0082
    45.3971     -11.6543     -29.1296       17.8827

Pada hasil 10 iterasi pertama terlihat bahwa nilai-nilai x_i semakin

"menjauh" dari nilai sebelumnya, sehingga dapat disimpulkan bahwa

iterasinya tidak konvergen.

Sekarang akan dicoba menggunakan nilai awal x1=7, x2=0, x3=8, x4=9

sampai iterasi ke-10 sebagai berikut.

>x1=7; x2=0; x3=8; x4=9;

>jacobi=[x1;x2;x3;x4]; // hasil perhitungan disimpan ke dalam suatu matrik

>for i=1:10, ...

> y1=-8+x2-2*x3+x4; y2=10+x1+3/2*x3-3/2*x4; ...

> y3=-2-x1-x2; y4=4/3-1/3*x1+1/3*x2-4/3*x3; ...

> x1=y1; x2=y2; x3=y3; x4=y4; ...

> jacobi=[jacobi, [x1;x2;x3;x4]]; ...

> end

>jacobi' // menampilkan hasil iterasi

          7             0             8             9
        -15         15.5           -9     -11.6667
    13.8333           -1         -2.5         23.5
        19.5     -15.1667     -14.8333     -0.277778
    6.22222       7.66667     -6.33333       9.55556
    21.8889     -7.61111     -15.8889       10.2593
    26.4259     -7.33333     -16.2778       12.6852
    29.9074     -7.01852     -21.0926       11.784
    38.9506     -9.40741     -24.8889       17.1481
    49.5185     -14.1049     -31.5432       18.3992
    59.3807     -15.3951     -37.4136       22.1831

Sekarang, dengan nilai awal tersebut akan dicoba sampai iterasi ke-15

>x1=7; x2=0; x3=8; x4=9;

>jacobi=[x1;x2;x3;x4]; // hasil perhitungan disimpan ke dalam suatu matrik

>for i=1:15, ...

> y1=-8+x2-2*x3+x4; y2=10+x1+3/2*x3-3/2*x4; ...

> y3=-2-x1-x2; y4=4/3-1/3*x1+1/3*x2-4/3*x3; ...

> x1=y1; x2=y2; x3=y3; x4=y4; ...

> jacobi=[jacobi, [x1;x2;x3;x4]]; ...

> end

>jacobi' // menampilkan hasil iterasi


          7             0             8             9
        -15         15.5           -9     -11.6667
    13.8333           -1         -2.5         23.5
        19.5     -15.1667     -14.8333     -0.277778
    6.22222       7.66667     -6.33333       9.55556
    21.8889     -7.61111     -15.8889       10.2593
    26.4259     -7.33333     -16.2778       12.6852
    29.9074     -7.01852     -21.0926       11.784
    38.9506     -9.40741     -24.8889       17.1481
    49.5185     -14.1049     -31.5432       18.3992
    59.3807     -15.3951     -37.4136       22.1831
    73.6152     -20.0144     -45.9856       26.2929
    90.2497     -24.8025     -55.6008       31.4376
    109.837       -30.308     -67.4472       37.1171
    133.703     -37.0096     -81.5288       44.548
    162.596     -45.4118     -98.6939       53.134

Pada hasil 15 iterasi pertama terlihat bahwa nilai-nilai x_i semakin

"menjauh" dari nilai sebelumnya, lebih jauh daripada 10 iterasi,

sehingga semakin memperkuat iterasinya tidak konvergen.

Apakah iterasi Jacobi yang tidak konvergen menunjukkan bahwa SPL

tersebut tidak memiliki solusi?

Selanjtunya akan dicoba menyelesaikan SPL tersebut secara langsung.

>A=[1,-1,2,-1;2,-2,3,-3;1,1,1,0;1,-1,4,3]

          1           -1             2           -1
          2           -2             3           -3
          1             1             1             0
          1           -1             4             3

>b=[-8;-20;-2;4]

          -8
        -20
          -2
          4

>x=A\b

          -7
          3
          2
          2

>x=inv(A).b

          -7
          3
          2
          2

>A.x
          -8
        -20
          -2
          4

Ternyata SPL tersebut memiliki solusi eksak yaitu:

Lalu, mengapa iterasi Jacobi tadi tidak konvergen ke solusi eksak?

Untuk menemukan jawabannya akan diubah-ubah susunan SPL-nya dan

melakukan iterasi Jacobi lagi atau mencoba menyelesaikan SPL lain

dengan iterasi Jacobi tersebut.

Melakukan iterasi Jacobi secara ”manual” di atas secara  

berulang-ulang memakan waktu lama, baik untuk menuliskan setiap

persamaan maupun melakukan perhitungan. Oleh karena itu, iterasi

Jacobi dapat dilakukan secara lebih efisien dalam bentuk iterasi

matriks. Untuk melakukan iterasi matriks Jacobi, matriks koefisien A

didekomposisi menjadi matriks segitiga bawah L, matriks segitiga atas

U, dan matriks diagonal D sebagai berikut:

dengan

Jadi, SPL

dapat diubah menjadi

Sekarang dapat dibuat iterasi matriks

dengan

adalah solusi awal yang ditentukan secara bebas.

Fungsi-fungsi Euler diag, setdiag, zeros, size, dan length dapat

digunakan untuk menghasilkan matriks L, D, dan U dari matriks A.

>A

          1           -1             2           -1
          2           -2             3           -3
          1             1             1             0
          1           -1             4             3

>diag(A,-1) // elemen-elemen pada diagonal ke-(-1) matriks A

[2, 1, 4]

>diag(A) // elemen-elemen pada diagonal utama (ke-0) matriks A


[1, -2, 1, 3]

>D=setdiag(zeros(size(A)),0,diag(A))

          1             0             0             0
          0           -2             0             0
          0             0             1             0
          0             0             0             3

>//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           -1             2           -1
          0             0             3           -3
          0             0             0             0
          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
          1             1             0             0
          1           -1             4             0

>//Fungsi untuk melakukan iterasi matriks Jacobi

>function jacobit(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(D).(b-(L+U).x0);

x0=x;

hasil=[hasil,x0];

end

return hasil'

endfunction

>A
          1           -1             2           -1
          2           -2             3           -3
          1             1             1             0
          1           -1             4             3

>b

          -8
        -20
          -2
          4

>x0=[0;0;0;0]

          0
          0
          0
          0

>jacobit(A,b,x0,10) // Kita lakukan iterasi matriks Jacobi untuk SPL sebelumnya

          0             0             0             0
          -8           10           -2       1.33333
    7.33333           -3           -4           10
          7     -3.66667     -6.33333       3.22222
    4.22222       2.66667     -5.33333       6.22222
    11.5556     -3.11111     -8.88889       7.92593
    14.5926     -3.66667     -10.4444       8.2963
    17.5185     -3.51852     -12.9259       9.17284
    23.5062     -5.62963           -16       11.5556
    29.9259     -7.82716     -19.8765       12.9547
    36.8807     -9.32099     -24.0988       15.251

>//Hasilnya serupa dengan iterasi sebelumnya, sama-sama divergen

Selanjutnya, akan dicoba menggunakan fungsi jacobit untuk

menyelesaikan SPL berikut

>A=[1,2,3;2,5,3;0,0,8]

          1             2             3
          2             5             3
          0             0             8

>b=[1;6;-10]

          1
          6
        -10

>x0=[0;0;0]

          0
          0
          0

>x=jacobit(A,b,x0,10)
          0             0             0
          1           1.2         -1.25
        2.35         1.55         -1.25
        1.65         1.01         -1.25
        2.73         1.29         -1.25
        2.17         0.858         -1.25
      3.034         1.082         -1.25
      2.586       0.7364         -1.25
      3.2772       0.9156         -1.25
      2.9188       0.63912         -1.25
    3.47176       0.78248         -1.25

Hasil di atas memperlihatkan bahwa iterasinya terlihat akan konvergen.

Selanjutnya, akan dicoba iterasinya sampai 100 kali.

>x=jacobit(A,b,x0,100);

>x[90:100,:] //menampilkan hasil iterasi ke-290 sampai ke-300

    4.24982     0.250052         -1.25


      4.2499     0.250071         -1.25
    4.24986     0.250041         -1.25
    4.24992     0.250057         -1.25
    4.24989     0.250033         -1.25
    4.24993     0.250045         -1.25
    4.24991     0.250026         -1.25
    4.24995     0.250036         -1.25
    4.24993     0.250021         -1.25
    4.24996     0.250029         -1.25
    4.24994     0.250017         -1.25

Agar lebih meyakinkan, akan dicoba sampai iterasi ke-400.

>x=jacobit(A,b,x0,400);

>largematrices on; longest x[390:400,:] //menampilkan hasil iterasi ke-390 sampai ke-400

Column 1 to 2:
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
    4.249999999999998     0.2500000000000007
Column 3:
                -1.25
                -1.25
                -1.25
                -1.25
                -1.25
                -1.25
                -1.25
                -1.25
                -1.25
                -1.25
                -1.25

Terlihat bahwa iterasinya konvergen ke solusi

Setelah itu, akan dibandingkan solusinya jika dicari secara langsung.

>x=A\b

        4.25
        0.25
      -1.25

>A.x

          1
          6
        -10

Ternyata hasil iterasi Jacobi sama dengan hasil solusi secara

langsung. Sekarang akan dicoba untuk menyelesaikan SPL lain dengan

iterasi Jacobi.

>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]

          6
          25
        -11
          15

>x0=[0;0;0;0]

          0
          0
          0
          0

>jacobit(A,b,x0,20); largematrices on, longest %

Column 1 to 2:
                    0                       0
    0.6000000000000001       2.272727272727273
    1.047272727272727       1.715909090909091
    0.9326363636363637       2.053305785123967
    1.015198760330579       1.95369576446281
    0.9889913016528926       2.011414725770098
    1.003198653362134       1.992241260682758
    0.9981284734175433       2.00230688155266
    1.000625134279186       1.998670301122357
    0.9996741452148709       2.000447671545009
    1.000118598691415       1.999767947010036
    0.9999424232758989       2.000084774585162
    1.000022142896771       1.999958962731713
    0.9999897276722655       2.000015816364213
    1.000004094725025       1.999992675379612
    0.9999981554305442       2.00000292370118
    1.000000752687866       1.99999868440386
    0.9999996673475886       2.000000537310132
    1.000000137832181       1.999999762704281
    0.999999939837498       2.00000009837822
    1.000000025178114       1.999999957078783
Column 3 to 4:
                    0                       0
                  -1.1                   1.875
  -0.8052272727272728     0.8852272727272728
    -1.049340909090909       1.130880681818182
  -0.9681086260330579     0.9738427169421487
    -1.01028590392562       1.021350510072314
  -0.9945217367463374     0.9944337398455109
      -1.0019722306196       1.003594310150674
  -0.9990355755131752     0.9988883905903024
    -1.000369157684571       1.000619190139969
  -0.9998281428744763     0.9997859784600501
    -1.000068327191274       1.000108502011927
  -0.9999691569954708     0.9999596686316548
    -1.000012565443017       1.000019244351174
  -0.9999944394629146     0.9999924981830431
    -1.00000230158874       1.000003441799781
  -0.9999989945360128     0.9999986159134651
    -1.000000420505841       1.000000619031551
  -0.9999998178353494     0.9999997459454703
    -1.000000076701461       1.000000111756476
    -0.99999996695403     0.9999999535204848

Iterasi tersebut menunjukkan hasil bahwa solusinya adalah

Selanjutnya akan dibandingkan dengan solusi secara langsung

>x=A\b

          1
          2
          -1
          1

>A.x

          6
          25
        -11
          15
Terlihat bahwa hasil iterasi Jacobi dan solusi secara langsung

menghasilkan nilai yang sama.

Metode Gauss-Seidel
Metode Gauss-Seidel menggunakan langkah yang persis dengan metode

Jacobi. Perbedaannya, 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:

Akan dicoba menyelesaikan SPL terakhir menggunakan iterasi

Gauss-Seidel.

Selanjutnya mengubah SPL tersebut dalam bentuk:

Dari bentuk terakhir dapat dilakukan iterasi dengan menentukan nilai

awal untuk x_1, x_2, x_3, dan x_4. Berikut ini perhitungan 10 iterasi

pertama.

>x1=1; x2=1; x3=1; x4=1; // solusi awal ditentukan sebarang

>gs=[x1;x2;x3;x4] // simpan solusi awal

          1
          1
          1
          1

>for i=1:10, ...

> x1=1/10*(6+x2-2*x3); ...

> x2=1/11*(25+x1+x3-3*x4); ...

> x3=1/10*(-11-2*x1+x2+x4); ...

> x4=1/8*(15-3*x2+x3); ...

> gs=[gs,[x1;x2;x3;x4]]; ...

> end

>long gs' //menampilkan hasil iterasi tersebut

Real 11 x 4 matrix

                1                   1     ...
              0.5       2.13636363636     ...
    0.990909090909       2.01957644628     ...
      1.0019411157       2.00218329733     ...
    1.00039892515       2.00020825218     ...
    1.00005124935       2.00001731433     ...
    1.00000537731       2.00000122387     ...
    1.00000048843       2.00000006558     ...
    1.00000003854       2.00000000113     ...
    1.00000000252       1.99999999966     ...
    1.00000000011       1.99999999993     ...
Dari hasil iterasi tersebut, menunjukkan bahwa solusi SPL-nya adalah:

sama seperti hasil yang diperoleh dengan menggunakan metode Jacobi.

Terlihat bahwa iterasi Gauss-Seidel lebih cepat konvergen dibandingkan

dengan iterasi Jacobi. Hal ini terjadi karena iterasi Gauss-Seidel

tidak menggunakan variabel lain untuk menyimpan hasil-hasil

perhitungan nilai-nilai x1,x2,x3, dan x4.

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

Dapat dibuat iterasi matriks

dengan

adalah solusi awal yang ditentukan secara bebas

>//Berikut adalah program Gauss-Seidel dalam bentuk iterasi matriks

>function gaussseidel(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 dilakukan dengan 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]
          6
          25
        -11
          15

>x0=[1;1;1;1]

          1
          1
          1
          1

>long gaussseidel(A,b,x0,10)

Column 1 to 3:
                1                   1                   1
              0.5       2.13636363636     -0.886363636364
    0.990909090909       2.01957644628     -0.999917355372
      1.0019411157       2.00218329733     -1.00090297708
    1.00039892515       2.00020825218     -1.00015212068
    1.00005124935       2.00001731433       -1.0000182294
    1.00000537731       2.00000122387     -1.00000183023
    1.00000048843       2.00000006558       -1.0000001599
    1.00000003854       2.00000000113     -1.00000001205
    1.00000000252       1.99999999966     -1.00000000073
    1.00000000011       1.99999999993     -1.00000000003
Column 4:
                1
    0.963068181818
    0.992669163223
    0.999068391365
    0.999902890348
    0.999991228451
    0.99999931227
    0.999999955419
    0.999999998071
    1.00000000004
    1.00000000002

Sekarang akan dibandingkan dengan iterasi Jacobi.

>x0=[1;1;1;1]

          1
          1
          1
          1

>long jacobit(A,b,x0,10)

Column 1 to 3:
                1                   1                   1
              0.5       2.18181818182               -1.1
    1.03818181818               1.775     -0.819318181818
    0.941363636364       2.04190082645     -1.03820454545
    1.01183099174       1.96202530992     -0.973386621901
    0.990879855372       2.00908268219     -1.00821250517
    1.00255076925       1.99363325519     -0.995510984751
    0.998465522469       2.00184886286     -1.00159008523
    1.00050290333       1.99891176987     -0.999213352587
    0.999733847505       2.00036052758       -1.0002986121
    1.00009577518       1.99981054398     -0.99986007502
Column 4:
                1
            1.625
    0.919318181818
    1.10696022727
    0.979511621901
    1.01756718104
    0.995567431032
    1.00294865621
    0.999107915776
    1.00050641722
    0.999827475644

Terlihat bahwa pada iterasi ke-10, iterasi Jacobi memiliki galat

hampiran solusi yang lebih besar daripada galat iterasi ke-10 iterasi

Gauss-Seidel.

Soal nomor 12.3 Bab 12 Buku Chapra


>A=[10,2,-1;-3,-6,2;1,1,5]

          10             2           -1
          -3           -6             2
          1             1             5

>b=[27;-61.5;-21.5]

          27
      -61.5
      -21.5

>x0=[100;100;100]

        100
        100
        100

>jacobit(A,b,x0,10)

        100           100           100


        -7.3     -6.41667         -44.3
  -0.446667     -0.866667     -1.55667
    2.71767       9.95444     -4.03733
    0.305378       7.54539     -6.83442
    0.50748       7.81917     -5.87015
    0.549151       8.03954     -5.96533
    0.495559       7.98698     -6.01774
    0.50083       7.99631     -5.99651
    0.501088       8.00075     -5.99943
    0.499907       7.99965     -6.00037
>gaussseidel(A,b,x0,10)

        100           100           100


        -7.3       47.2333     -12.2867
    -7.97533       10.1421     -4.73336
    0.198242       8.57309     -6.05427
    0.379955       8.04193     -5.98438
    0.493176       8.00862     -6.00036
    0.49824       8.00076       -5.9998
    0.499868       8.00013           -6
    0.499973       8.00001           -6
    0.499998             8           -6
        0.5             8           -6

>A\b

        0.5
          8
          -6

Berikut adalah versi lain program iterasi Gauss-Seidel dengan

menggunakan fungsi iterate pada EMT.

>function gs(x,A,b) ...

L=tril(A);
U=triu(A);
D=setdiag(zeros(size(A)),0,diag(A));
return inv(L+D).(b-U.x);
endfunction

>function gsseidel(A,b,x0) ...

hasil=iterate("gs",x0;A,b);
return hasil
endfunction

>x0=[0;0;0]

          0
          0
          0

>gsseidel(A,b,x0)

        0.5
          8
          -6

Hasil program yang menggunakan perintah iterate hanya akan menampilkan

hasil akhirnya apabila iterasinya konvergen.


Soal No.7 Latihan 2.6 Buku Pengantar Komputasi
Numerik dengan
MATLAB

>A=zeros(50,50); // memasukkan matriks


koefisien secara efisien

>for i=1:50, for j=1:50, ...

> if (i-1)>0, A[i,i-1]=-2; endif ...

> if (i-2)>0, A[i,i-2]=1; endif ...

> A[i,i]=12; ...

> if (i+1)<50, A[i,i+1]=-2; endif ...

> if (i+2)<50, A[i,i+2]=1; endif ...

> end

>b=5*ones(50,1); //matriks konstanta

>x=A\b; //solusi langsung

Determinant zero!
Error in:
x=A\b; //solusi langsung ...
    ^

>x0=zeros(50,1); //solusi awal

>xjacobi=jacobit(A,b,x0,10); // simpan hasil 10 iterasi pertama Jacobi

>xjacobi[1,:]=x'; // simpan solusi "langsung menggantikan solusi awal

>largematrices on // aktifkan mous tampilan matriks besar

>xjacobi' // Bandingkan hasil solusi langsung (kolom 1) hasil 10 iterasi pertama Jacobi

>xgs=gaussseidel(A,b,x0,10); // hasil 10 iterasi pertama Gauss-Seidel

Determinant zero!
inv:
  return A\id(cols(A));
Try "trace errors" to inspect local variables after errors.
gaussseidel:
  x=inv(L+D).(b-U.x0);

>xgs[1,:]=x'; // ganti solusi awal dengan solusi langsung

>xgs' // Bandingkan hasil solusi langsung (kolom 1) dan hasil 10 iterasi pertama Gauss-Seidel

Terlihat bahwa pada metode Jacobi, sampai iterasi ke-10 belum  

memperoleh hasil yang ”sama” dengan solusi langsung, sedangkan pada

metode Gauss-Seidel sudah memperoleh hasil yang ”sama” dengan solusi

langsung pada iterasi ke-9.

Pertanyaan yang harus dijawab:


1. Apa syarat metode Jacobi maupun Gauss-Seidel konvergen?

2. Bagaimana persamaan dan perbedaan kedua metode tersebut?

Syarat Metode Jacobi dan Gauss-Seidel Konvergen


Syarat metode Jacobi dan Gauss-Seidel konvergen adalah matriks

koefisien A bersifat diagonally dominant. Matriks koefisien A

dikatakan diagonally dominant jika:

untuk setiap i=1,2,3,...,n

Persamaan dan Perbedaan Metode Jacobi dan Gauss-


Seidel
Metode Jacobi dan Gauss-Seidel menggunakan langkah-langkah iterasi  

yang hampir sama. Perbedaannya adalah 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, sehingga

iterasi Gauss-Seidel lebih cepat konvergen. Meskipun terdapat beberapa

kasus dimana metode Jacobi berguna, pemanfaatan estimasi terbaik yang

tersedia oleh Gauss-Seidel biasanya menjadikannya metode pilihan. Hal

ini dikarenakan metode Gauss-Seidel dapat konvergen lebih cepat.

>

Metode Successive Over Relaxation (SOR)


”Relaxation” merupakan sedikit modifikasi dari metode Gauss-Seidel  

dan dirancang untuk meningkatkan konvergensi. Setelah setiap nilai

baru x i diperoleh, nilai itu dimodifikasi oleh rata-rata tertimbang

dari hasil sebelumnya dan iterasi sekarang:

Jika (\omega)=1, maka (1-\omega)=0 dan hasil tidak termodifikasi.  

Bagaimanapun jika nilai \omegadiatur antara 0 dan 1, maka hasilnya

adalah rata-rata tertimbang saat ini dan hasil sebelumnya. Tipe

modifikasi ini dikatakan ”underrelaxation”. Hal ini biasanya dilakukan

untuk membuat sistem yang nonkonvergen menjadi konvergen atau untuk

mempercepat konvergensi dengan meredam osilasi.

Untuk nilai (\omega) antara 1 dan 2, bobot tambahan diberikan  

kepada nilai sekarang. Pada contoh ini ada asumsi yang implisit bahwa

nilai yang baru bergerak ke arah yang benar namun dengan sangat

lambat. Dengan demikian, penambahan bobot dimaksudkan untuk

mempercepat perkiraan dengan mendorongnya mendekati kebenaran. Oleh

karena itu, jenis modifikasi ini, yaitu disebut

”overrelaxation”,dirancang untuk mempercepat konvergensi yang sudah

konvergen sistem. Pendekatan ini disebut sebagai

”successive/simultaneous over relaxation” atau SOR.

Memilih nilai yang tepat untuk (\lambda) adalah sebuah masalah  

yang sangat spesifik dan sering ditentukan secara empiris. Untuk

solusi tunggal dari sekumpulan persamaan sering kali tidak diperlukan.

Namun, jika SPL yang sedang dipelajari harus diselesaikan secara

berulang kali, maka diperlukan cara yang efisien, dan pemilihan nilai

(\omega) yang tepat bisa sangat penting.

Dalam metode SOR, SPL dapat diubah ke dalam bentuk:

atau, jika dimisalkan:

>function
sor(A,b,w,x0,n)

endfunction

>A=[4,3,0;3,4,-1;0,-1,4]

          4             3             0
          3             4           -1
          0           -1             4

>b=[24;30;-24]

          24
          30
        -24

>w=1.25

1.25

>x0=[1;2;3]

          1
          2
          3

>hasil=sor(A,b,w,x0,20)

Terlihat bahwa dengan menggunakkan metode SOR konvergensi dari SPL

tersebut bisa didapat pada

iterasi ke-7, dimana ini lebih cepat dari metode Gauss-Seidel.

Latihan Soal
1.) Soal No. 2a Latihan 7.3 Buku Numerical Analysis Edisi 9

>A=[4,1,-1;-1,3,1;2,2,5]
          4             1           -1
          -1             3             1
          2             2             5

>b=[5;-4;1]

          5
          -4
          1

>x0=[0;0;0]

          0
          0
          0

>jacobit(A,b,x0,10)

>gaussseidel(A,b,x0,10)

          0             0             0
        1.25     -0.916667     0.0666667
    1.49583     -0.856944   -0.0555556
    1.45035     -0.831366   -0.0475926
    1.44594     -0.835488   -0.0441821
    1.44783     -0.835997   -0.0447317
    1.44782     -0.835817   -0.0447996
    1.44775     -0.835815   -0.0447756
    1.44776     -0.835821   -0.0447754
    1.44776     -0.835821   -0.0447762
    1.44776     -0.835821   -0.0447761

>A\b

    1.44776
  -0.835821
  -0.0447761

>w=1.005

1.005

>sor(A,b,w,x0,9)

2.) Selesaikan

>A=[1,5,3;1,-2,9;2,1,-1]

          1             5             3
          1           -2             9
          2             1           -1

>b=[16;8;7]

          16
          8
          7

>x0=[100;100;100]
        100
        100
        100

>jacobit(A,b,x0,10)

        100           100           100


        -784           496           293
      -3343         922.5         -1079
    -1359.5         -6531       -5770.5
    49982.5       -26651         -9257
      161042     -16669.3         73307
    -136559       410399       305408
-2.9682e+06   1.30605e+06       137274
-6.94206e+06       -866371 -4.63036e+06
1.82229e+07 -2.43076e+07 -1.47505e+07
  1.6579e+08 -5.72658e+07   1.21382e+07

>gausseidel(A,b,x0,10)A\b

          3
          2
          1

Jadi, Penyelesaian nya dari sistem persamaan nya adalah

3.) Selesaikan

>A=[1,-3,1;2,3,-1;3,-2,-2]

          1           -3             1
          2             3           -1
          3           -2           -2

>b=[8;1;7]

          8
          1
          7

>x0=[1;1;1]

          1
          1
          1

>jacobit(A,b,x0,10)
          1             1             1
          10             0           -3
          11     -7.33333         11.5
      -25.5     -3.16667       20.3333
    -21.8333       24.1111     -38.5833
    118.917       2.02778     -60.3611
    74.4444     -99.0648       172.847
    -462.042       8.31944       207.231
    -174.273       377.438     -704.882
      1845.2     -118.445     -642.348
    295.012     -1443.91       2882.74

>gausseidel(A,b,x0,10)

>A\b

          3
          -1
          2

Jadi, Penyelesaian nya dari sistem persamaan nya adalah

4.) Apa syarat metode Jacobi maupun Gauss-Seidel konvergen?

jawab: semua elemen diagonal melebihi elemen lain dalam persamaan

    tersebut

5.) Bagaimana persamaan dan perbeaan kedua metode tersebut?

jawab:

perbedaan

- metode jacobi: menggunakan nilai yang diperoleh dari langkah

  sebelumnya

- metode Gauss-Seidel: menggunakan nilai terbaru yang diperbarui

  selama prosedur iterative

persamaan

Metode Jacobi hampir sama seperti metode Gauss-Seidel, kecuali

pada penggunaan nilai; dimana Jacobi menggunakan nilai pada langkah

sebelumnya.

4 Contoh Studi Kasus Masalah


1.) Bisnis

Sebuah Firma memproduksi sendiri rak buku dalam dua model, yaitu A dan

B. Produksi rak buku dibatasi oleh persediaan material (papan kualitas

tinggi) dan waktu yang terbatas dari mesin pemroses. Tiap unit A

memerlukan 3 m2 papan dan tiap unit B memerlukan 4 m2 papan. Firma

memperoleh 1.700 m2 papan tiap minggu dari pemasok sendiri. Tiap unit

A membutuhkan 12 menit dari mesin pemroses dan tiap unit B membutuhkan

30 menit. Setiap minggu memungkinkan total waktu mesin 160 jam. Jika

keuntungan (profit) tiap unit A sebesar Rp 20.000,00 dan tiap unit B

sebesar Rp 40.000,00, berapa banyak unit dari tiap model akan

perusahaan rencanakan untuk produksi tiap minggu. Apakah permasalahan

di atas merupakan masalah program linier? Dari masalah di atas

ternyata:

a) Terdapat tujuan yang dicapai yaitu mencapai keuntungan maksimum

melalui produksi rak buku jenis A dan B di mana tiap jenis produksi

itu telah direncanakan mempunyai harga tertentu. Rak buku yang

diproduksi banyaknya tak negatif.

b) Terdapat sumber daya atau masukan (input) yang berada dalam keadaan

terbatas. Dalam hal ini, Firma mempunyai persediaan, melalui pemasok

sendiri, yaitu tiap minggu 1700 m2, dan waktu kerja mesin pemroses

yang terbatas yaitu tiap minggu 160 jam.

Jadi permasalahan di atas merupakan permasalahan program linier. Pola

umum masalah yang dapat dimodelkan dengan program linier harus

memenuhi:

a) adanya pilihan kombinasi beberapa faktor kegiatan,

b) adanya sumber penunjang beserta batasnya,

c) adanya fungsi obyektif/sasaran/tujuan yang harus dioptimumkan,ba

hwa relasi yang timbul antara faktor-faktor semuanya linier..

2.) Mekanika kuantum:

Persamaan Schrödinger dalam mekanika kuantum dapat diwakili sebagai

sistem persamaan linier. Metode Jaccobi dapat digunakan untuk

memecahkan persamaan Schrödinger untuk fungsi potensial tertentu.

Misalnya, pertimbangkan partikel dalam kotak potensial dengan energi

tertentu. Fungsi gelombang untuk partikel dapat dinyatakan sebagai

kombinasi linier dari fungsi dasar. Metode Jaccobi dapat digunakan

untuk memecahkan sistem persamaan yang timbul dari memperluas fungsi

gelombang dalam hal fungsi dasar ini.

Dalam kedua kasus ini, metode Jaccobi dapat digunakan untuk secara

efisien memecahkan sistem persamaan linier yang dihasilkan. Namun,

penting untuk dicatat bahwa mungkin ada metode numerik lain yang lebih

cocok untuk jenis masalah tertentu.

3.)Ali mempunyai 50 keping, dalam lima ratusan rupiah dan seribuan

rupiah, semuanya berjumlah Rp. 35.000,. Berapa keping uang lima

ratusan yang dimilikinya ?

Penyelesaian:

Misalkan jumlah uang lima ratusannya adalah x keping, maka jumlah uang

seribuannya adalah 50-x keping. Jumlah uang lima ratusan + jumlah uang

seribuan = Rp. 35.000 maka:

Jadi uang lima ratusan yang dimiliki Ali adalah x = 30 keping.


4.) Jumlah tiga bilangan adalah 100. Bilangan pertama lima lebihnya

dari jumlah dua bilangan lain. Bilangan kedua sama dengan 1/4 dari

jumlah dua bilangan lain. Bilangan pertamanya adalah

jawab:

Persamaan

>A=[1,1,1;1,-1,-1;1,-4,1]

          1             1             1
          1           -1           -1
          1           -4             1

>b=[100;5;0]

        100
          5
          0

>jacobit(A,b,x0,10)

>gausseidel(A,b,x0,10)

>A\b

        52.5
          20
        27.5

Jadi bilangan pertamanya adalah 52,5

Biaya Variabel

Bayangkan Anda naik taksi saat berlibur. Anda tahu bahwa layanan taksi

mengenakan biaya 0,15 per mil untuk


perjalanan itu. Tanpa mengetahui berapa mil

ke setiap tujuan, Anda dapat membuat persamaan linier yang dapat

digunakan untuk menemukan biaya perjalanan taksi yang Anda tempuh

dalam perjalanan Anda. Dengan menggunakan “x” untuk mewakili jumlah

mil ke tempat tujuan dan “y” untuk mewakili biaya naik taksi tersebut,

persamaan liniernya adalah: y = 0,15x + 9.

Tarif

Persamaan linier bisa menjadi alat yang berguna untuk membandingkan

tingkat upah. Misalnya, jika satu perusahaan menawarkan untuk membayar

Anda 10 per jam, dan

keduanya meminta Anda untuk bekerja 40 jam per minggu, perusahaan mana

yang menawarkan tingkat pembayaran yang lebih baik? Persamaan linear

dapat membantu Anda mengetahuinya! Tawaran perusahaan pertama

dinyatakan sebagai 450 = 40x. Penawaran perusahaan kedua dinyatakan

sebagai y = 10 (40). Setelah membandingkan kedua penawaran tersebut,

persamaan tersebut memberi tahu Anda bahwa perusahaan pertama

menawarkan tingkat pembayaran yang lebih baik pada $ 11,25 per jam.

Penganggaran
Perencana pesta memiliki anggaran terbatas untuk acara yang akan

datang. Dia harus mencari tahu berapa biaya untuk kliennya untuk

menyewa ruang dan membayar per orang untuk makan. Jika biaya sewa

adalah 9,75,

persamaan linier dapat dibangun untuk menunjukkan total biaya, yang

dinyatakan sebagai y, untuk sejumlah orang yang hadir, atau x.

Persamaan linier akan ditulis sebagai y = 9.75x + 780. Dengan

persamaan ini, perencana pesta dapat mengganti sejumlah tamu pesta dan

memberi kliennya biaya aktual dari kejadian tersebut dengan biaya

makanan dan sewa disertakan.

Membuat Prediksi

Salah satu cara paling ampuh untuk menerapkan persamaan linier dalam

kehidupan sehari-hari adalah membuat prediksi tentang apa yang akan

terjadi di masa depan. Jika panitia penjualan roti menghabiskan


150 per bulan

dalam penjualan, persamaan linier y = 150x – 200 dapat digunakan untuk

memprediksi keuntungan kumulatif dari bulan ke bulan. Misalnya,

setelah enam bulan, panitia bisa berharap mendapat untung 700. Sementara
faktor dunia nyata tentu

mempengaruhi prediksi akurat, mereka dapat menjadi indikasi yang baik


tentang apa yang akan terjadi di masa depan. Persamaan linear adalah

alat yang memungkinkan hal ini terjadi.

Bu Riani membeli beras 5 kg Grade A, 2 kg grade B, dan 3 kg grade C

seharga Rp 132.000,-. Di hari yang sama Bu Irma membeli beras di toko

yang sama untuk 7 kg beras Grade B dan 3 Grade C seharga Rp 127.000,-.

Tetangga yang lain pun membeli beras di toko yang sama dengan Bu Riani

dan Bu Irma dengan harga Rp 39.000,- untuk 3 kg beras Grade B.

Berapakah harga beras Grade A per kilonya?

>A=[5,2,3;0,7,3;0,3,0]

          5             2             3
          0             7             3
          0             3             0

>b=[132000;127000;39000]

      132000
      127000
      39000

>jacobit(A,b,x0,10)

>gausseidel(A,b,x0,10)

>A\b

      14000
      13000
      12000

Jadi, beras Grade A senilai Rp 14.000/kg

Anda mungkin juga menyukai