POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER
METODE NUMERIK PENYELESAIAN PERSAMAAN NON LINIER PENYELESAIAN SISTEM PERSAMAAN LINIER
Niyoko Yuliawan 7409030012 1 D3 IT A
A. Metode Penyelesaian Persamaan Persamaan Non Linier Linier Menyelesaikan persamaan atau mencari akar persamaan f(x)=0 berarti mencari nilai-nilai x sehingga menyebabkan pernyataan f(x)=0 menjadi benar. Dengan kata lain, akar persamaan f(x)=0 adalah absis perpotongan grafik fungsi f(x) dengan sumbu x. Untuk menyelesaikan persamaan ini, ada dua meto metode de,, yait yaitu u meto metode de tert tertut utup up dan dan meto metode de terb terbuk uka. a. Deng Dengan an meto metode de tertutup, kita memberikan dua nilai misal a dan b untuk inisialisasi proses. Dua nilai ini harus mengapit akar yang sebenarnya. Untuk melihat apakah di antara range (a, b) ada akar atau tidak, kita bisa memanfaatkan teorema berikut: Jika nilai fungsi di a dan b berlawanan, maka ada akar di antara a dan namun n hal hal ini ini tida tidak k berl berlak aku u seba sebali likn knya ya.. Seda Sedang ngka kan n deng dengan an meto metode de b, namu terbuk terbuka, a, kita kita membe memberik rikan an satu satu tebaka tebakan n awal awal untuk untuk inisia inisialis lisasi asi proses proses,, tebakan awal ini diusahakan sedekat mungkin dengan akar sebenarnya.
1. Metode Metode Tabel Tabel Metode table merupakan sal salah sat satu metode tertutup untuk menye menyeles lesaik aikan an persam persamaan aan non linier linier.. Metod Metode e ini adala adalah h metod metode e dengan dengan algoritma yang paling sederhana, namun lambat dan tidak bisa memberikan hasil yang akurat. Biasanya metode ini dipakai hanya untuk memperkirakan rang range e awal awal sebe sebelu lum m meng menggu guna naka kan n meto metode de yang yang lebi lebih h baik baik.. Seca Secarra seder sederhan hana, a, untuk untuk menyel menyelesa esaika ikan n persam persamaan aan non linier linier dapat dapat dilak dilakuka ukan n dengan metode tabel atau pembagian area. Di mana untuk x=[a, b] dibagi sebanyak n bagian dan pada masing-masing bagian dihitung f(x) sehingga diperoleh tabel : =a
=b Dari Dari tabe tabell ini ini bila bila dite ditemu muka kan n f(xk )=0 atau atau mende endeka kati ti nol, nol, maka maka aka karr persamaan persamaan adalah adalah xk . Bila Bila tida tidak k ada, ada, maka maka dica dicari ri nila nilaii xk dan xk+1 yang berlawanan tanda, maka akar persamaan berada di antara xk dan xk+1. Jika selisih xk dan xk+1 kurang dari toleransi, maka kita tetapkan akar persamaan adalah xk atau xk+1 tergantung nilai mana yang memberikan f(x) lebih dekat ke nol. Tetapi, jika selisih xk dan xk+1 terlalu jauh maka akarnya perlu dicari lagi dengan range xk dan xk+1. Algoritma Metode Tabel:
1. 2. 3. 4.
Defi Defini nisi sika kan n fung fungsi si f(x) yang akan dicari akarnya. Tent Tentuk ukan an a dan b sebaga batas atas dan batas bawah. Tentuk Tentukan an juml jumlah ah pemb pembagi agi n. Hitu Hitung ng step step pemb pembag agii h=b-an
5. xi=a.
6. Untuk i=0 hingga n a) yi=f(x )i b) Bila yi-1.yi ≤ 0 maka maka keluar keluar loopin looping g dan nyata nyatakan kan bahwa bahwa akar akar berada di antara START xk-1 dan xk . c) xi+1=xi+h. 7. Bila tida tidak k ada yi-1.yi yang kurang dari atau sama dengan 0, maka Definisi f (x) nyatakan bahwa step=0.1 akar tidak berada di range ini. Flowchart Metode Tabel: Input batas bawah a, batas atas b
xi=a
f(xi)*f(xi+step)<0 T
xi=xi+step
Tampilkan akar diantara xi dan xi+step
END
F
Listing Code Metode Tabel: #include
#include typedef double real; real f(real); real absolut(real); main() { int iterasi = 0; real a, b, i, tempSol,
step = 0.1, maxerror;
printf("METODE TABEL\n"); printf("Persamaan ln(x)+tanh(x)=0\n\n"); printf("Masukkan batas bawah: "); scanf("%lf", &a); printf("Masukkan batas atas : "); scanf("%lf", &b); printf("Masukkan toleransi error: "); scanf("%lf", &maxerror); if(f(a)*f(b)<0) { for(i=a; i
User Guide Program:
Pada tampilan ini, user harus memasukkan batas bawah, batas atas, dan toleransi error
Tampilan setelah user mengisikan semua data, setelah itu, program akan melakukan komputasi berdasarkan nilai yang diberikan user dan program akan menampilkan nilai-nilai yang diperoleh pada setiap iterasinya.
Tampilan setelah program selesai melakukan melakukan komputasi. Uji Coba Program:
Untuk membanding keandalan masing-masing program, program akan diuji coba coba masi masing ng-m -mas asin ing g deng dengan an dua dua pers persam ama aan yang ang sama sama yait yaitu u ln(x ln(x)) +tanh +tanh(x) (x)=0 =0 dengan dengan tolera toleransi nsi error error 10-17 dan x-4/x-2= x-4/x-2=0 0 dengan dengan toleransi toleransi error 10-15. Uji coba dengan ln(x)+tanh(x)=0:
Deng Dengan an meto metode de tabe tabell dida didapa patt ak akar ar pers persam amaa aan n dengan 89 iterasi
Uji coba dengan x-4/x-2=0:
0.58 0.5890 9063 6331 3174 7478 7836 3627 27
Deng Dengan an meto metode de tabe tabell dida didapa patt ak akar ar pers persam amaa aan n dengan 136 iterasi.
3.23 3.2360 6067 6797 9774 7499 9978 7894 94
1. Metode Metode Bise Biseksi ksi step 3 1 2
Metode biseksi disebut juga metode Binary Chooping, Interval Halving atau metode Bozaldo. Ide awal metode ini adalah metode tabel, di mana area dibagi menjadi dua bagian, lalu dari dua bagian ini, range yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga didapat suatu daerah yang sedemikian sempit dengan akurasi tertentu.
Untuk menggunakan metode biseksi, terlebih dahulu ditetapkan batas atas dan batas batas bawah, bawah, ke kemud mudia ian n dicari dicari nilai nilai tengah tengahnya nya.. Dari Dari nilai nilai tengah tengah ini (misalkan kita assign ke variabel x), lalu dicari bagian mana yang terdapat akar, setelah diketahui bagian mana yang ada akar, lalu range diupdate dan proses diulangi hingga |b - a| < e atau iterasi > iterasi maksimum . Algoritma Metode Biseksi:
1. Defin Definisi isikan kan fungsi fungsi f(x) yang akan dicari akarnya. 2. Tent Tentuk ukan an nila nilaii a dan b sebagai batas atas dan batas bawah. Gambar 1 : Ilustrasi penggunaan metode biseksi untuk menyelesaikan fungsi ln(x) 3. Tentuk Tentukan an tolera toleransi nsi e dan iterasi maksimum n. +tanh(x)=0 4. Hitung f(a) dan f(b).
5. Jika f(a).f(b)>0 maka proses dihentikan dan nyatakan bahwa tidak ada akar persamaan di range ini, jika tidak, maka lanjutkan ke langkah 6. 6. Hitung: START #include x=a+b2 7. #include Hitung f(x) . typedef long double real; b=xf(x)dan f(b)=f(x), bila tidak, a=x dan f(a)=f(x). 8. Bila f(x).f(a) < 0 makaDefinisi i=0 |b -a| < e atau iter iteras asii > n, maka 9. real Jika |bmaka pros proses es dihe dihent ntik ikan an dan dan ak akar ar f(real); persamaan adalah nilai x yang terakhir, jika tidak, ulangi langkah 6. real absolut(real); Input batas bawah a, batas atas b, error maksimum mum e dan iterasi maksimum n
main() Flowchart Metode Biseksi: { int iterasi = 0; real a, b, oldSol=0, tempSol, mid, maxerr, maxiter;
step = 0.1, error,
x=(a+b)/2 i++
printf("METODE BISEKSI\n"); printf("Mencari akar persamaan ln(x) + tanh(x) = 0\n\n"); printf("Masukkan batas F bawah : "); f(a)*f(x)<0 scanf("%lf", &a); printf("MasukkanT batas atas : "); scanf("%lf", &b); a=x b=x printf("Masukkan error maksimum: "); scanf("%lf", &maxerr); printf("Masukkan iterasi maksimum: "); scanf("%lf", &maxiter); F
|b-a|n
if(f(a)*f(b)<0) T { do { Tampilkan akar persamaannya x mid = (a+b)/2; tempSol=mid; iterasi++; END error=absolut(tempSol-oldSol); if(iterasi==1) { printf("\nIterasi_ke Akar Error\n"); printf(" %3d %-20.16lf %g\n", iterasi, tempSol, absolut((a-b)/2)); } else printf(" %3d %-20.16lf %g\n", iterasi, tempSol, error); if(f(mid)==0) break; if(f(mid)*f(a)<0) b=mid; else a=mid; oldSol=tempSol; Listing Code Metode}while((iterasi Biseksi: <= 1) || ((error > maxerr) && (iterasi
real f(real x) { return log(x) + tanh(x); } real absolut(real x) { if(x<0) return -x; return x; }
User Guide Program:
Hamp Hampir ir sama sama sepe sepert rtii pada pada meto metode de tabe tabel, l, di sini sini user user haru harus s memasukkan batas atas, batas bawah dan toleransi error, hanya saj saja di sini sini dit ditamba ambah h deng denga an iter itera asi maksim simum yang ang akan membatasi jumlah iterasi.
Tampilan setelah user memasukkan data dengan lengkap. Setelah itu, program akan melakukan komputasi.
Tampilan setelah program selesai melakukan komputasi Uji Coba Program:
Uji coba dengan ln(x)+tanh(x)=0:
Dengan metode biseksi, didapat 0.5890633174783628 dengan 55 iterasi
Uji coba dengan x-4/x-2=0:
akar
persamaan
Dengan metode biseksi, didapat 3.2360679774997898 dengan 50 iterasi
akar
persamaan
1. Metode Metode Regula Regula Falsi Disebut juga metode false position atau interpolasi linier . Metode regula falsi adalah metode pencarian akar persamaan non linier dengan memanfaatkan kemiringan garis yang melalui dua titik. Diharapkan dengan metode seperti ini, ini, error error ak akan an berkur berkurang ang lebih lebih cepat cepat daripa daripada da dengan dengan metod metode e bisek biseksi. si. Seperti halnya metode biseksi, metode regula falsi ini bekerja secara iterasi dengan dengan melakuk melakukan an update update range. range. Titik Titik pendekata pendekatan n yang digunakan digunakan pada metode regula falsi adalah titik perpotongan garis yang melalui dua titik pendekatan a dan b dengan sumbu x. Persamaan Persamaan garis yang melalui dua titik pendekatan a dan b adalah: y-fa=fa-fba-b(x-a) dan absis absis perpotonga perpotongannya nnya dengan sumbu sumbu x didapat didapat dengan dengan mengganti mengganti y dengan 0.
− f (a ) = x − a = x − a = x = x = x =
f (a ) − f (b) a −b f (a )(b − a )
( x − a )
f (a ) − f (b) b. f (a ) − a. f (a ) f (a ) − f (b) b. f (a ) − a. f (a ) f (a ) − f (b)
+a
b. f (a ) − a. f (a ) + a. f (a) − a. f (b) f (a) − f (b) b. f (a ) − a. f (b) f (a ) − f (b)
x 21
Gambar 2 : Ilustrasi penggunaan metode regula falsi untuk menyelesaikan fungsi ln(x)+tanh(x)=0
Jebakan pada metode regula falsi:
Pada kasus tertentu, ternyata metode biseksi lebih baik daripada metode regula falsi. Contohnya pada persamaan f(x) = x10 – 1. Kita akan mencoba menyelesaikannya dengan metode biseksi dan metode regula falsi dengan batas bawah 0 dan batas atas 1,3. i
a
b
x
f(a)
1
0
1.3
0.65
2
0.65
1.3
0.975
3
0.975
1.3
4
0.975
1.1375
5
0.975
1.05625
f(b) -1 12.78585
START
f(x) -0.98654
-0.98654
12.78585
-0.22367
1.1375
-0.22367
12.78585
2.62672
1.05625
-0.22367
2.62672
0.728491
1.015625 -0.22367 Definisi f(x)
0.728491
0.167707
i=0
Penggunaan metode biseksi untuk menyelesaikan persamaan x 10 –1=0 i 1
a
f(b)
f(x)
-1 12.78585
-1
0.0943
1.3 0.181759
-1 12.78585
-1
3 0.181759
1.3 0.262874
-1 12.78585
-1
4 0.262874
1.3 0.338105 -1 12.78585 b * f(a) - a * f(b) x = 0.407878 1.3 -0 .9 9 9 9 8 12.78585 f(a) - f(b)
5 0.338105
1.3
f(a)
0.0943
2
0
Input batas bawah a, batas atas b, error b maksimum mum ex dan iterasi maksimum n
-0.99998 -0.99987
i++
Peng Penggu guna naan an meto metode de 10 persamaan x – 1 = 0
regu regula la
fals falsii
untu untuk k
meny menyel eles esai aika kan n
Tampa Tampak k pada pada itera iterasi si ke-5 ke-5 Fmetod metode e bisek biseksi si member memberik ikan an hasil hasil yang yang f(a)*f(x)<0 lebih baik (dengan error yang lebih kecil). T b=x
a=x
Algoritma Algoritma Metode Regula Falsi:
1. 2. 3. 4. 5.
6. 7. 8. 9.
Defin Definisi isikan kan fungsi fun|f(x)|n F Tent Tentuk ukan an nila nilaii a dan b sebagai batas atas dan batas bawah. T Tentuk Tentukan an tolera toleransi nsi e dan iterasi maksimum n. Hitung f(a) dan f(b). Tampilkan akar persamaannya x Jika f(a).f(b)>0 maka proses dihentikan dan nyatakan bahwa tidak ada akar persamaan di range ini, jika tidak, maka lanjutkan ke langkah 6. END Hitung: x=a.fb-b.f(a)fb-f(a) Hitung f(x). Bila f(x).f(a) < 0 maka b=x dan f(b)=f(x), bila tidak, a=x dan f(a)=f(x). Jika |f(x maka pros proses es dihe dihent ntik ikan an dan dan ak akar ar |f(x))| < e atau iter iteras asii > n, maka persamaan adalah nilai x yang terakhir, jika tidak, ulangi langkah 6.
Flowchart Metode Regula Falsi: Gambar 3: Grafik fungsi x 10 – 1. Menunjukkan konvergensi metode regula falsi an lambat
#include #include typedef long double real; real f(real); real absolut(real); main() { int iterasi = 0; real a, b, oldSol=0, tempSol, maxiter;
step = 0.1, error, mid, maxerr,
printf("METODE REGULA FALSI\n"); printf("Mencari akar persamaan ln(x) + tanh(x) = 0\n\n"); printf("Masukkan printf("Masuk kan batas bawah : "); scanf("%lf", &a); printf("Masukkan printf("Masukkan batas atas : "); scanf("%lf", &b); printf("Masukkan error maksimum: "); scanf("%lf", &maxerr); printf("Masukkan iterasi maksimum: "); scanf("%lf", &maxiter);
if(f(a)*f(b)<0) { do { mid = (a*f(b)-b*f(a))/(f(b)-f(a)); tempSol=mid; iterasi++; error=absolut(tempSol-oldSol); if(iterasi==1) { printf("\nIterasi_ke Akar Error\n"); printf(" %3d %-20.16lf %g\n", iterasi, tempSol, absolut((a-b)/2)); } else printf(" %3d %-20.16lf %g\n", iterasi, tempSol, error); if(f(mid)==0) break; if(f(mid)*f(a)<0) b=mid; else a=mid; oldSol=tempSol;
Listing Code Metode Regula Falsi: }while((iterasi <= 1) || ((error > maxerr) && (iterasi
real f(real x) { return log(x)+tanh(x); } real absolut(real x) { if(x<0) return -x; return x; }
User Guide Program:
Pada Pada tampil tampilan an ini, ini, user user harus harus memasu memasukk kkan an batas batas bawah bawah,, batas batas atas, toleransi error dan iterasi maksimum yang diijinkan
Tampilan setelah user memasukkan data dengan lengkap
Setelah itu, program akan melakukan komputasi. Uji Coba Program:
Uji coba dengan ln(x)+tanh(x)=0:
Didapatkan akar 0.5890633174783627 dengan 48 iterasi
Uji Coba dengan x-4/x-2=0:
Didapat akar persamaan 3.2360679774997902 dengan 68 iterasi
1. Metode Metode Iterasi Iterasi Sederh Sederhana ana Metode iterasi merupakan salah satu metode terbuka yang memisahkan x dengan sebagian x yang lain, sehingga diperoleh x=g(x) lalu kemudian kita mencari perpotongan perpotongan kedua grafik grafik ini dengan dengan iterasi. Transformasi ini bisa dilakukan dengan sedikit manipulasi aljabar atau dengan menambahkan x pada kedua ruas. Sebagai contoh fungsi ln(x)+tanh(x)=0 diubah menjadi x=e(tanh(x)) , x=at x=atan anh( h(-l -ln( n(x) x))) atau x=ln(x)+tanh(x)+x. Sebag Sebagai ai inisia inisialis lisasi asi,, kita kita harus harus menent menentuka ukan n suatu suatu nilai nilai sebaga sebagaii tebaka tebakan n awal awal xi, dari dari teba tebaka kan n awal awal ini, ini, dihitung suatu taksiran baru xi+1 = g(x ). i y=x y=4/x+2
akar
Gambar Gambar 4 : Ilustr Ilustrasi asi penggu penggunaa naan n metode metode iteras iterasii seder sederhan hana a untuk untuk menye menyeles lesaik aikan an fungsi x – 4/x – 2 = 0 dengan mengambil g(x)=4/x + 2
Iterasi Divergen:
Tidak semua fungsi bisa dijadikan fungsi g karena pengambilan fungsi yang salah salah akan akan menjad menjadik ikan an itera iterasi si menja menjadi di diverg divergen, en, contoh contohnya nya terjdi terjdi pada pada fungsi g(x) = 4/x. Grafik fungsi ini simetris terhadap garis y = x. Terlihat pada gambar bahwa hingga iterasi ke berapapun, nilai x akan berkutat pada angka 1 dan 4. Sehingga kita harus memilih fungsi yang tepat untuk fungsi g(x) ini. Perhatikan bahwa konvergensi terjadi bila |g’(x)| < 1.
START
Definisikan f(x) dan g(x) i=1
Gambar 5 : Iterasi
Masukkan pendekatan awal x, error maksimum e dan iter asi maksimum maksimum n pada yang divergen
fungsi g(x) = 4/x
Algoritma Algoritma Metode Iterasi Sederhana:
1. 2. 3. 4. 5.
T
i>n f(x) Defi Defini nisi sika kan n fung fu|f(x)| n, proses dihentikan dan didapat akar persamaan adalah nilai x yang terakhir, jika tidak, hitung x = g(x) dan ulangi langkah 4. Tampilkan akar persamaan adalah x
END
Flowchart Metode Iterasi Sederhana:
#include #include typedef long double real; real f(real); real g(real); real absolut(real); main() { int iterasi = 0, convDir, div=0; real x, error, maxerr, maxiter, oddBef, evenBef; printf("METODE ITERASi SEDERHANA\n"); printf("Mencari akar persamaan ln(x) + tanh(x) = 0\n\n"); printf("Masukkan tebakan awal: "); scanf("%lf", &x); printf("Masukkan error maksimum: "); scanf("%lf", &maxerr); printf("Masukkan iterasi maksimum: "); scanf("%lf", &maxiter); do { iterasi++; if(iterasi==1) printf("\nIterasi_ke printf("\nIte rasi_ke else x=g(x);
x
f(x)\n");
error=absolut(f(x)); printf(" %3d %-20.16lf %g\n", iterasi, x, error); if(iterasi==1) oddBef=x; else if(iterasi==2) { convDir = x>oddBef?1:0; evenBef=x; } Listing Code: else if(iterasi % 2 == 1) { if((x<=oddBef)==convDir) { div=1; break; } oddBef=x; } else { if((x>=evenBef)==convDir) { div=1; break; } evenBef=x; } }while(error>maxerr && iterasi
if(div) printf("Iterasi divergen, proses dihentikan\n"); else printf("\nAkar persamaannya adalah : %.16lf\n", x); } real f(real x) { return log(x) + tanh(x); } real g(real x) { return exp(-tanh(x)); } real absolut(real x) { if(x<0) return -x; return x; }
User Guide:
Pada tampilan ini, user harus memasukkan tebakan awal, toleransi error dan iterasi maksimum
Tampilan setelah user memasukkan data dengan lengkap
Tampilan setelah computer melakukan komputasi Selain itu, program ini juga bisa mendeteksi jika user memilih fungsi g yang salah sehingga iterasi menjadi divergen.
Tampilan saat iterasi divergen. Uji Coba Program:
Uji coba program dengan ln(x)+tanh(x)=0:
Tam Tampa pak k lapo lapora ran n bahw bahwa a iter iteras asii dive diverg rgen en.. Hal Hal ini ini terj terjad adii ka kare rena na kita kita mengambil toleransi error yang terlalu kecil. Kita coba mengubah toleransi error menjadi 10-15.
Diperoleh akar persamaan 0.589063317478369 dengan 42 iterasi
Uji Coba dengan x-4/x-2=0:
Diperoleh akar 3.2360679774997898 dengan 40 iterasi
1. Metode Metode Newton Newton Raphson Raphson x i+ i 1
Gambar 6 : Penjelasan grafik dari metode Newton Raphson
Metode Newton Raphson adalah metode pendekatan yang menggunakan satu titik awal dan mendapatkan titik pendekatan berikutnya dengan memperhatikan memperhatikan slope atau kemiringan garis singgung di titik itu. Pada gambar di bawah ini dijelaskan tentang penggunaan metode Newton Raphson. Pada gambar tersebut, garis singgung f(x) pada xi diekstrapolasikan ke bawah terhadap sumbu x untuk mendapatkan taksiran akar xi+1.
Persamaan garis singgung f(x) di xi adalah: y-fxi=f'(xi)(x-xi)
perpotongannya dengan sumbu x diperoleh dengan mengganti y dengan 0:
− f ( xi ) = f ' ( xi )( x − xi ) x − xi = −
f ( xi ) f ' ( xi )
x = xi −
f ( xi ) f ' ( xi )
Algoritma Algoritma Metode Newton Raphson:
1. 2. 3. 4. 5.
Defi Defini nisi sika kan n fung fungsi si f(x) dan f’(x). Tentuk Tentukan an toler tolerans ansii error error e dan iterasi maksimum n. Tentukan Tentukan nilai nilai pendek pendekatan atan awal awal x. Hitung f(x) dan f’(x). Jika |f(x)| < e atau iterasi > n, maka proses selesai dan akar persamaan adalah nilai x yang terakhir, jika tidak, lanjutkan ke langkah 6. 6. Hitung Hitung x=x-fxf' x=x-fxf'x x dan ulangi ulangi langkah langkah 4. Kesulitan-kesulitan Kesulitan-kesulitan Dalam Penggunaan Metode Newton Raphson:
Karena Karena metode metode Newton Newton Raphson Raphson melibatk melibatkan an fraksiona fraksionall yang berpenyebu berpenyebutt f’(x), maka dalam metode ini, nilai f’(x) = 0 tidak diperbolehkan karena akan menye menyebab babkan kan nilai nilai taksi taksiran ran beriku berikutny tnya a menja menjadi di tak tak terhin terhingga gga.. Contoh Contoh-contoh di bawah ini memberikan memberikan gambaran di mana f’(x) = 0 atau paling tidak x ? 0
x x ? 0
Gambar 7 : Empat kasus di mana metode Newton Raphson memperlihatkan konvergensi yang kurang baik
Dari keempat gambar di atas, gambar pertama memperlihatkan memperlihatkan suatu fungsi yang turunannya di hampir semua bilangan real adalah 0, hanya sebagian kecil saja yang turunannya tidak sama dengan 0. Pada kasus seperti ini, harus diambil nilai perkiraan awal yang sedekat mungkin dengan akar yang sebena sebenarny rnya, a, karena karena nilai nilai yang yang terlal terlalu u jauh jauh ak akan an menga mengaki kibat batkan kan turuna turunan n pertama nilai taksiran berikutnya sama dengan 0 dan mengakibatkan iterasi menjadi divergen. Gambar kedua memperlihatkan iterasi berosilasi di dekat nilai ekstrem lokal, hal ini terjadi karena nilai taksiran berada di antara dua titik ekstrem lokal. Osilas Osilasii yang yang demik demikian ian bisa bisa tetap tetap bertah bertahan an atau atau sepert sepertii gambar gambar di atas, atas, menye menyentu ntuh h punca puncak k dengan dengan kemir kemiring ingan an mendek mendekati ati nol lalu lalu nilai nilai taksi taksira ran n berikutnya menjadi tak terhingga. Gambar ketiga memperlihatkan meskipun tebakan awal sudah mendekati akar, namun nilai taksiran dapat melompat ke suatu lokasi yang jauh dari akar yang kita inginkan, hal ini disebabkan iterasi menyentuh daerah dengan kemiringan mendekati nol. Gambar keempat menunjukkan percobaan mencari akar dari suatu fungsi yang sebenarnya tidak mempunyai akar. Hal ini akan menyebabkan osilasi yang tidak beraturan dan pada akhirnya berujung pada titik puncak yang memiliki kemiringan nol. Kesulitan lain yang dihadapi adalah fungsi yang akan mengakibatkan konvergensi yang sangat lambat. Misalnya terjadi pada fungsi f(x) = x10 – 1 yang dengan metode eksak kita dapatkan akarnya adalah 1. Kita akan mencoba menemukan akar fungsi ini dengan tebakan awal 0,5. Kita tahu bahwa xi+1=xi-xi10-110xi9. i 0 1
x
f(x) 0.5 -0.999023438
51.65
1.35115E+ 17
2
46.485
4.71117E+ 16
3
41.8365
1.64268E+ 16
4 37.65285
5.72768E+ 15
5 33.88757
1.99712E+ 15
… ∞
…
…
1
0
Dari tabel terlihat bahwa sebenarnya iterasi ini konvergen (kita lihat error yang makin lama makin mengecil), namun kekonvergenannya lambat sekali, sehingga kita butuh berjuta-juta iterasi untuk mendapatkan akarnya. akarnya.
Flowchart Metode NewtonSTART Raphson:
Definisikan f(x) dan g(x) i=1
Masukkan pendekatan awal x, error maksimum e dan iter asi maksimum maksimum n
|f(x)|n F
x
=
x
−
i++
f(x) f' (x)
Tampilkan akar persamaan adalah x
END
T
Listing Code: #include #include typedef long double real; real f(real x); real f1(real x); real absolut(real x); main() { int iterasi = 0; real x, error, maxerr, maxiter; printf("METODE NEWTON RAPHSON\n"); printf("Mencari akar persamaan ln(x) + tanh(x) = 0\n\n"); printf("Masukkan tebakan awal: "); scanf("%lf", &x); printf("Masukkan error maksimum: "); scanf("%lf", &maxerr); printf("Masukkan iterasi maksimum: "); scanf("%lf", &maxiter); do { iterasi++; if(iterasi==1) printf("\nIterasi_ke printf("\nIte rasi_ke else x=x-f(x)/f1(x);
x
f(x)\n");
error=absolut(f(x)); printf(" %3d %-20.16lf %g\n", iterasi, x, error); }while(error>maxerr && iterasi
User Guide Program:
Di sini sini user user harus harus mema memasuk sukka kan n tebaka tebakan n awal, awal, tolera toleransi nsi error error dan itera iterasi si maksimum
Tampilan setelah user memasukkan data dengan lengkap
Tampilan setelah program melakukan komputasi Uji coba program:
Uji coba program dengan ln(x)+tanh(x)=0:
Didapat akar persamaan 0.5890633174783627 dengan 7 iterasi
Didapat akar persamaan 3.2360679774997898 dengan 7 iterasi
1. Metode Metode Secant Secant Masa Masala lah h yang yang bias biasan anya ya munc muncul ul pada pada meto metode de Ne Newt wton on Raph Raphso son n adal adalah ah terkadang sulit medapatkan turunan pertama dari fungsi f(x) sebagai syarat untu untuk k mend mendap apat atka kan n ke kemi miri ring ngan an gari garis s sing singgu gung ng.. Untu Untuk k meng mengat atas asii hal hal demikian, kita memasukkan metode untuk mencari aproksimasi kemiringan garis singgung secara diskrit. f'(x)≈fxi-f(xi-1)xi-xi-1 didapat: xi+1=xi-f(xi)xi-xi-1fxi-fxi-1 x210
Persamaan di atas memang memerlukan dua taksiran awal, namun, karena dua taksiran awal ini tidak disyaratkan berbeda tanda, maka Metode Secant bukan merupakan metode tertutup. Metode Secant mirip dengan metode Newton Raphson dalam arti bahwa taksiran akar diaproksimasi oleh suatu ekst ek stra rapo pola lasi si gari garis s sing singgu gung ng terh terhad adap ap sumb sumbu u x. Teta Tetapi pi meto metode de seca secant nt menggunak menggunakan an differensi differensiasi asi numeris numeris alih-alih alih-alih menggunak menggunakan an turunan turunan untuk memperki memperkiraka rakan n kemiringa kemiringan n garis garis singgung. singgung. Berikut Berikut ini adalah adalah penjelasa penjelasan n grafis mengenai metode secant.
Algoritma Metode Secant:
1. Defi Defini nisi sika kan n fung fungsi si f(x). 2. Tentuk Tentukan an toler tolerans ansii error error e dan iterasi maksimum n. 3. Tentukan Tentukan nilai nilai pendek pendekatan atan awal awal x0 dan x1.
4. i = 1. 5. Hitung f(x ). i < e atau i > n, maka proses selesai dan akar persamaan 6. Jika |f(x )| i adalah xi, jika tidak, lanjutkan ke langkah 7. 7. Hitung Hitung xi+1=xi xi+1=xi-f(xi -f(xi)xi-x )xi-xi-1fx i-1fxi-fxi i-fxi-1 -1 8. i = i + 1 dan ulangiSTART langkah 5. Flowchart Metode Secant: Definisikan f(x) i=0
Masukkan pendekatan awal 1 x0, pendekatan awal 2 x1, toleransi error e dan iterasi maksimum n
x = b − f(b)
b−a f(b) − f(a)
|f(x)|n F a=b b=x i++;
Tampilkan akar persamaannya adalah x
END
Listing Code:
T
#include #include typedef double real; real f(real); real absolut(real); main() { int iterasi = 0;
real a, b, oldSol=0, x, error, mid, merror; int i=0, miter; printf("PENYELESAIAN PERSAMAAN NON LINIER DENGAN METODE SECANT\n"); printf("Persamaan ln(x)+tanh(x)=0\n\n"); printf("Masukkan tebakan pertama: "); scanf("%lf", &a); printf("Masukkan printf("Masukk an tebakan kedua : "); scanf("%lf", &b); printf("Masukkan iterasi maksimal : "); scanf("%d", &miter); printf("Masukkan toleransi error : "); scanf("%lf", &merror); do { i++; x = x-f(b)*((b-a)/(f(b)-f(a))); error = absolut(f(x)); a=b; b=x; if(iterasi==1) { printf("\nIterasi_ke Akar Error\n"); printf(" %3d %-20.16lf %g\n", iterasi, tempSol, absolut((a-b)/2)); } else printf(" %3d %-20.16lf %g\n", iterasi, tempSol, error); }while(error>merror && i
printf("Solution is %.16lf\n", x); } real f(real x) { return log(x)+tanh(x); } real absolut(real x) { if(x<0) return -x; User Guide Program: return x; }
Pada Pada tampil tampilan an ini, ini, user user harus harus memasu memasukka kkan n 2 tebak tebakan, an, diusah diusahak akan an sedekat mungkin. User juga harus memasukkan toleransi error dan iterasi maksimum
Tampilan setelah user memasukkan data dengan lengkap
Tampilan setelah program melakukan komputasi
Uji coba program:
Uji coba program dengan ln(x)-tanh(x)=0: ln(x)-tanh(x)=0:
Diperoleh akar persamaan 0.5890633174783627 dengan 8 iterasi Uji coba program dengan x-4/x-2=0:
Diperoleh akar persamaan 0.5890633174783627 dengan 11 iterasi
Perbedaan Metode Secant dengan Metode Regula Falsi:
Baik metode Secant ataupun metode Regula Falsi sama-sama menggunakan dua taksiran awal untuk berproyeksi terhadap sumbu x untuk mendapatkan taksi taksira ran n baru baru akar. akar. Perbed Perbedaan aan keduan keduanya ya terlet terletak ak pada pada harga harga awal awal yang yang
digantikan oleh taksiran baru. Pada metode Regula Falsi, taksiran baru akan menggantikan harga awal mana saja yang mempunyai tanda yang sama dengan taksiran baru ini, sehingga dua taksiran senantiasa berbeda tanda dan mengu mengurun rung g ak akar ar fungsi fungsi yang yang sebena sebenarny rnya. a. Sedang Sedangkan kan pada pada metode metode Secant, taksiran baru mengganti harga awal dalam deretan yang ketat. Xi+1 mengganti xi, pada saat itu pula xi menggantikan xi-1, sehingga dua taksiran ini bisa mempunyai tanda yang sama (terletak pada ruas akar yang sama). Pada kasus tertentu, hal ini bisa menyebabkan divergensi. x 3210
Pada gambar di bawah ini digambarkan penggunaan metode Regula Falsi dan Metode Secant untuk menaksir akar f(x) = ln(x), dimulai dari harga x0 = 0,5 dan harga x1 = 6. Terlihat dari gambar bahwa pada iterasi pertama kedua metode memberikan harga taksiran yang sama, namun pada iterasi kedua, titik yang digunakan berbeda sebagai akibatnya metode Secant dapat divergen.
?
Gambar 8 : Perbedaan metode Regula Sistem Falsi dan metode Secant n A. Metode Penyelesaian S istem Persamaan Persamaa
Linier
Karena metode penyelesaian sistem persamaan linier di sini akan banyak melibatkan matriks, maka terlebih dahulu akan diperkenalkan diperkenalkan tentang istilah-istilah yang digunakan dalam matriks. Sebuah matriks adalah kumpulan bilangan yang disusun sedemikian rupa sehingga berbentuk persegi panjang dan dinyatakan dengan simbol tunggal berupa huruf kapital.
a11 a12 a 21 a22 A = a31 a32 ... ... am1 am 2 • • • • • • • •
•
a13
...
a1n
a23
..
a2n
a33 ...
am3
... a3n ... ... ... amn
aij melambangkan melambangkan elemen matriks baris ke-I dan kolom ke-j Seluruh elemen yang terletak horizontal yang sama disebut baris. Seluruh elemen yang terletak pada vertikal yang sama disebut kolom. Matriks yang hanya mempunyai satu baris dinamakan vektor baris. Matriks yang hanya mempunyai satu kolom dinamakan vektor kolom. Matrik Matriks s yang yang mempu mempunya nyaii jumlah jumlah baris baris sama sama dengan dengan jumla jumlah h kolom kolom dinamakan matriks bujur sangkar. Pada matriks bujur sangkar, elemen-elemen matriks yang mempunyai indeks baris sama dengan indeks kolom dinamakan diagonal utama. Matr Matrik iks s nol nol adal adalah ah matr matrik iks s yang yang semu semua a elem elemen enya ya adal adalah ah 0 (bia (biasa sa dilambangkan dengan O).
0 0 0 O= 0 0 0 0 0 0 Matriks diagonal adalah matriks yang memenuhi a ij = 0 if i ≠ j. 2 0 0 A = 0 4 0 0 0 1
•
Matrik Matriks s identi identitas tas adalah adalah matrik matriks s bujur bujur sangka sangkarr yang yang semua semua elemen elemen diagonal utama sama dengan 1 sedangkan elemen yang bukan diagonal utama sama dengan 0. 1 0 0 I = 0 1 0 0 0 1
•
Matriks simetris adalah matriks yang memenuhi a ij = a ji ∀i, j. 2 4 3 A = 4 2 6 3 6 5
•
Matriks simetri miring (antisymetric) adalah matriks yang memenuhi a ij = -a ji ∀i, j. 2 − 6 0 3 A = − 2 0 6 − 3 0
•
Matriks segitiga atas adalah matriks bujur sangkar yang memenuhi a ij = 0 if i > j. 6 5 2 A = 0 2 1 0 0 3
•
Matriks segitiga bawah adalah matriks bujur sangkar yang memenuhi aij = 0 if j > i. 6 5 2 A = 0 2 1 0 0 3
•
Matriks tridiagonal adalah matriks yang semua elemennya 0 kecuali pita (band) yang mempunyai lebar 3 dan berpusat pada diagonal utama. 5 6 0 0 5 2 1 0 A = 0 1 2 9 0 0 − 4 2 Aritmatika Pada Matriks:
•
Matriks A dikatakan sama dengan matriks B jika dan hanya jika a ij = bij ∀i, j. C = A + B artinya cij = aij + bij ∀i, j C = A – B artinya cij = aij − bij ∀i, j B = -A artinya b ij = -aij ∀i, j B = k.A dengan k Є R, artinya bij = k.aij ∀i, j Perka Perkalia lian n dua matr matriks iks bisa bisa dikerj dikerjaka akan n dengan dengan syara syaratt jumlah jumlah kolom kolom matriks pertama sama dengan jumlah baris matriks kedua. C = A.B artinya cij=k=1naik.bkj dengan n adalah jumlah kolom matriks pertama sekaligus jumlah baris matriks kedua. Transpose suatu matriks adalah penukaran peran baris menjadi kolom dan sebaliknya. Transpose suatu matriks A disimbolkan dengan A T.
• • • • •
•
•
4 7 5 A = 4 2 2 1 3 6 4 4 1 T A = 7 2 3 5 2 6 Sifat-sifat Aritmatika Pada Matriks: Penj enjumla umlaha han n dan peng pengur uran anga gan n matri triks ber bersifa sifatt sam sama sepe sepert rtii penjumlahan dan pengurangan bilangan real karena sifat-sifat masingmasing elemennya diturunkan kepada matriks. A+B=B+A A – B = A + (-B)
(A + B) + C = A + (B + C) • Jika dimensi matriks cocok, perkalian matriks bersifat asosiatif, tetapi perkalian matriks tidak bersifat komutatif. (A.B)C = A(B.C) A.B ≠ B.A pada kasus umum, bahkan jika A.B ada, belum tentu B.A ada. • Perkalia Perkalian n matriks matriks juga bersifat bersifat distributi distributiff terhadap terhadap penjumlah penjumlahan an dan pengurangan A(B + C) = A.B + B.C (A + B)C = A.C + B.C • Jika Jika A matri matriks ks bujur bujur sangka sangkarr dengan dengan determ determina inan n tak-no tak-nol, l, maka maka ada -1 matriks A yang disebut invers dari A. A.A-1 = A-1.A = I Augmented Matrix: Augm Augmen ente ted d matr matrik iks s adal adalah ah suat suatu u matr matrik iks s yang yang dipe diperl rlua uas s deng dengan an menambahkan satu atau beberapa kolom. Contoh: Matriks diaugment diaugment dengan dengan matriks matriks menjadi
6 3 2
4 1 3 2 5 6 1 1 7
4 1 3 6 2 5 6 3 1 1 7 2
yang merupakan augmented matrix. Operasi Baris Elementer: Oper Operas asii bari baris s elem elemen ente terr adal adalah ah sera serang ngka kaia ian n oper operas asii yang yang dila dilaku kuka kan n terhadap semua elemen dalam satu baris secara bersama-sama. Terdapat tiga macam operasi baris elementer, yaitu, penukaran baris, perkalian baris dengan suatu konstanta, dan penjumlahan suatu baris dengan kelipatan taknol dari baris yang lain. Jika operasi baris elementer ini diterapkan pada augmented matriks, maka kolom perluasannya juga ikut dioperasikan.
•
Penukaran baris Penukaran baris berarti menukar salah satu baris dengan baris yang lain. Contoh: Matriks , jika baris pertama ditukar dengan baris kedua. 4 5 3
7
6
2
1
6
4
Hasilnya adalah
. 5 4 3
•
2
1
7
6
6
4
Perkalian Perkalian suatu baris dengan suatu konstanta Perkalian baris ini dilakukan dengan mengalikan setiap elemen dalam suatu baris dengan konstanta tertentu. Contoh:
Baris kedua pada matriks
dikalikan dengan 0,5.
4 5 1 Hasilnya adalah
8
9
6
2
5
.
4 2 1 2 1 •
7
7 4
1 2
2
8
5 3
Penjumlahan suatu baris dengan kelipatan tak-nol dari baris lain Penj Penjum umla laha han n dila dilaku kuka kan n elem elemen en per per elem elemen en.. Seti Setiap ap elem elemen en bari baris s dikali dikalikan kan dengan dengan suatu suatu konsta konstanta nta terten tertentu tu lalu lalu dijuml dijumlahk ahkan an dengan dengan baris lain. Contoh: Baris Baris kedua kedua pada matriks dijuml dijumlahk ahkan an dengan dengan 2 kali kali baris baris
2 2 5 pertama. Hasilnya adalah
2
1
6
8
6
9
. 2 2 1 6 10 10 5 6 9
Representasi Sistem Persamaan Linier dengan Matriks: Misalkan kita punya sistem s istem persamaan linier: a11 x1 + a12 x2 + a13 x3 + ... + a1n x n = c1 a 21 x1 + a 22 x 2 + a 23 x3 + ... + a 2 n xn = c 2 a31 x1 + a32 x 2 + a33 x3 + ... + a1n x n = c3 ...... a n1 x1 + a n 2 x 2 + a n 3 x3 + ... + a nn xn = cn
Kita bisa merepresentasikan dengan matriks sebagai berikut:
a11 a 21 a31 ... a m1
a12
a13
...
a22
a23
..
a32
a33
...
...
...
...
am 2
am3
...
a1n x1
c1 c a2 n x2 2 a3n x3 = c3 ... ... ... amn xn cn
Matrik Matriks s sebela sebelah h kiri kiri disebu disebutt matrik matriks s koefis koefisien ien,, matri matriks ks yang yang tengah tengah disebut matriks variabel, sedangkan matriks yang paling kanan disebut matriks hasil. Kemudi Kemudian an matr matriks iks koefis koefisien ien di-aug di-augme ment nt dengan dengan matri matriks ks hasil hasil agar agar matr matrik iks s ko koef efis isie ien n bisa bisa diop dioper eras asik ikan an deng dengan an matr matrik iks s hasi hasill seca secara ra bersama-sama.
a11 a 21 a31 ... a n1
a12
a13
...
a 22
a 23
... a 2 n
a32
a33
... a3n
...
...
...
an 2
an3
... a nn
a1n
...
c1
c3 ... cn c2
1. Metode Metode Eliminas Eliminasii Gauss Gauss Metode eliminasi gauss mengadopsi metode eliminasi konvensional, yaitu menghilan menghilangkan gkan variable variable-var -variabe iabell dari suatu persamaa persamaan n dengan dengan substitusi substitusi oleh persamaan yang lain, hingga diperoleh nilai-nilai dari variablel bebas hanya saja di sini operasi dilakukan di dalam matriks. Untuk menggunakan metode metode eliminasi eliminasi Gauss, terlebih terlebih dahulu dahulu persamaan persamaan ditulis dalam dalam bentuk bentuk augmented matrix.
a11 a 21 a31 ... a n1
a12
a13
...
a22
a 23
... a 2 n
a32
a33
... a3n
...
...
...
an 2
a n3
... a nn
a1n
...
c1
c3 ... c n c2
Setelah itu, dilakukan serangkaian operasi baris elementer sehingga matriks koefisien menjadi matriks segitiga atas atau matriks segitiga bawah.
a11 a 21 a31 ... a n1
a12
a13
...
a 22
a 23
... a 2 n
a32
a33
... a3n
...
...
...
...
an 2
an3
...
a nn
a1n
c1
c3 ... c n c2
p11 p12 p13 OBE 0 p p 23 22 0 0 p33 ... ... ... 0 0 0
... p1n ... p 2 n ... p3n ...
...
... p nn
q1
q3 ... q n q2
Sehingga kita mempunyai sistem persamaan linier baru yang lebih mudah menyelesaikannya.
p11 x1 + p12 x 2 + p13 x3 + ... + p1n x n = q1 p 22 x 2 + p 23 x3 + ... + p 2 n x n = q2 p33 x3 + ... + p1n x n = q3 ......
p nn x n = qn
Penyelesaiannya Penyelesaiannya diperoleh dengan: xn = xn −1 =
qn p nn 1
p n−1,n−1
( qn−1 − pn−1,n xn )
.........
x 2 = x1 =
1
p 22 1
p11
( q2 − p23 x3 − p24 x4 − ... − p 2n xn ) ( q1 − p12 x2 − p13 x3 − ... − p1n xn )
Karen Karena a setiap setiap eleme elemen n diagon diagonal al utama utama menja menjadi di pembag pembagii untuk untuk mencar mencarii penyelesaian, maka di sini disyaratkan elemen diagonal utama tidak boleh nol. Jika terjadi hal demikian, lakukan penukaran dengan baris lain yang elem lemen sel seleta etakny knya tida tidak k sama ama deng denga an nol nol. Jika Jika hal terse ersebu butt tida tidak k memun emungk gkin ink kan atau atau tida tidak k ada bar baris yang demi demiki kian an,, mak aka a syst system em persamaannya dikatakan dikatakan singular. Sistem persamaan yang singular mungkin tidak tidak mempunyai mempunyai penyelesaian penyelesaian (inkonsist (inkonsisten) en) atau malah malah mempunyai mempunyai tak terhingga banyaknya penyelesaian. penyelesaian. Algoritma Metode Eliminasi Gauss: 1. Masu Masukk kkan an matr matrik iks s ko koef efis isie ien n A dan dan vekt vektor or ko kolo lom m hasi hasill B bese besert rta a ukurannya n. 2. Buat augmented augmented matrix matrix [A|B]. [A|B]. 3. Untuk i = 1 hingga n lakukan lakukan operasi operasi baris baris elementer elementer berikut: berikut: a. Jika aii = 0 tukar baris i dengan baris p dengan i
START
B
Input ukuran matriks n dan Augmented matriks A
J=i+1
F J
C K=0 F i
C
T
A[i][i]==0
K<=n
F
F
T
B
A[j][k]=A[j][k]-(A[j][i]/A[i][i])*A[i][k] k++
T
J++
Temp1=-1 J=i+1 A F J
A
i=n-1
T
D
A[j][i]!=0
i>=0
F
i=0 Flowchart Metode Eliminasi Gauss: J++
Temp1=j
T
F Temp!=-1
Subs=0 J=i+1
i
F T
T
xi=lr[i]
J
K=0 T
i++
K<=n
T Temp=A[i][k] A[i][k]=A[temp1][k] A[temp1][k]=Temp K++
F
Subs+=A[i][j]*lr[j] J++
B
Tampilkan bahwa persamaan tidak mempunyai penyelesaian tunggal
lr[i]=(b[i]-subs)/a[i][i] i--
END
F
D
#include #include void tukar_baris(double **koefisien, double *hasil, int i1, int i2, int n); void kalikan_baris(double **koefisien, double *hasil, double mult, int i1, int n); void jumlah(double **koefisien, double *hasil, double mult, int i1, int i2, int n); void tampilkan(double **koefisien, double *hasil, int n); main() { double double double double int n,
**a; *b; *lr; subs; i, j, temp1;
printf("PENYELESAIAN SISTEM PERSAMAAN LINIER\n"); printf("DENGAN METODE ELIMINASI GAUSS\n\n"); printf("Masukkan n : "); scanf("%d", &n); a=(double **) malloc(n*sizeof(double *)); for(i=0; i
Listing Code: b=(double *) malloc(n*sizeof(double)); lr=(double *) malloc(n*sizeof(double)); printf("\nMatrix koefisien : \n"); for(i=0; i
else goto nosolution; } for(j=i+1; j=0; i--) { subs=0; for(j=i+1; j
void jumlah(double **koefisien, double *hasil, double mult, int i1, int i2, int n) { int i; for(i=0; i
ke-%d dikurangi dengan baris ke-%d\n", i1+1,
ke-%d ditambah dengan baris ke-%d\n", i1+1,
ke-%d dikurangi dengan %g kali baris ke-%d\n",
ke-%d ditambah dengan %g kali baris ke-%d\n",
void tampilkan(double **koefisien, double *hasil, int n) { int i, j; for(i=0; i
User Guide:
Pada tampilan ini, user harus memasukkan n, yatu jumlah variable yang akan dicari nilainya.
Pada tampilan ini, user harus memasukkan matriks matriks koefisien
Pada tampilan ini, user harus memasukkan matriks matriks hasil
Tampilan setelah user mengisi data dengan lengkap
Tampilan setelah program melakukan komputasi Uji coba program:
Kita akan menguji program dengan persamaan sebagai berikut: x1 + 2 x 2 + 3 x 3 = 14 x1 + x 2 + x 3 = 6 x1 + 4 x 2 + 9 x 3 = 34
Didapat penyelesaian x1=0, x2=4, x3=2.
1. Metode Metode Eliminasi Eliminasi Gauss Gauss Jordan Jordan Metode Metode Elimin Eliminasi asi Gauss Gauss Jordan Jordan merupa merupaka kan n pengem pengemban banga gan n dari dari metod metode e Eliminasi Gauss, hanya saja matriks di sebelah kiri dijadikan matriks identitas alih-alih alih-alih dijadikan dijadikan matriks matriks segitiga segitiga atas. atas. Sehingga Sehingga jawaban jawaban bisa langsung langsung dilihat pada matriks hasil.
a11 a 21 a31 ... a n1
c1
a12
a13
...
a 22
a 23
... a 2 n
c2
a32
a33
... a3n
c3
...
...
...
...
...
an 2
an3
...
a nn
a1n
c n
1 OBE 0 0 ... 0
0
0
...
0
q1
1
0
...
0
q2
0 1 ... 0 q3 ... ... ... ... ... 0 0 ... 1 q n
Sist Sistem em per persam samaan baru aru yang ang dipe diperroleh oleh menja njadi lebi lebih h penyelesaiannya bisa langsung dilihat pada matriks hasil.
mudah udah
dan
x1 = q1 x2 = q2 x3 = q3 ...
xn = qn
Operasi baris elementer yang dilakukan di sini agak lebih rumit daripada pada Eliminasi Gauss, tetapi keuntungannya, Eliminasi Gauss Jordan tidak meme memerl rluk ukan an perh perhit itun unga gan n lagi lagi sete setela lah h kita ita melak elakuk ukan an oper operas asii bari baris s elementer. Algoritma Metode Eliminasi Gauss Jordan: 1. Masu Masukk kkan an matr matrik iks s ko koef efis isie ien n A dan dan vekt vektor or ko kolo lom m hasi hasill B bese besert rta a ukurannya n. 2. Buat augmented augmented matrix matrix [A|B]. [A|B]. 3. Untuk i = 1 hingga n lakukan lakukan operasi operasi baris baris elementer elementer berikut: berikut: a. Jika aii = 0 tukar baris i dengan baris p dengan i
b. Jika aii ≠ 1, kalikan baris i dengan 1/a ii c. Untuk Untuk baris baris j = 1 hingga hingga n, jika jika j ≠ i, kurang kurangii baris baris j dengan dengan a ji/aii kali baris i. 4. Untuk i = 1 hingga hingga n simpulkan simpulkan bahwa bahwa penyele penyelesaian saiannya nya xi=bi xi=bi
START B
Input ukuran matriks n dan Augmented matriks A
k=0
i=0
k<=n
C
F
T A[i][k]=A[i][k]/A[i][i] K++
F i
i=0 T
Flowchart Metode Eliminasi Gauss Jordan: A[i][i]==0
F
J=0
B i>n
T T Temp1=-1 J=i+1
xi=A[i][n]
D
F J
i++
T C J==i
F
F
F
A T
J
K=0 Tampilkan bahwa persamaan tidak mempunyai penyelesaian tunggal
T D F A[j][i]!=0
K<=n
T
T
J++
Temp1=j
A[j][k]=A[j][k]-(A[j][i]/A[i][i])*A[i][k] k++ END
Temp!=-1
F
A
T K=0
K<=n T Temp=A[i][k] A[i][k]=A[temp1][k] A[temp1][k]=Temp K++
F
F
B
J++
User Guide:
Pada tampilan ini, user harus memasukkan n, yatu jumlah variable yang akan dicari nilainya.
Setelah itu, user harus memasukkan matriks matriks koefisien
User harus memasukkan matriks hasil
Tampilan setelah user memasukkan data dengan lengkap
Tampilan setelah program melakukan komputasi Uji coba program:
Kita akan menguji coba program ini dengan persamaan di bawah ini: x1 + 2 x 2 + 3 x 3 = 14 x1 + x 2 + x 3 = 6 x1 + 4 x 2 + 9 x 3 = 34
Didapat penyelesaian x1=0, x2=4, x3=2.
A. Kesimpulan Kesimpulan Dari Dari uji coba coba masin masing-m g-masi asing ng metod metode e penye penyeles lesaia aian n persam persamaan aan non linier linier dengan persamaan lnx+tanhx=0 (akar sebenarnya 0.589063 0.5890633174 31747836 7836272 272127) 127) dan x-4x-2=0 x-4x-2=0 (akar (akar sebenarny sebenarnya a 1+5) 1+5) terlihat terlihat bahwa semua metode mampu mendapatkan hasil yang akurat, namun jika diliha dilihatt dari dari jumlah jumlah itera iterasi si yang yang diperl diperluka ukan, n, metode metode Ne Newto wton n Raphso Raphson n dan metode Secant adalah yang paling unggul, namun keduanya juga memiliki keku ke kura rang ngan an,, pada pada meto metode de Ne Newt wton on Raph Raphso son, n, kita kita haru harus s mend mendap apat atka kan n turunan dari fungsi, sedangkan pada metode Secant, hasil yang diperoleh bisa divergen jika titik pendekatannya kurang tepat. Berikut ini adalah tabel ringkasan hasil uji coba pada metode penyelesaian persamaan non linier: N o
Metode
lnx+tanhx=0
x-4x-2=0
Hasil
Iterasi
Hasil
Iterasi
1
Tabel
0.589063317478 3627
89
3.236067977499 7894
136
2
Biseksi
0.589063317478 3628
55
3.236067977499 7898
50
3
Regula Falsi
0.589063317478 3627
48
3.236067977499 7902
68
4
Iterasi Sederhana
0.589063317478 369
42
3.236067977499 7898
40
5
Newton Raphson
0.589063317478 3627
7
3.236067977499 78 98
7
6
Secant
0.589063317478 3627
8
0.589063317478 3627
11
Kesimpulan yang diperoleh adalah sebagai berikut: Jika fungsi yang akan diselesaikan dapat dicari turunannya, gunakan metode Newton Rhapson, jika tidak tidak bisa, bisa, gunaka gunakan n metode metode Secant Secant,, namun namun jika jika ke kedua dua metode metode terseb tersebut ut menghasilkan iterasi yang divergen, gunakanlah metode biseksi atau regula falsi karena metode tertutup selalu menghasilkan iterasi yang konvergen. Pada metode penyelesaian sistem persamaan linier, baik metode eliminasi Gauss ataupun Gauss Jordan mampu menangani persamaan yang diberikan. Perbedaa Perbedaanya nya hanyalah hanyalah pada algoritma algoritma yang digunakan digunakan,, metode metode eliminasi eliminasi Gauss Jordan menggunakan algoritma operasi baris elementer yang lebih rumi rumit, t, namu namun n tida tidak k mem memerlu erluka kan n perh perhit itun unga gan n lanj lanjut utan an sesu sesuda dahn hnya ya,, sedangkan metode eliminasi Gauss, algoritma yang digunakan lebih mudah, namun masih memerlukan perhitungan lanjutan sesudahnya.