Anda di halaman 1dari 11

SISTEM PERSAMAAN LINIER

4. Linear equations
Menentukan solusi dari persamaan Ax = r ? Banyak metode yang bisa digunakan, bisa secara aljabar benar, atau secara iterative namun hanya memberikan solusi berupa pendekatan (hasil aproksimasi). Mana yang terbaik, tergantung dari struktur matriks A, konteksnya pada sistem yang ingin dipecahkan dan ukurannya dibandingkan dengan kemampuan komputer yang digunakan.

4.1 Gauss elimination


Metode ini yang biasa digunakan secara manual unutk menentukan sistem nontrivial berikut :

(1)
,

Pertama, baris pertama dibagi dengan a11 , kemudian baris kedua kurangkan a21 kali baris pertama yang baru, baris ketiga kurangi dengan a31 kali baris pertama, , dan kurangkan baris ke- n dengan an1 kali baris pertama, menghasilkan

(2)
.

Dengan mengulangi proses ini untuk baris 3 sampai n, menggunakan nilai baru elemen 2,2, maka secara bertahap daerah dibawah diagonal menjadi nol. Sehingga sampai akhirnya kita mempunyai

(3)

Solusi akhir dapat diperoleh melalui substitusi balik (back substitution)

(4)

Jika aritmatikanya eksak, dan matriks A tidak singular, maka jawaban yang diperoleh dengan cara ini akan eksak (provided no zeros appear on the diagonal). Namun karena aritmatika oleh komputer tidak eksak, akan terdapat kesalahan pemotongan (truncation) dan pembulatan (rounding) pada jawaban yang dihasilkan. Effek kumulatif dari kesalahan ini dapat sangat signifikan jika sejak awal komputasi sudah kehilangan presisi. Contoh: jika secara numerik bilangan kecil muncul pada elemen diagonal dari suatu baris, maka digunakannya elemen tersebut untuk mengeliminasi baris-baris berikutnya dapat mengakibatkan kecilnya tingkat presisi, akibat melakukan pengurangan antara bilangan yang sangat besar dengan bilangan yang sangat kecil. Contoh, jika a22-(a21/a11)a12 sangat kecil, misalkan 10-6, sedangkan a23-(a21/a11)a13 dan a33-(a31/a11)a13 misalkan bernilai 1, maka pada tahap komputasi selanjutnya, elemen 3,3 akan melibatkan penghitungan yang melibatkan pengurangan antara bilangan 1/10-6=106 dengan 1. Jika proses aritmatik menggunakan single precision (representing real values using approximately six significant digits) maka hasilnya akan 1.0 dan penghitungan selanjutnya mengakibatkan hasil yang sangat tidak dapat dipertanggung jawabkan dengan kontribusi a23 pada solusi. Kasus yang lebih ekstrim dapat terjadi, yaitu contohnya jika a22-(a21/a11)a12 bernilai nol, komputasi tak bisa berlanjut. Nilai nol pada diagonal tidak berarti matriksnya singular. Contoh, perhatikan sistem berikut:

(5) , Solusi sistem tersebut adalah x1 = x2 = x3 = 1. Namun, jika eliminasi Gauss diimplementasikan, maka kita harus membagi dengan nilai by a11 = 0. Clearly this leads to difficulties!

4.2 Pivoting
Salah satu cara menangani masalah tersebut adalah menghindari kemunculan nilai kecil (apalagi nol) pada diagonal. Caranya dengan menyusun kembali matriks dan vektor. Pada contoh diatas, kita dapat menukar baris satu dengan baris dua sehingga menjadi sistem berikut:

(32)
,

atau kolom satu dengan dua, sehingga sistem menjadi

(33) , Salah satu dari sistem tersebut, kemudian dapat dipecahkan menggunakan metode eliminasi Gauss yang standar. Secara umum, misalkan pada tahap tertentu kita mempunyai

(34)

dimana elemen 2,5 (201) secara numerik adalah nilai terbesar pada baris kedua dan elemen 6,2 (155) secara numerik adalah nilai terbesar pada kolom kedua. Sebagaimana sudah dibahas sebelumnya, nilai 10-6 yang sangat pada elemen 2,2 akan menyebabkan masalah. (Jika nilai 0 muncul pada diagonal, maka harus dilakukan sesuatu untuk mengindari terjadinya error divide by zero) Untuk menghindari masalah ini maka susun kembali baris atau kolom sehinggga elemen 2,2 mempunyai nilai yang lebih besar

4.2.1 Partial pivoting


Pivoting kembali terbesar terbesar menjadi sebagian (partial pivoting) atau pivoting kolom, adalah penyusunan baris matriks dan sisi kanan persamaan sehingga nilai numerik pada kolom berada pada diagonal. Untuk contoh matriks diatas, nilai ada pada elemen 6,2 , berarti tukar baris 2 dan 6, sehingga sistem

(35)

Perhatikan bahwa variabel-variabel tersebut tetap pada susunan untuk mempermudah implementasi prosedure. Pivoting sebagian dapat diimplementasikan pada setiap langkah, atau hanya jika nilai diagonal sangat kecil dan akan berpontensial menyebabkan masalah. Pivoting pada setiap langkah akan memberikan solusi dengan kesalahan yang kecil, namun memperlambat proses kalkulasi.

4.2.2 Full pivoting


Pada full pivoting (pivoting penuh), pemilihan bilangan terbesar secara numerik dilihat dari kolom maupun baris, jadi penyusunan bukan hanya pada baris saja, sebagaimana pivoting sebagian, tapi juga bisa dari penyusan kolom. Pada contoh, elemen 2,5 (201) mempunyai nilai terbesar pada baris 2 atau kolom 5, sehingga penyusunan kembali kolom dapat dilakukan, untuk memindahkan elemen tersebut menjadi elemen diagonal. Hal ini juga mempengaruhi penyusunan vektor solusi x. Sistem contoh hasil dari penyusunan kembali berbentuk

(36)

Tingkat akurasi yang tinggi dapat diperoleh dengan penyusunan kembali keduanya, yaitu baris dan kolom, sehingga nilai terbesar secara numerik dalam submatrik yang belum diproses dipindah ke diagonal. Pada contoh, nilai terbesar adalah 6300 berada pada posisi 4,6 dalam matriks. Nilai ini dapat dipindah ke diagonal dengan cara menukar kolom dua dengan enam dan kemudian baris dua dengan empat. Urutan penukaran tidak penting. Hasil penukaran untuk sistem pada contoh adalah

(37)

. Sekali lagi, proses ini dapat dilakukan pada setiap langkah, atau hanya jika nilai pada diagonal dianggap terlalu kecil dibandingkan dengan nilai elemen lainnya pada matriks. Jika perubahan kolom atau baris tidak berhasil menghindari bilangan nol pada diagonal, maka matriks A adalah matriks singular dan berarti sistem persamaan tidak mempunyai solusi.

4.3 LU factorisation
Bentuk Eliminasi Gauss yang sering digunakan adalah Faktorisasi LU, atau dikenal sebagai Dekomposisi LU atau Faktorisasi Crout. Ide dasarnya adalah menentukan dua matriks L dan U sedemikian sehingga LU = A, dimana L adalah matriks segitiga bawah (lower triangular matrix yaitu nilai diatas diagonal nol semua) dan U adalah matriks segitiga atas (upper triangular matrix yaitu nilai di bawah diagonal nol semua). Dekomposisi ini dipengaruhi oleh pemilihan sembarang skala relatif untuk kedua matriks tersebut. Biasanya, matriks L diskala sedemikian sehingga elemen diagonal semuanya bernilai satu. Jika L dan U sudah ditentukan, maka penentuan solusi sistem hanya dengan menentukan solusi Ly=b kemudian Ux=y. Prosedur ini hanya memerlukan O(n2) operasi, alih-alih O(n3) operasi dengan Eliminasi Gauss sebelumnya. Jika elemen diagonal lii pada matriks segitiga bawah dibuat nilainya satu, maka nilai diagonal ini tidak perlu disimpan, sehingga matriks L dan U dapat disimpan satu array dengan ukuran yang sama dengan for A, bahkan dalam banyak implementasi, hanya dengan meng-overwrite A. Algoritma dasar untuk dekomposisi dengan meng-overwrite A dengan L dan U dapat diekspresikan sebagai berikut:
# Factorisation FOR i=1 TO n FOR p=i TO n

NEXT p FOR q=i+1 TO n

NEXT q NEXT i # Forward Substitution FOR i=1 TO n FOR q=n+1 TO n+m

NEXT q NEXT i # Back Substitution FOR i=n-1 TO 1 FOR q=n+1 TO n+m

NEXT q NEXT i

Algoritma ini mengasumsikan sisi kanan persamaan awalnya disimpan pada array yang sama sebgaimana matriks dalam posisi di kolom n+1 (atau sampai n+m jika mempunyai m sisi kanan persamaan).

4.4 Banded matrices


Faktorisasi LU dapat dimodifikasi untuk banded matrix, yaitu matriks yang elemennya banyak bernilai nol kecuali sekitar diagonal utama. Misalkan, elemen yang tidak nol hanya elemen ai,i-b sampai ai,i+b untuk suatu nilai b. Sehingga perjumlahan pada algoritma Faktorisasi LU hanya dilakukan dari from k=i atau k=i+1 to k=i+b. Dan loop FOR q=i+1 TO n dapat berhenti pada at i+b I, tak perlu sampai of n. Masalah yang mungkin timbul adalah jika nilai (hampir) nol muncul pada diagonal pada proses faktorisasi, karena proses pivoting harus mempertahankan. Sangat mungkin pivoting yang diperlukan adalah pivoting baris maupun kolom. Penyimpanan yang efektif dari matriks dengan struktur banded ini dapat secara substansial menghemat waktu eksekusi. NAG and IMSL adalah software library adalah contoh rutin untuk memecahkan sistem persamaan dengan matikrs berstruktur banded secara efisien baik dari sudut komputasi maupun sudut penyimpanan. 4.5 Tridiagonal matrices

Matriks tridiagonal adalah bentuk khusus dari banded matrix, yaitu elemen matriks semuanya nol kecuali elemen-elemen diagonal dan yang tepat satu dibawah atau diatas diagonal (b=1). Matriks tridiagonal banyak muncul pada masalah persaman differensial . Sistem tridiagonal dapat ditulis sebagai berikut: aixi-1 + bixi + cixi+1 = ri (38)

untuk i=1,,n. Karena x-1 and xn+1 tidak diperlukan maka set a1=cn=0. Solusi sistem ini dengan analogi Faktorisasi LU dapat dilakukan dengan cara berikut.
# Factorisation FOR i=1 TO n bi = bi - aici-1 ci = ci/bi NEXT i # Forward Substitution FOR i=1 TO n ri = (ri - airi-1)/bi NEXT i # Back Substitution FOR i=n-1 TO 1 ri = ri - ciri+1 NEXT i

4.6 Other approaches to solving linear systems


Banyak metode lain yang dapat digunakan untuk menentukan solusi sistem persamaan linier, diantaranya adalah pendekatan dengan teknik iterasi. Salah satu teknik iterasi tersebut adalah iterasi Gauss-Seidel Algoritma iterasi Gauss-Seidel untuk system persamaan linier Ax = b untuk A berukuran n dan elemen diagonal yang tidak nol, adalah:
# Hitung FOR i=1 TO n FOR j=1 TO n IF i=j bi,j = 0 ELSE bi,j = - ai,j/ai,i ci = bi/ai,i NEXT j NEXT i INPUT xi (# misal = 0)

i # Forward Substitution FOR i=1 TO n ri = (ri - airi-1)/bi NEXT i # Back Substitution FOR i=n-1 TO 1 ri = ri - ciri+1 NEXT i

4.6 Other approaches to solving linear systems

Hitung There are a number of other methods for solving general linear systems of equations including approximate iterative techniques. Many large matrices which need to be solved in practical situations have very special structures which allow solution - either exact or approximate - much faster than the general O(n3) solvers presented here. We shall return to this topic in section 8.1 where we shall discuss a system with a special structure resulting from the numerical solution of the Laplace equation.

8.1.2 Relaxation
An alternative to direct solution of the finite difference equations is an iterative numerical solution. These iterative methods are often referred to as relaxation methods as an initial guess at the solution is allowed to slowly relax towards the true solution, reducing the errors as it does so. There are a variety of approaches with differing complexity and speed. We shall introduce these methods before looking at the basic mathematics behind them. 8.1.2.1 Jacobi The Jacobi Iteration is the simplest approach. For clarity we consider the special case when x = y. To find the solution for a two-dimensional Laplace equation simply:

1. Initialise ij to some initial guess. 2. Apply the boundary conditions. 3. For each internal mesh point set
*ij = (i+1,j + i-1,j + i,j+1 + i,j-1)/4.

(106)

1. Replace old solution with new estimate *. 2. If solution does not satisfy tolerance, repeat from step 2.
The coefficients in the expression (here all 1/4) used to calculate the refined estimate is often referred to as the stencil or template. Higher order approximations may be obtained by simply employing a stencil which utilises more points. Other equations (e.g. the bi-harmonic equation, 4 = 0) may be solved by introducing a stencil appropriate to that equation.

While very simple and cheap per iteration, the Jacobi Iteration is very slow to converge, especially for larger grids. Corrections to errors in the estimate ij diffuse only slowly from the boundaries taking O(max(m,n)) iterations to diffuse across the entire mesh. 8.1.2.2 Gauss-Seidel The Gauss-Seidel Iteration is very similar to the Jacobi Iteration, the only difference being that the new estimate *ij is returned to the solution ij as soon as it is completed, allowing it to be used immediately rather than deferring its use to the next iteration. The advantages of this are: Less memory required (there is no need to store *). Faster convergence (although still relatively slow).

On the other hand, the method is less amenable to vectorisation as, for a given iteration, the new estimate of one mesh point is dependent on the new estimates for those already scanned. 8.1.2.3 Red-Black ordering A variant on the Gauss-Seidel Iteration is obtained by updating the solution ij in two passes rather than one. If we consider the mesh points as a chess board, then the white squares would be updated on the first pass and the black squares on the second pass. The advantages No interdependence of the solution updates within a single pass aids vectorisation. Faster convergence at low wave numbers.

8.1.2.4 Successive Over Relaxation (SOR) It has been found that the errors in the solution obtained by any of the three preceding methods decrease only slowly and often decrease in a monotonic manner. Hence, rather than setting *ij = (i+1,j + i-1,j + i,j+1 + i,j-1)/4,

for each internal mesh point, we use


*ij = (1-)ij + (i+1,j + i-1,j + i,j+1 + i,j-1)/4,

(107)

for some value . The optimal value of will depend on the problem being solved and may vary as
the iteration process converges. Typically, however, a value of around 1.2 to 1.4 produces good results. In some special cases it is possible to determine an optimal value analytically.

4.7 Over determined systems*


If the matrix A contains m rows and n columns, with m > n, the system is probably over-determined (unless there are m-n redundant rows). While the solution to Ax = r will not exist in an algebraic sense, it can be valuable to determine the solution in an approximate sense. The error in this approximate solution is then e = Ax-r. The approximate solution is chosen by optimising this error in some manner. Most useful among the classes of solution is the Least Squares solution. In this solution we minimise the residual sum of squares, which is simply rss=eTe. Substituting for e we obtain

rss = eTe = [xTAT rT][Ax r] = xTATAx 2xTATr + rTr,

(39)

and setting

to zero gives (40)

Thus, if we solve the m by m problem ATAx = ATr, the solution vector x will give us the solution in a least squares sense. Warning: The matrix ATA is often poorly conditioned (nearly singular) and can lead to significant errors in the resulting Least Squares solution due to rounding error. While these errors may be reduced using pivoting in combination with Gauss Elimination, it is generally better to solve the Least Squares problem using the Householder transformation, as this produces less rounding error, or better still by Singular Value Decomposition which will highlight any redundant or nearly redundant variables in x. The Householder transformation avoids the poorly conditioned nature of ATA by solving the problem directly without evaluating this matrix. Suppose Q is an orthogonal matrix such that
QTQ = I,

(41)

where I is the identity matrix and Q is chosen to transform A into (42)


,

where R is a square matrix of a size n and 0 is a zero matrix of size mn by n. The right-hand side of the system QAx = Qr becomes (43)
,

where b is a vector of size n and c is a vector of size mn. Now the turning point (global minimum) in the residual sum of squares ( 40 ) occurs when

(44)

vanishes. For a non-trivial solution, that occurs when


Rx = b.

(45)

This system may be solved to obtain the least squares solution x using any of the normal linear solvers discussed above. Further discussion of these methods is beyond the scope of this course.

4.8 Under determined systems*


If the matrix A contains m rows and n columns, with m > n, the system is under determined. The solution maps out a n-m dimensional subregion in n dimensional space. Solution of such systems typically requires some form of optimisation in order to further constrain the solution vector. Linear programming represents one method for solving such systems. In Linear Programming, the solution is optimised such that the objective function z=cTx is minimised. The "Linear" indicates that the underdetermined system of equations is linear and the objective function is linear in the solution variable x. The "Programming" arose to enhance the chances of obtaining funding for research into this area when it was developing in the 1960s. Goto next document (Integration)

Anda mungkin juga menyukai