14
I. Perbandingan Metode Solusi Persamaan 1. Metode Bisection atau Metode Bagi Dua 1.1 List Program #include<stdio.h> #include<conio.h> #include<math.h> float f(float x) { float d; d=(x*x*x)+(4*x*x)-10; return d; } main() { float a,b,c,error,eps; int i=1; printf("\n\t\t\t\tMETODE BISECTION\n"); printf("\t\t\t\tMETODE BAGI DUA\n"); printf("\t\t\t\tx^3+4x^2-10=0\n\n"); printf("\tMasukkan batas atas persamaan(x1): ");scanf("%f",&a); printf("\tMasukkan batas bawah persamaan (x2): ");scanf("%f",&b); printf("\tMasukkan nilai toleransi: ");scanf("%f",&eps); if(f(a)*f(b)>0) printf("\tTidak ada akar di antara kedua batas persamaan\n"); else { printf("\n\ti\tx1\tx2\tx3\tf(x1)\tf(x2)\tf(x3)\terror\n"); do { c=(a+b)/2; error=fabs(b-a); printf("\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t %.3f\n",i,a,b,c,f(a),f(b),f(c),error); if(f(a)*f(b)<eps) b=c; else a=c; i++; } while(error>eps); printf("\n\tSolusi akar-akar persamaan nirlanjar : %.3f\n",c); printf("\tBanyaknya lelaran : %d\n",i-1); } getch(); return 0;

LAPAK

Embed Size (px)

Citation preview

I. Perbandingan Metode Solusi Persamaan

1. Metode Bisection atau Metode Bagi Dua

1.1 List Program

#include<stdio.h>#include<conio.h>#include<math.h>float f(float x){ float d; d=(x*x*x)+(4*x*x)-10; return d;}main(){ float a,b,c,error,eps; int i=1; printf("\n\t\t\t\tMETODE BISECTION\n"); printf("\t\t\t\tMETODE BAGI DUA\n"); printf("\t\t\t\tx^3+4x^2-10=0\n\n"); printf("\tMasukkan batas atas persamaan(x1): ");scanf("%f",&a); printf("\tMasukkan batas bawah persamaan (x2): ");scanf("%f",&b); printf("\tMasukkan nilai toleransi: ");scanf("%f",&eps); if(f(a)*f(b)>0) printf("\tTidak ada akar di antara kedua batas persamaan\n"); else { printf("\n\ti\tx1\tx2\tx3\tf(x1)\tf(x2)\tf(x3)\terror\n"); do { c=(a+b)/2; error=fabs(b-a);

printf("\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n",i,a,b,c,f(a),f(b),f(c),error);

if(f(a)*f(b)<eps) b=c; else a=c; i++; } while(error>eps); printf("\n\tSolusi akar-akar persamaan nirlanjar : %.3f\n",c); printf("\tBanyaknya lelaran : %d\n",i-1); } getch(); return 0;}

1.2 Tampilan Program

1.3 Analisa Program

Mencari solusi persamaan nirlanjar dengan metode ini diawali dengan menebak dua,

yaitu nilai atas (x1) dan nilai bawah (x2), dengan anggapan bahwa nilai akar yang dicari berada

di antara keduanya. Dengan menebak x1 sama dengan satu dan x2 sama dengan satu koma tujuh,

maka diperoleh solusi akar sama dengan 1,350. Jika batas-batasnya diubah, maka solusi akhir

juga akan berubah. Inilah yang menjadi kelemahan dari metode ini. Terlebih karena memiliki

banyak lelaran (iterasi) yang menyebabkan lambatnya konvergensi.

2. Metode Fixed-Point Iterasi atau Metode Lelaran Titik-Tetap 1

2.1 List Program

#include <stdio.h>#include <math.h>#include <conio.h>float f(float x){ float d; d=(x*x*x)+(4*x*x)-10 ; return d;}float g(float x){ float d; d= pow(10-(x*x*x),0.5)/2; return d;}main(){ float a,b,error,eps; int i=1;

printf("\n\t\t\tMETODE FIXED-POINT ITERATION\n"); printf("\t\t\tMETODE LELARAN TITIK-TETAP\n"); printf("\t\t\tf(x)=x^3+4x^2-10\n"); printf("\t\t\tg(x)=(1/2(10-x^3))^1/2\n\n"); printf("\tMasukkan batas atas persamaan(x1): ");scanf("%f",&a); printf("\tMasukkan nilai toleransi: ");scanf("%f",&eps); printf("\n\ti\tx1\terror\n"); do { b=g(a); error=(fabs(b-a)) ; printf("\t%d\t%.3f\t%.5f\n",i,b,error); a=b; i++; } while(error>eps); printf("\n\tSolusi akar-akar persamaan nirlanjar : %.3f\n",b); printf("\tBanyaknya lelaran : %d\n",i-1); getch(); return 0;}

2.2 Tampilan Program

2.3 Analisa Program

Sebelum memulai program ini, terlebih dahulu kita harus memanipulasi persamaan f(x)

menjadi persamaan-persamaan baru (g(x)). Persamaan-persamaan baru ini dicoba dalam

program. Jika dicoba satu persatu, maka akan terdapat perbedaan jumlah lelaran (iterasi) yang

dihitung oleh program. Nilai kesalahan (error) daripada metode ini lebih kecil daripada metode

bagi dua. Pada salah satu persamaan yang digunakan dalam program terdapat sebelas lelaran.

3. Metode Fixed-Point Iterasi atau Metode Lelaran Titik-Tetap 2

3.1 List Program

#include <stdio.h>#include <math.h>#include <conio.h>float f(float x){ float d; d=(x*x*x)+(4*x*x)-10; return d;}float g(float x){ float d; d= pow(10/(4+x),0.5); return d;}main(){ float a,b,error,eps; int i=1; printf("\n\t\t\tMETODE FIXED-POINT ITERATION\n"); printf("\t\t\tMETODE LELARAN TITIK-TETAP\n"); printf("\t\t\tx^3+4x^2-10=0\n"); printf("\t\t\tg(x)=(10/(4+x))^1/2\n\n"); printf("\tMasukkan batas atas persamaan(x1): ");scanf("%f",&a); printf("\tMasukkan nilai toleransi: ");scanf("%f",&eps); printf("\n\ti\tx1\terror\n"); do { b=g(a); error=(fabs(b-a)) ; printf("\t%d\t%.3f\t%.5f\n",i,b,error); a=b; i++; } while(error>eps); printf("\n\tSolusi akar-akar persamaan nirlanjar : %.3f\n",b); printf("\tBanyaknya lelaran : %d\n",i-1); getch(); return 0;}

3.2 Tampilan Program

3.3 Analisa Program

Dengan mengganti manipulasi persamaan, program ini menghitung ada empat lelaran

solusi persamaan ini. Namun, mempunyai solusi akar yang sama, yaitu 1,365. Perbedaan

manipulasi persamaan utama menyebabkan perbedaan lelaran juga. Walaupun mempunyai

lelaran yang lebih sedikit, dalam program ini terlihat nilai kesalahan yang lebih besar daripada

program sebelumnya. Inilah yang menjadi bahan pertimbangan banyak orang dalam

menggunakan metode ini.

4. Metode Newton-Rhapson

4.1 List Program

#include <stdio.h>#include <math.h>#include <conio.h>float f(float x){ float d; d=(x*x*x)+(4*x*x)-10; return d;}float df(float x){ float d; d=(3*x*x)+(8*x); return d;}main(){ float a,b,error,eps; int i=1; printf("\n\t\t\tMETODE NEWTON-RHAPSON\n"); printf("\t\t\tf(x)=x^3+4x^2-10\n"); printf("\n\tMasukkan batas atas persamaan(x1): ");scanf("%f",&a); printf("\tMasukkan nilai toleransi: ");scanf("%f",&eps);

printf("\n\ti\tx1\terror\n"); if(df(a)==0) { printf("Nilai turunan persamaan sama dengan nol\n"); printf("Tidak bisa melakukan perhitungan\n"); getch(); } else { do { b=a-(f(a)/df(a)); error = fabs(b-a); printf("\t%d\t%.3f\t%.5f\n",i,b,error); a=b; i++; } while(error>eps); } printf("\n\tSolusi akar-akar persamaan nirlanjar : %.3f\n",b); printf("\tBanyaknya lelaran : %d\n",i-1); getch(); return 0;}

4.2 Tampilan Program

4.3 Analisa Program

Mencari solusi akar dengan menggunakan metode ini bisa dilakukan dengan cepat dan

mudah. Terlebih dengan nilai kesalahan yang sangat kecil. Jika dilihat pada tampilan program,

nilai kesalahannya adalah 0,00001. Sedangkan program-program sebelumnya mencapai 0,001;

0,00059; 0,00089. Sangat jauh perbandingannya, walaupun menghasilkan solusi yang sama,

yaitu 1.365, kecuali dengan metode bagi dua dengan hasil 1,350. Tidak heran banyak orang yang

menggunakan program ini. Selain tidak perlu menebak batas atas dan batas bawah, dengan

metode ini kita tidak perlu memanipulasi persamaan hingga beberapa kali. Cukup dengan

menurunkan persamaannya.

5. Tabel Perbandingan

No. Metode Solusi Iterasi Error

1 Bisection 1,350 11 0,001

2 Fixed-Point Iteration (i) 1,365 11 0,00053

3 Fixed-Point Iteration (i) 1,365 4 0,00089

4 Newton-Rhapson 1,365 4 0,00001

II. Ringkasan Analisa Semua Metode yang Digunakan

Ada 3 metode yang digunakan dalam praktikum kali ini, yaitu: metode bisection (bagi

dua), metode fixed-point iteration (lelaran titik-tetap), dan metode Newton-Rhapson. Metode

bisection atau metode bagi dua adalah metode yang paling sederhana. Diawali dengan menebak

dua nilai, dengan anggapan bahwa nilai akar yang dicari berada di antara kedua nilai tersebut.

Meskipun metode ini selalu berhasil menemukan akar, tetapi kecepatan konvergensinya lambat.

Konvergensinya lambat disebabkan oleh banyaknya lelaran (iterasi), dimana lelaran yang

disebabkan oleh kurangnya pendekatan nilai tebakan dengan nilai yang sebenarnya.

Metode yang kedua, metode lelaran titik-tetap, lebih teliti daripada metode bagidua.

Metode ini lebih rumit daripada metode bagidua. Syarat jalannya program adalah harus

menentukan atau memanipulasi persamaan menjadi persamaan yang lain. Walaupun solusi yang

dihasilkan akan sama, namun perbedaan bisa terjadi pada jumlah lelarannya, yang

mempengaruhi kecepatan konvergensi. Jika dilihat pada program di atas, semakin banyak

lelaran, semakin kecil nilai kesalahannya dalam mencari solusi. Memang, untuk permasalahan

yang mudah kita bisa menggunakan metode bagidua, tetapi untuk masalah yang lebih kompleks,

metode ini lebih baik.

Metode yang ketiga adalah metode Newton-Rhapson. Metode ini sangat banyak

digunakan dan disukai oleh para pengguna metode numeric. Pasalnya metode ini lebih cepat.

Jika dilihat dari program yang dijalankan di atas, program ini menghasilkan lelaran yang sangat

sedikit, konvergensi yang cepat, dan nilai kesalahan yang sangat kecil. Walaupun harus

menurunkan persamaan dalam mencari solusi akar, metode ini lebih efisien.

III. Tugas Tambahan : Metode Regula Falsi dan Metoda Secant

1. Metode False Position

Metode posisi palsu (false position), yang dalam bahasa Latin disebut regula falsi,

merupakan perbaikan bagi metode bagidua. Pada metode bagidua, nilai xc diperkirakan

dengan membagi interval di antara kedua nilai xb dan xa tanpa melihat besarnya nilai

f(xb) dan f(xa). Hal tersebut akan menyebabkan proses iterasi menjadi relatif banyak.

Berbeda dengan metode bagidua, metode posisi palsu akan menraik garis lurus pada

kedua interval sehingga memperbaiki perkiraan nilai xc. Oleh karena itu, metode ini juga

disebut metode interpolasi linear.

2. Metode Secant

Permasalahan yang muncul pada metode Newton-Rhapson adalah keharusan

untuk mencari turunan pertama dari fungsi yang dicari. Beberapa persoalan cukup sulit

untuk dapat menurunkan suatu persamaan. Keadaan tersebut dapat dihindari dengan

menggunakan metode secant. Secara umum, metode ini juga disebut sebagai modifikasi

dari metode Newton-Rhapson.

DAFTAR PUSTAKA

Bambang, Triatmodjo. 1992. Metode Numerik. Yogyakarta: Beta Offset.

Kristanto, Andri. 2009. Algoritma dan Pemrograman dengan C++. Yogyakarta: Graha

Ilmu.

Sasongko, Setia Budi. 2010. Metode Numerik dengan Scilab.Yogyakarta: Andi

IV. Kesimpulan

Tujuan dari praktikum yang berjudul “Solusi Persamaan Nirlanjar” ini adalah untuk

menemukan akar-akar persamaan dari persamaan aljabar nonlinier menggunakan metoda

Bisection, False Position, Fixed Point Iteration dan Newton. Dan juga untuk mengetahui

bagaimana menentukan konvergensi metode.

Setelah menyelesaikan program-program di atas, semua tujuan telah tercapai. Untuk

mencari solusi akar persamaan nonlinier, bisa dilakukan dengan metode-metode yang telah

dilakukan dalam praktikum. Konvergensi juga bisa diketahui dengan mengetahui banyaknya

lelaran setelah program dijalankan. Dapat disimpulkan bahwa metode-metode numeric dapat

menentukan akar persamaan nirlanjar.