Solusi SPL Dengan Matlab

Meskipun dalam MATLAB sudah ada perintah khusus untuk mencari solusi SPL, namun hal ini kurang menarik bagi mereka yang masih belajar tentang konsep penyelesaian SPL, khususnya dengan memanfaatkan operasi baris elementer.
Nah.. pada artikel ini akan diberikan contoh penggunaan MATLAB untuk menyelesaikan SPL dengan operasi baris elementer.

Misalkan diberikan SPL sebagai berikut:
2x + 4y - 2z = 12
  x + 5y + 3z =  8
-3x +  y + 3z = -4
Nah… kita akan coba menyelesaikan SPL di atas dengan operasi baris elementer dengan MATLAB.
Langkah pertama adalah kita buat matriks yang diperbesar (Augmented Matrix), berisi semua koefisien variabel dan hasilnya. Misalkan augmented matrix nya disimpan dalam variabel A. Perintah MATLAB nya:
>> A = [2 4 -2 12; 1 5 3 8; -3 1 3 -4]
Outputnya:
A =

 2     4    -2    12
 1     5     3     8
-3     1     3    -4
Seperti dalam teori, bahwa target dari operasi baris elementer untuk menyelesaikan SPL adalah mendapatkan matriks segitiga atas dari matriks yang diperbesar tersebut. Apabila kita gunakan metode Gauss Jordan, maka bentuk augmented matrix ini haruslah
1     0     0    p
0     1     0    q
0     0     1    r
dari bentuk di atas, solusi dari SPL adalah x = p, y = q dan z = r.
OK kita mulai memanipulasi augmented matriks dengan operasi baris elementer sedemikian hingga kita peroleh bentuk matriks target di atas.
B1 <- B1 – B2 (baris ke-1 yang baru, diperoleh dari baris ke-1 dikurangi baris ke-2)
>> A(1, :)  = A(1, :)  - A(2, :) 
Outputnya:
A =

 1    -1    -5     4
 1     5     3     8
-3     1     3    -4
B2 <- B2 – B1 (baris ke-2 yang baru, diperoleh dari baris ke-2 dikurangi baris ke-1)
>> A(2, :)  = A(2, :)  - A(1, :) 
Outputnya:
A =

 1    -1    -5     4
 0     6     8     4
-3     1     3    -4
B3 <- B3 + 3 B1 (baris ke-3 yang baru, diperoleh dari baris ke-3 ditambah 3 kali baris ke-1)
>> A(3, :)  = A(3, :)  + 3*A(1, :) 
Outputnya:
A =

1    -1    -5     4
0     6     8     4
0    -2   -12     8
B3 <- B3 + B2/3 (baris ke-3 yang baru, diperoleh dari baris ke-3 ditambah 1/3 kali baris ke-2)
>> A(3, :)  = A(3, :)  + A(2, :) /3
Outputnya:
A =

1.0000   -1.0000   -5.0000    4.0000
0         6.0000    8.0000    4.0000
0         0        -9.3333    9.3333
Lho.. kok ada 0 banyak? Gak pa pa, itu menunjukkan bilangan dalam desimal.
B1 <- B1 + B2/6 (baris ke-1 yang baru, diperoleh dari baris ke-1 ditambah 1/6 kali baris ke-2)
>> A(1, :)  = A(1, :)  + A(2, :) /6
Outputnya:
A =

1.0000         0        -3.6667    4.6667
0              6.0000    8.0000    4.0000
0              0        -9.3333    9.3333
B2 <- B2/6 (baris ke-2 yang baru, diperoleh dari 1/6 kali baris ke-2 )
>> A(2, :)  = A(2, :) /6
Outputnya:
A =

1.0000         0        -3.6667    4.6667
0              1.0000    1.3333    0.6667
0              0        -9.3333    9.3333
B3 <- B3/(-9.3333) (baris ke-3 yang baru, diperoleh dari -1/9.3333 kali baris ke-3)
>> A(3, :)  = A(3, :) /(-9.3333)
Outputnya:
A =

1.0000         0        -3.6667    4.6667
0              1.0000    1.3333    0.6667
0         0    1.0000   -1.0000
B1 <- B1 + 3.6667 B3 (baris ke-1 yang baru, diperoleh dari baris ke-1 ditambah 3.6667 kali baris ke-3)
>> A(1, :)  = A(1, :) + 3.6667 * A(3, :) 
Outputnya:
A =

1.0000         0         0.0000    1.0000
0              1.0000    1.3333    0.6667
0              0         1.0000   -1.0000
B2 <- B2 – 1.3333 B3 (baris ke-2 yang baru, diperoleh dari baris ke-2 dikurangi 1.3333 kali baris ke-3)
>> A(2, :)  = A(2, :)  - 1.3333 * A(3, :) 
Outputnya:
A =

1.0000         0         0.0000    1.0000
0              1.0000    0.0000    2.0000
0              0         1.0000   -1.0000
Wuihh… akhirnya selesai juga. Karena matriks hasil operasi baris elementer ini sudah sesuai target, maka solusi dari SPL di atas adalah x = 1, y = 2, dan z = -1.
Banyak juga ya langkahnya? memang butuh kesabaran dan ketelitian. Tapi kalau sudah ketemu hasilnya, kita akan puas kok :-)
Selamat mencoba… dan bila ada pertanyaan atau diskusi mengenai masalah ini bisa diposting via komentar di bawah ini.

Gustono Sugastian

Phasellus facilisis convallis metus, ut imperdiet augue auctor nec. Duis at velit id augue lobortis porta. Sed varius, enim accumsan aliquam tincidunt, tortor urna vulputate quam, eget finibus urna est in augue.

Tidak ada komentar:

Posting Komentar

Kasih komentar yah friends....