You are on page 1of 18

Tugas Matematika Teknik

Oleh:

1. Qusyairi Ridho 0807100775

2. Siska Fitrianingrum 0807100780

3. Yan Hadynoer 0807100786

TINGKAT II TEKNIK RANCANG BANGUN PERALATAN SANDI

SEKOLAH TINGGI SANDI NEGARA

2010
A. Pengertian Metode Numerik

Metode numerik adalah teknik dimana masalah matematika


diformulasikan sedemikian rupa sehingga dapat diselesaikan oleh
pengoperasian aritmetika. Dalam penerapan matematis untuk menyelesaikan
persoalan-persoalan perhitungan dan analisis, ada beberapa keadaan dan
metode yang digunakan untuk menghasilkan penyelesaian yang baik adalah :

(1) Bila persoalan merupakan persoalan yang sederhana atau ada theorema
analisa matematika yang dapat digunakan untuk menyelesaikan persoalan
tersebut, maka penyelesaian matematis (metode analitik) adalah
penyelesaian exact yang harus digunakan. Penyelesaian ini menjadi acuan
bagi pemakaian metode pendekatan.
(2) Bila persoalan sudah sangat sulit atau tidak mungkin diselesaiakan secara
matematis (analitik) karena tidak ada theorema analisa matematik yang
dapat digunakan, maka dapat digunakan metode numerik.
(3) Bila persoalan sudah merupakan persoalan yang mempunyai kompleksitas
tinggi, sehingga metode numerikpun tidak dapat menyajikan penyelesaian
dengan baik, maka dapat digunakan metode-metode simulasi.

Perbedaan utama antara metode numerik dengan metode analitik terletak


pada dua hal. Pertama, solusi dengan menggunakan metode numerik selalu
berbentuk angka. Bandingkan dengan metode analitik yang biasanya
menghasilkan solusi dalam bentuk fungsi matematik yang selanjutnya fungsi
mateamtik tersebut dapat dievaluasi untuk menghasilkan nilai dalam bentuk
angka.
Kedua, dengan metode numerik, kita hanya memperoleh solusi yang
menghampiri atau mendekati solusi sejati sehingga solusi numerik dinamakan
juga solusi hampiran (approxomation) atau solusi pendekatan, namun solusi
hampiran dapat dibuat seteliti yang kita inginkan. Solusi hampiran jelas tidak
tepat sama dengan solusi sejati, sehingga ada selisih antara keduanya. Selisih
inilah yang disebut dengan galat (error).
1. Metode Bagi Dua (Bisection Method)

Prinsip:

Ide awal metode ini adalah metode table, dimana area dibagi menjadi N
bagian. Hanya saja metode biseksi ini membagi range menjadi 2 bagian,
dari dua bagian ini dipilih bagian mana yang mengandung dan bagian yang
tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga
diperoleh akar persamaan.

Langkah – langkah dalam menyelesaikan Metode Bagi Dua :

Langkah 1 :

Pilih a sebagai batas bawah dan b sebagai batas atas untuk taksiran akar
sehingga terjadi perubahan tanda fungsi dalam selang interval. Atau periksa
apakah benar bahwa :

f(a) . f(b) < 0

Langkah 2 :
a +b
c=
Taksiran nilai akar baru yaitu c diperoleh dari : 2

Langkah 3 :

Menentukan daerah yang berisi akar fungsi:

 Jika z merupakan akar fungsi, maka f(x < z) dan f(x > z) saling berbeda
tanda.
 f(a)*f(c) negatif, berarti di antara a & c ada akar fungsi.

 f(b)*f(c) positif, berarti di antara b & c tidak ada akar fungsi

Langkah 4 :

Menentukan kapan proses pencarian akar fungsi berhenti. Proses pencarian


akar fungsi dihentikan setelah keakuratan yang diinginkan dicapai, yang
dapat diketahui dari kesalahan relatif semu.

Contoh . Carilah salah satu akar persamaan berikut:

xe-x+1 = 0

disyaratkan bahwa batas kesalahan relatif (εa) =0.001 dengan menggunakan


range x=[−1,0].

Dengan memisalkan bahwa :


a +b
 (xl) = batas bawah = a Χ⇒
2

 (xu) = batas atas =b

 (xr) = nilai tengah = x


maka diperoleh tabel biseksi sebagai berikut :

Pada iterasi ke 10 diperoleh x = -0.56738 dan f(x) = -0.00066

Untuk menghentikan iterasi, dapat dilakukan dengan menggunakan


toleransi error atau iterasi maksimum.

Catatan :

Dengan menggunakan metode biseksi dengan tolerasi error 0.001


dibutuhkan10 iterasi, semakin teliti (kecil toleransi errornya) maka semakin
bear jumlah iterasi yang dibutuhkan.

Pemrograman bisection Method dengan MATLAB

Berikut source code yang di gunakan:


% ini fungsi dari bisection yang kami gunakan

function rtn=bisec(fx,xa,xb,n)
x=xa; fa=fx(xa);
x=xb; fb=fx(xb);
for i=1:n;
xc=(xa+xb)/2; x=xc; fc=fx(xc);
X=[i,xa,xb,xc,fc];
disp(X);
if fc*fa<0
xb=xc;
else xa=xc;
end
end
%tampilkan hasil dari bisection
xa
xb
n
r=(xa+xb)/2
end
%tampilkan gambar plot dari bisection
fplot(fx,[0 2]); grid on

%ini fungsi yang kami gunakan ( f(x)= 3x + sin x – e(x) )


fx=inline('3*x+sin(x)-exp(x)');

Tampilan saat running program :


Hasil dari runnig program:
>> bisec1(fx,0,1,13)

1.0000 0 1.0000 0.5000 0.3307

2.0000 0 0.5000 0.2500 -0.2866

3.0000 0.2500 0.5000 0.3750 0.0363

4.0000 0.2500 0.3750 0.3125 -0.1219

5.0000 0.3125 0.3750 0.3438 -0.0420

6.0000 0.3438 0.3750 0.3594 -0.0026

7.0000 0.3594 0.3750 0.3672 0.0169

8.0000 0.3594 0.3672 0.3633 0.0071

9.0000 0.3594 0.3633 0.3613 0.0023

10.0000 0.3594 0.3613 0.3604 -0.0002

11.0000 0.3604 0.3613 0.3608 0.0010

12.0000 0.3604 0.3608 0.3606 0.0004

13.0000 0.3604 0.3606 0.3605 0.0001

xa = 0.3604

xb = 0.3605

n = 13

r = 0.3604
2. Metode Newton-Rhapson

Metode Newton-Raphson adalah salah satu metode penyelesaian akar-


akar persamaan non linier f(x), dengan menentukan satu nilai tebakan awal
dari akar yaitu xi.
Grafik Pendekatan Metode Newton-Raphson :

Langkah-langkah penyelesaian Metode Newton-Raphson :


Langkah 1:
Cari f’(x) dan f”(x) dari f(x)

Langkah 2 :
Tentukan titik x0 dan Uji sesuai :

Apakah memenuhi syarat persamaan? Jika tidak, cari nilai xo baru.

Langkah 3 :

Lakukan iterasi dengan persamaan :

Kelemahan Metode Newton-Raphson :


1. Jika fungsi f(x) mempunyai beberapa akar (titik) penyelesaian, akar-akar
penyelesaian tersebut tidak dapat dicari secara bersamaan.
2. Tidak dapat mencari akar kompleks (imajiner).
3. Tidak bisa mencari akar persamaan yang tidak memenuhi persyaratan
persamaannya, meskipun ada akar penyelesaiannya.
4. Untuk persamaan non linier yang cukup kompleks, pencarian turunan
pertama dan kedua f(x) akan menjadi sulit.

Algoritma Metode Newton-Raphson :


a) Tentukan Xo, toleransi, dan jumlah iterasi maksimum.
b) Hitung Xbaru = x - f'(X0) / f(X0).
c) Jika nilai mutlak (Xbaru - X0) < toleransi, diperoleh tulisan x baru sebagai
hasil perhitungan;
d) jika tidak, lanjutkan ke langkah berikutnya.
e) Jika jumlah iterasi > iterasi maksimum, akhiri program.
f) X = Xbaru, dan kembali ke langkah (b).

Pemrograman Newton-Rhapson Method dengan C++


#include <stdio.h>
include <conio.h>
#include <math.h>
#include <stdlib.h>

#define ACC 0.01


#define N 10

int degree;

float coeff[N];
void input(void);
float F(float);
float dF_dx(float);

/********************************************************/
/***** Finds the root of any linear algebraic any *****/
/***** order equation by "Newton-Raphson" method *****/
/********************************************************/

main()
{
char ch;
do
{
input();
printf("\n \n INGIN MELANJUTKAN [y/n] ");
fflush(stdin);
scanf("%c",&ch);
}while(ch=='Y' || ch=='y');
}
void input(void)
{
int i,print,loop=0;
float ig;
float h;

printf("\n MASUKKAN DERAJAT DARI PERSAMAAN


DIFFERENTIAL :");
scanf("%d",&degree);
print=degree;
for(i=0;i<=degree;i++)
{
printf("\n MASUKKAN KOEFISIEN PADA DERAJAT : _
[%d\t] = ",print--);
scanf("%f",&coeff[i]);
}
printf("\n MASUKKAN TEBAKAN AWAL : _");
scanf("%f",&ig);
if(F(ig)==0)
printf("\n %f : ADALAH AKAR DARI PERSAMAANNYA
\n",ig);
do
{
h=-(F(ig))/(dF_dx(ig));
ig=ig-h;
loop++;
if(loop>=40)
exit(0);
}while(fabs(h)>=ACC);
printf("\n %f ADALAH AKARNYA ",ig);
}

float dF_dx(float x)
{
int i,deg;
float func=0.0;
deg=degree;
for(i=0;i<degree;i++)
{
func=func+coeff[i]*deg*pow(x,(deg-1));
deg--;
}
if(func==0)
return(1);
return(func);
}

float F(float x)
{
int i,deg;
float func=0.0;
deg=degree;
for(i=0;i<=degree;i++)
{
func=func+coeff[i]*pow(x,deg);
deg--;
}
return(func);
}
3. Metode Secant

Ketika SMA, kita sring menyelesaikan persamaan kuadrat yaitu berbentuk


f(x) = aX2 + bX + c , misalnya persamaan kuadrat X2 – 9 = 0, maka akar-akarnya

b 2 − 4ac
dapat ditentukan dengan persamaan abc X = (−b ± ) maka akar dari
2a
X2 – 9 = 0 adalah X1 = 3 dan X2 = -3.

Metode Secant merupakan perbaikan dari Metode Newton, yaitu nilai turunan f(x)
didekati dengan beda hingga (∆)
gambar . Penentuan nilai turunan fungsi dengan metode Secant.
Dimana ,
∆f ' ( xi )
f ' ( xi ) =
∆xi

f ( xi ) − f ( xi −1 )
f 1 ( xi ) =
xi − xi −1
Sehingga dalam perrsamaan Newton – Rhapson menjadi :
xi − xi −1
xi +1 = xi − f ( xi )
f ( xi ) − f ( xi −1 )

Algoritmanya sendiri dari metode ini adalah :


1. Tentukan X0, X1, toleransi dan jumlah iterasi maksimum

( x1 − x0 )
2. Hitung xbaru = x1 − f ( x1 )
f ( x1 ) − f ( x0 )
3. Jika nilai mutlak (Xbaru - X1) < toleransi, diperoleh tulisan Xbaru sebagai
hasil perhitungan
4. jika tidak, lanjutkan ke langkah berikutnya
5. Jika jumlah iterasi > iterasi maksimum, akhiri program
6. X = Xbaru, dan kembali ke langkah (2)

Contoh 1: hitung akar persamaan dari f(x) = x³ - 3x - 20


Perkiraan awal
X 1= 6, f(6)=178
X 2= 2, f(2)=-18
iterasi pertama:
X3=2.3673469
f(X3)=-13.83464426
iterasi kedua:
X1 = 2 , f(2) = -18
X2 = 2.3673469, f(X2) = -13.83464426
X3 = 2.3673469--13.83464426 f(x3) = 15.40697963
= 3.587438053

Contoh 2 : Hitung akar persamaan dari y = X3 + X2 – 3X – 3 dengan


menggunakan Metode Secant, diisyaratkan bahwa batas kesalahan
relatif < 0.01%

Kelebihan dari Metode Secant ini dalah dimana sifatnya yang cepat
mendapatkan nilai konvergen namun tidak selalu mendapatkan hasil yang
konvergen terkadang bisa didapatkan hasil yang divergen.

Pemrograman Secant Method dengan MATLAB


Berikut source code yang di gunakan:

clear x f;
x(1) = 1; x(2) = 2;tol = 0.000001;
f(1) = fi(x(1));f(2) = fi(x(2));
n=2;i=1;
fprintf('tol = %10.8f\n', tol);
fprintf('i n x(n-1) x(n) f(x(n-1)) f(x(n)) x(n+1)\n');
x(n+1) = x(n)- f(n)*(x(n) - x(n-1))/(f(n)-f(n-1));
fprintf('%g %g %9.6f %9.6f %9.6f %9.6f %9.6f\n',i,n,x(n-1),x(n),
f(n-1),f(n),x(n+1));
while abs((x(n+1) - x(n))/x(n+1)) > tol
f(n+1) = fi(x(n+1));
n=n+1;i=i+1;
x(n+1) = x(n)- f(n)*(x(n) - x(n-1))/(f(n)-f(n-1));
fprintf('%g %g %9.6f %9.6f %9.6f %9.6f %9.6f\n',i,n,x(n-1),x(n),
f(n-1),f(n),x(n+1));
%pause;
end;
fprintf('\n|(x(n+1) - x(n))/x(n+1)| = %10.8f <= tol = %10.8f\n', abs((x(n+1)
- x(n))/x(n+1)),tol);
fprintf('Akarnya = %8.6f, banyak iterasi = %g \n',x(n+1),i);

Outputnya adalah:

tol = 0.00000100

i n x(n-1) x(n) f(x(n-1)) f(x(n)) x(n+1)

1 2 1.000000 2.000000 -4.000000 3.000000 1.571429


2 3 2.000000 1.571429 3.000000 -1.364431 1.705411
3 4 1.571429 1.705411 -1.364431 -0.247745 1.735136
4 5 1.705411 1.735136 -0.247745 0.029255 1.731996
5 6 1.735136 1.731996 0.029255 -0.000515 1.732051
6 7 1.731996 1.732051 -0.000515 -0.000001 1.732051

|(x(n+1) - x(n))/x(n+1)| = 0.00000006 <= tol = 0.00000100


Akarnya = 1.732051, banyak iterasi = 6

4. Metode Regula-Falsi
Seperti telah dijelaskan sebelumnya, Metode Bisection memiliki kelemahan
pokok, yaitu kurang cepat dalam mencapai konvergensi, maka beberapa ahli
metematika telah berusaha menyempurnakan metode tersebut dengan
dirumuskannya Metode Regula-Falsi atau metode posisi palsu atau false point
method.
Metode Regula-Falsi ini memiliki kelebihan dalam pencapaian nilai
konvergensi yang lebih cepat, namun tetap memiliki kepastian atau jaminan
menuju konvergensi. Metode ini juga sering disebut sebagai Metode Interpolasi
Linier. Dengan Metode Regula-Falsi dibuat garis lurus yang menghubungkan
titik( X1 , f(X1) ) dan titik(X0 ,f(X0)). Perpotongan garis tersebut dengan sumbu X
merupakan taksiran akar yang diperbaiki. Garis lurus tadi seolah-olah berlaku
menggantikan kurva f(x) dan memberikan posisi palsu dari akar.

Dengan menggunakan segitiga – segitiga sebangun pada gambar diatas,


perpotongan garis dan sumbu X dapat ditaksir sebagai :
f ( xL ) f ( xU )
=
x R − x L xR − x U

Yang dapat disederhanakan menjadi :


f ( xU )( x L − xU )
x R = xU −
f ( xL ) − f ( xU )
Persamaan tersebut adalah rumus untuk mencari akar dengan Metode Posisi
Palsu. Nilai XR merupakan nilai taksiran akar, dengan cara yang sama serta
berturut-turut akan diperoleh taksiran akar berikutnya yang lebih baik.

Contoh program untuk mencari akar persamaan non linear menggunakan Metode
Regula-Falsi dalam bahasa C++
Hasil eksekusi program untuk mencari akar dengan Metode Regula-Falsi
menggunakan bahasa C+ yang dilakukan dalam selang [0,1] , toleransi 10-5 dan
jumlah iterasi maksimum sebanyak 30, adalah sebagai berikut :

You might also like