Tampilkan postingan dengan label Metode Numerik. Tampilkan semua postingan
Tampilkan postingan dengan label Metode Numerik. Tampilkan semua postingan

Senin, 18 Juni 2012

Praktikum Metode Numerik Revisited

Berikut ini adalah kumpulan link terkait Praktikum Metode Numerik

Pengantar Kalkulus dan Metode Numerik, klik disini:
http://stanleykarouw.blogspot.com/2012/04/keterhubungan-kalkulus-dan-metode.html

Metode Bagi Dua, klik disini
https://docs.google.com/file/d/0BxSxy7HfW5oJaF9oYUlpbnNRWmVDTk92a0RYS3lrUQ/edit?pli=1

Metode Posisi Palsu klik disini
http://stanleykarouw.blogspot.com/2012/04/regula-falsi.html

Metode Newton Rhapson, klik disini
http://stanleykarouw.blogspot.com/2012/04/newton-rhapson.html

Metode Secant, klik disini
http://stanleykarouw.blogspot.com/2012/04/secant.html

Metode Eliminasi Gauss, klik disini
http://stanleykarouw.blogspot.com/2012/04/praktikum-metode-numerik-modul-5-metode.html

Metode Iterasi Jacobi, klik disini:
http://stanleykarouw.blogspot.com/2012/05/iterasi-jacobi.html

Metode Eliminasi Gauss Seidel, klik disini
http://stanleykarouw.blogspot.com/2012/05/eliminasi-gauss-seidel.html

Metode Least Square, klik disini
http://stanleykarouw.blogspot.com/2012/05/least-square.html

Beberapa catatan penting, terkait kompetensi Praktikum Metode Numerik:
(1) Membandingkan Algoritma dan Script dari Metode Bagi Dua dan Posisi Palsu dalam Penentuan Solusi;
(2) Ketepatan algoritma dan script Metode Newton-Rhapson dalam Penentuan Solusi Persamaan Non Linier;
(3) Mencari Solusi dengan Pendekatan Metode Secant;
(4) Membandingkan Solusi Persamaan Linier dengan Metode Jacobi VS Gauss-Seidel;
(5) Menerapkan algoritma dan script Metode Gauss Seidel untuk Menemukan Solusi SPL;
(6) Menggunakan algoritma dan script metode Least Square Untuk menemukan solusi.

Senin, 14 Mei 2012

Least Square

PRAKTIKUM METODE NUMERIK

BAB I
TUJUAN DAN DASAR TEORI
1.1 Tujuan

  1. Menguasai metode least square line yang digunakan dalam komputasi numerik
  2. Memahami algoritma pemrograman untuk merancang program metode least square line yang ada dalam komputasi numerik
  3. Menerapkan algoritma untuk perancangan dan pembuatan program metode least square line.

1.2 Dasar Teori
Metode Least – Squares Line memperkirakan titik-titik (x1,y1),(x2,y2) ... (xn,Yn) mempunyai persamaan:

Y = a + bx

Kemudian kita menggunakan metode dari Least Squares.
Metode ini mencari nilai dari a dan b sebagai:



mempunyai nilai minimum berdasarkan pada grafik di bawah.


BAB II
ALAT DAN BAHAN
II.1 Alat dan Bahan yang perlu dipersiapkan:
1) Buku Teks
2) Unit Pemroses
3) Aplikasi Pembuatan Program
            a. Notepad / Notepad++
            b. Aplikasi IDE C++ (Bloodsheed Dev C++)
            c. Mathematica
            d. Matlab
            e. IDE Visual Studio 2010
            f. Netbeans atau Eclipse

BAB III
PROSEDUR PERCOBAAN
III.1 Prosedur Umum
  1. Memahami formulasi matematis Metode Least Square Line
  2. Menulis Algoritma penyelesaian masalah (dengan menggunakan teks dan/atau flow chart)
  3. Menulis pseudocode algoritma
  4. Menguji pseducode algoritma penyelesaian masalah (misalnya dengan menggunakan prosedur Desk Check)
  5. Melakukan kodifikasi
  6. Menguji Program (misalnya dengan menggunakan prosedur Joel Test dan/atau tools seperti NUnit, NCover, NCoverExplorer dan TestDriven.NET, atau menggunakan prosedur pengujian langsung)
  7. Membuat dokumentasi Praktikum (misalnya dengan menggunakan Version Control Subversion, Mercurial, Gita tau Veracity)
III.2 Prosedur Khusus
III.2.1 Contoh menulis program menggunakan IDE Bloodshed Dev C++
  1. Untuk menulis program baru caranya tekan CTRL+N atau pilih NEW lalu klik Source File terlebih dahulu sebelum mengetik program.
  2. Ketikkan program anda.
  3. Simpan program dengan menekan tombol CTRL+F12, pilih Save kemudian pada kotak dialog yang muncul ketikkan nama program pada tempat yang tersedia misalnya Contoh1.cpp, kemudian klik Save atau tekan <ENTER>
  4. Jalankan program dengan terlebih dahulu melakukan kompilasi. Hal ini dapat dilakukan sekaligus dengan mengklik Compile & Run (F9) pada menu bar ataulangsung menekan F9 pada keyboard.
  5. Bila kompilasi tidak berhasil dan memunculkan pesan error, periksa kembali kode program yang ada kemudian perbaiki kesalahan dan lakukan kembali langkah 3 dan 4.  
  6. Untuk membuka arsip yang ada, gunakan OPEN atau tekan CTRL+O pada keyboard.
III.2.2 Contoh Program
#include <iostream>
#include <cmath>
#include<math.h>
using namespace std;
void gauss(int N, // bilangan yg tak diketahui
float A [20] [21], // koefisien constants
float result[20],
bool& err)
// N linear
// metode Gaussian elimination
// baris N dan N+1 kolom A
{
int indx[20];
float scale[20];
float maxRatio;
int maxIndx;
int tmpIndx;
float ratio;
float sum;
for (int i = 0; i < N; i++) indx[i] = i; // inisiasi index array
// skala faktor
for (int row = 0; row < N; row++)
{
scale[row] = abs(A[row][0]);
for (int col = 1; col < N; col++)
{
if (abs(A[row][col]) > scale[row]) scale[row] = abs(A[row][col]);
}
}
// lanjutkan elimination
for (int k = 0; k < N; k++)
{
// index baris pivot
maxRatio = abs(A[indx[k]] [k])/scale[indx[k]];
maxIndx = k;
for (int i = k+1; i < N; i++)
{
if (abs(A[indx[i]] [k])/scale[indx[i]] > maxRatio)
{
maxRatio = abs(A[indx[i]] [k])/scale[indx[i]];
maxIndx = i;
}
}
if (maxRatio == 0) // no pivot available
{
err = true;
return;
}
tmpIndx =indx[k]; indx[k]=indx[maxIndx]; indx[maxIndx] = tmpIndx;
// gunakan baris pivot
for (int i = k+1; i < N; i++)
{
ratio = -A[indx[i]] [k]/A[indx[k]] [k];
for (int col = k; col <= N; col++)
{
A[indx[i]] [col] += ratio*A[indx[k]] [col];
}
}
}
// kembali
for (int k = N-1; k >= 0; k--)
{
sum = 0;
for (int col = k+1; col < N; col++)
{
sum += A[indx[k]] [col] * A[indx[col]] [N];
}
A[indx[k]] [N] = (A[indx[k]] [N] - sum)/A[indx[k]] [k];
}
/*
cout << endl;
for (int r=0; r<N; r++)
{
cout << indx[r];
for (int c=0; c<=N; c++) cout<<" " << A[r][c];
cout << endl;
}
*/
for (int k = 0; k < N; k++) result[k] = A[indx[k]] [N];
}
int main()
{
float A[20][21];
float X[20],C[20],D[20];
float C[8]={-1,0,1,2,3,4,5,6};
float D[8]={10,9,7,5,4,3,0,-1};
float t;
float a,b,c,f;
bool err;
a=0;
b=0;
c=0;
f=0;
for(int l=0; l<=3;l++){
a=a+C[l];
b=b+D[l];
c=c+pow(C[l],2);
f=f+((C[l])*(D[l]));
}
A[0][0] = c;
A[0][1] = a;
A[0][2] = f;
A[1][0] = a;
A[1][1] = t;
A[1][2] = b;
gauss(2, A, X, err);
cout<<endl;
cout<<X[0]<<"X + "<<X[1]<<endl;
std::cin.get();
system("pause");
return 0;
}

Eliminasi Gauss Seidel


Praktikum Metode Numerik
Modul 7 Metode Eliminasi Gauss Seidel

BAB I
TUJUAN DAN DASAR TEORI
I.1 Tujuan

  1. Menguasai iterasi Gauss-Siedel yang digunakan dalam komputasi numerik.
  2. Memahami algoritma pemrograman untuk merancang program metode Gauss-Siedel yang ada dalam komputasi numerik.
  3. Menerapkan algoritma untuk perancangan dan pembuatan program metode Gauss-Siedel.

I.2 Dasar Teori
Metode Gauss-Siedel digunakan untuk menyelesaikan Sistem Persamaan Linear (SPL) berukuran besar dan proporsi koefisien nolnya besar, seperti sistem-sistem yang banyak ditemukan dalam sistem persamaan diferensial. Metode iterasi Gauss-Siedel dikembangkan dari gagasan metode iterasi pada solusi persamaan tak linier.
Teknik iterasi jarang digunakan untuk menyelesaikan SPL berukuran kecil karena metode-metode langsung seperti metode eliminasi Gauss lebih efisien daripada metode iteratif. Akan tetapi, untuk SPL berukuran besar dengan presentase elemen nol pada matriks koefisien besar, teknik iterasi lebih efisien daripada metode langsung dalam hal penggunaan memori komputer maupun waktu komputasi. Dengan metode iterasi Gauss-Siedel sesatan pembulatan dapat diperkecil karena dapat meneruskan iterasi sampai solusinya seteliti mungkin sesuai dengan batas sesatan yang diperbolehkan.
Suatu sistem persamaan linier terdiri atas sejumlah berhingga persamaan linier dalam sejumlah berhingga variabel. Menyelesaikan suatu sistem persamaan linier adalah mencari nilai-nilai variabel yang belum diketahui yang memenuhi semua persamaan linier yang diberikan.

I.3 Algoritma

(1) Masukkan matrik A, dan vektor B beserta ukurannya n

(2) Tentukan batas maksimum iterasi max_iter

(3) Tentukan toleransi error ε

(4) Tentukan nilai awal dari xi, untuk i=1 s/d n

(5) Simpan xi dalam si, untuk i=1 s/d n

(6) Untuk i=1 s/d n hitung



(7) Iterasi <--  iterasi+1

(8) Bila iterasi lebih dari max_iter atau tidak terdapat ei<ε untuk i=1 s/d n maka proses dihentikan dari penyelesaiannya adalah xi untuk i=1 s/d n. Bila tidak maka ulangi langkah (5)

BAB II
ALAT DAN BAHAN
II.1 Alat dan Bahan yang perlu dipersiapkan:
1) Buku Teks
2) Unit Pemroses
3) Aplikasi Pembuatan Program
            a. Notepad / Notepad++
            b. Aplikasi IDE C++ (Bloodsheed Dev C++)
            c. Mathematica
            d. Matlab
            e. IDE Visual Studio 2010
            f. Netbeans atau Eclipse


BAB III
PROSEDUR PERCOBAAN
III.1 Prosedur Umum

  1. Memahami formulasi matematis Metode Iterasi Jacobi
  2. Menulis Algoritma penyelesaian masalah (dengan menggunakan teks dan/atau flow chart)
  3. Menulis pseudocode algoritma
  4. Menguji pseducode algoritma penyelesaian masalah (misalnya dengan menggunakan prosedur Desk Check)
  5. Melakukan kodifikasi
  6. Menguji Program (misalnya dengan menggunakan prosedur Joel Test dan/atau tools seperti NUnit, NCover, NCoverExplorer dan TestDriven.NET, atau menggunakan prosedur pengujian langsung)
  7. Membuat dokumentasi Praktikum (misalnya dengan menggunakan Version Control Subversion, Mercurial, Gita tau Veracity)


III.2 Prosedur Khusus
III.2.1 Contoh menulis program menggunakan IDE Bloodshed Dev C++

  1. Untuk menulis program baru caranya tekan CTRL+N atau pilih NEW lalu klik Source File terlebih dahulu sebelum mengetik program.
  2. Ketikkan program anda.
  3. Simpan program dengan menekan tombol CTRL+F12, pilih Save kemudian pada kotak dialog yang muncul ketikkan nama program pada tempat yang tersedia misalnya Contoh1.cpp, kemudian klik Save atau tekan <ENTER>
  4. Jalankan program dengan terlebih dahulu melakukan kompilasi. Hal ini dapat dilakukan sekaligus dengan mengklik Compile & Run (F9) pada menu bar ataulangsung menekan F9 pada keyboard.
  5. Bila kompilasi tidak berhasil dan memunculkan pesan error, periksa kembali kode program yang ada kemudian perbaiki kesalahan dan lakukan kembali langkah 3 dan 4.  
  6. Untuk membuka arsip yang ada, gunakan OPEN atau tekan CTRL+O pada keyboard.
III.2.2 Contoh Program






Senin, 07 Mei 2012

Iterasi Jacobi

MODUL 6 Iterasi Jacobi
BAB I
TUJUAN DAN DASAR TEORI

I.1 Tujuan
1) Menguasai iterasi Jacobi yang digunakan dalam komputasi numerik.
2) Memahami algoritma pemrograman untuk merancang program iterasi Jacobi.
3) Menerapkan algoritma untuk perancangan dan pembuatan program iterasi Jacobi.

I.2 Dasar Teori
Metode iterasi Jacobi merupakan salah satu bidang analisis numerik yang digunakan untuk menyelesaikan permasalahan persamaan linear dan sering dijumpai dalam berbagai disiplin ilmu. Metode iterasi Jacobi merupakan salah satu metode tak langsung, yaitu bermula dari suatu hampiran penyelesaian awal dan kemudian berusaha memperbaiki hampiran dalam tak berhingga dengan langkah konvergen. Metode iterasi Jacobi ini digunakan untuk menyelesaikan persamaan linear berukuran besar dan proporsi koefisien nolnya besar. Metode ini ditemukan oleh matematikawan yang berasal dari Jerman, Carl Gustav Jakob Jacobi. Penemuan ini diperkirakan pada tahun 1800-an.
Jika merubah Sistem Persamaan Linear, maka dapat ditulis sebagai berikut
Ax = B
Kemudian, diketahui bahwa A = D + (L + U), dimana D merupakan matriks diagonal, L merupakan matriks segitiga bawah, dan U merupakan matriks segitiga atas. Setelah itu, persamaan diatas dapat diubah menjadi:
 
Dx | (L | U)x = b

Kemudian
x = D -1 [b – ( L | U ) x]

Jika ditulis dalam aturan iteratif, maka metode Jacobi dapat ditulis sebagai

x(k+1) = D -1 [b – ( L | U ) x(k)]
 
Dimana k merupakan banyaknya iterasi. Jika x(k) menyatakan hampiran ke-k penyelesaian Sistem Persamaan Linear, maka x(0) adalah hampiran awal.


BAB II
ALAT DAN BAHAN

II.1 Alat dan Bahan yang perlu dipersiapkan:
1) Buku Teks
2) Unit Pemroses
3) Aplikasi Pembuatan Program
            a. Notepad / Notepad++
            b. Aplikasi IDE C++ (Bloodsheed Dev C++)
            c. Mathematica
            d. Matlab
            e. IDE Visual Studio 2010
            f. Netbeans atau Eclipse


BAB III
PROSEDUR PERCOBAAN

III.1 Prosedur Umum
1) Memahami formulasi matematis Metode Iterasi Jacobi
2) Menulis Algoritma penyelesaian masalah (dengan menggunakan teks dan/atau flow chart)
3) Menulis pseudocode algoritma
4) Menguji pseducode algoritma penyelesaian masalah (misalnya dengan menggunakan prosedur Desk Check)
5) Melakukan kodifikasi
6) Menguji Program (misalnya dengan menggunakan prosedur Joel Test dan/atau tools seperti NUnit, NCover, NCoverExplorer dan TestDriven.NET, atau menggunakan prosedur pengujian langsung)
7) Membuat dokumentasi Praktikum (misalnya dengan menggunakan Version Control Subversion, Mercurial, Gita tau Veracity)

III.2 Prosedur Khusus
III.2.1 Contoh menulis program menggunakan IDE Bloodshed Dev C++
1)      Untuk menulis program baru caranya tekan CTRL+N atau pilih NEW lalu klik Source File terlebih dahulu sebelum mengetik program.
2)      Ketikkan program anda.
3)      Simpan program dengan menekan tombol CTRL+F12, pilih Save kemudian pada kotak dialog yang muncul ketikkan nama program pada tempat yang tersedia misalnya Contoh1.cpp, kemudian klik Save atau tekan <ENTER>
4)      Jalankan program dengan terlebih dahulu melakukan kompilasi. Hal ini dapat dilakukan sekaligus dengan mengklik Compile & Run (F9) pada menu bar ataulangsung menekan F9 pada keyboard.
5)      Bila kompilasi tidak berhasil dan memunculkan pesan error, periksa kembali kode program yang ada kemudian perbaiki kesalahan dan lakukan kembali langkah 3 dan 4.  
6)      Untuk membuka arsip yang ada, gunakan OPEN atau tekan CTRL+O pada keyboard.

III.2.2 Prosedur Uji Coba
Perhatikan penggalan program berikut
Lakukan langkah-langkah berikut:
1. Terdapat sebuah program dibawah
2. Pahami algoritma penyelesaian masalah pada program diatas!
3. Tuliskan program berdasarkan langkah-langkah algoritma penyelesaian masalah!
4. Jalankan program
5. Temukan kesalahan program
6. Membuat dokumentasi
7. Lakukan kembali langkah 4 hingga langkah 6
8. Tuliskan program yang sudah benar
9. Membuat dokumentasi laporan lengkap

Contoh Program:
#include <iostream>
#include <math.h>
using namespace std;
//Iterasi Jacobi
int main(){
int a, b, c, d, e, f, g, h, i, j, k, l, xb, yb, zb;
float x, xk, y, yk,z, zk, selisih_x, selisih_y, selisih_z;
char pil;
do
{
cout<<”Format: 4x – y + z = 7”<<endl;
cout<<” 4x – 8y + z = 21”<<endl;
cout<<” -2x + y + 5z = 15”<<endl;
cout<<”Harga awal:(1,2,2)”;
int n=1;
do {
xk=(7-(-4*y)-(1*z))/4;
yk=(-21-(4*x)-(1*z))/-8;
zk=(15-(-2*x)-(1*y))/5;
cout<<”x”<<n<<”: ”<<xk<<endl;
cout<<”y”<<n<<”: “<<yk<<endl;
cout<<”z”<<n<<”: “<<zk<<endl;
y=yk;
z=zk;
n++;
xb=x;
selisih_x=x-xb;
yb=y;
selisih_y=y-yb;
zb=z;
selisih_z=z-zb;
}
while((selisih_x>0.00001||selisih_x<-0.00001) \
||(selisih_y>0.00001||selisih_y<-0.00001) \
||(selisih_z>0.00001||selisih_z<-0.00001));
cout<<”\nApakah ingin diulang lagi?”;
cin>>pil;
cout<<endl;
}
while (pil==’Y’||pil=’y’);
return 0;
}

3.2.3 Saran
1. Pelajari buku teks dan sumber lainnya
2. Mintalah petunjuk dari dosen pengasuh, asisten laboratorium dan lainnya.
3. Lakukan dokumentasi dengan baik.
4. Belajarlah bekerja dalam kelompok.
5. Ikuti setiap langkah dari prosedur yang ada

Senin, 30 April 2012

Eliminasi Gauss

Praktikum Metode Numerik
Modul 5 Metode Eliminasu Gauss
BAB I
TUJUAN DAN DASAR TEORI

I.1. Tujuan
1) Menguasai metode eliminasi gauss yang digunakan dalam komputasi numerik
2) Memahami algoritma pemrograman untuk merancang program metode eliminasi gauss yang ada dalam komputasi numerik
3) Menerapkan algoritma untuk perancangan dan pembuatan program metode eliminasi gauss.

II.2. Dasar Teori
Berikut ini dipaparkan metode 2 langkah dalam menyelesaikan persamaan dengan Gaussian Eliminasi.

Langkah ke-1:
Melakukan proses triangulasi = mengubah matriks A menjadi matriks segitiga (hal ini akan mengubah matriks B)




Langkah ke-2:
Melakukan substitusi mundur, yaitu: menghitung x mengikuti urutan terbalik, dari yang terakhir (Xn ) sampai yang pertama (X1 )





Modul selengkapnya dapat diunduh disini

Senin, 23 April 2012

secant


Praktikum Metode Numerik
MODUL 4 Metode SECANT

BAB I
TUJUAN DAN DASAR TEORI
I.1 Tujuan
1. Menguasai metode Secant yang digunakan dalam komputasi numerik.
2. Memahami algoritma pemrograman untuk merancang program metode Secant yang ada dalam komputasi numerik.
3. Menerapkan algoritma untuk perancangan dan pembuatan program metode Secant.
4. Melakukan pengujian algoritma dan kode program
5. Membuat Dokumentasi

I. 2 Dasar Teori
Akar fungsi pada metode Secant untuk i=1 dan 2 bisa dihitung dengan metode yang lain atau ditebak. Mulai i=3, akar fungsi dihitung dengan rumus (umum):






I. 3 Langkah – langkah Metode Secant:
1. Menentukan nilai awal P0 dan P1.
2. Mencari nilai P berikutnya, dengan 



3. Menguji P, apakah f(x) 0.
4. Mencari nilai P berikutnya sampai f(x) 0.

Modul selengkapnya dapat diunduh disini.

Newton Rhapson


Praktikum Metode Numerik
Modul 3 Metode NEWTON - RHAPSON
BAB I
TUJUAN DAN DASAR TEORI

I.1 Tujuan
1.    Menguasai metode Newton Rhapson yang digunakan dalam komputasi numerik.
2.    Memahami algoritma pemrograman untuk merancang program metode posisi palsu - metode yang ada dalam komputasi numerik.
3.    Menerapkan algoritma untuk perancangan dan pembuatan program metode posisi palsu.
4.    Melakukan pengujian algoritma dan kode program
5.    Membuat dokumentasi

I.2 Dasar Teori
Metode Newton-Raphson adalah metode penyelesaian persamaan non-linear, dengan cara merapatkan suatu titik pada suatu sumbu x sehingga hampir mendekati perpotongan garis dengan sumbu x.

  
I.3 Langkah – langkah metode Newton Rhapson

1)      Menentukan nilai awal P0.
2)      Mencari nilai P berikutnya, dengan



3)      Menguji P, apakah f(x) sudah mendekati 0.
4)      Mencari nilai P berikutnya.

Modul selengkapnya dapat diunduh disni

Regula Falsi


Praktikum Metode Numerik
MODUL 2 Metode POSISI PALSU

BAB I
TUJUAN DAN DASAR TEORI
I.1 Tujuan
1.    Menguasai metode posisi palsu (atau regula-falsi) yang digunakan dalam komputasi numerik.
2.    Memahami algoritma pemrograman untuk merancang program metode posisi palsu - metode yang ada dalam komputasi numerik.
3.    Menerapkan algoritma untuk perancangan dan pembuatan program metode posisi palsu.
4.    Melakukan pengujian algoritma dan kode program
5.    Membuat dokumentasi

I.2 Dasar Teori
Metode posisi palsu (atau regula-falsi) menetapkan hampiran akar sebagai perpotongan antara garis yang melalui titik [a, f(a)], dan titik [b,f(b)] dengan sumbu-x. Jika titik potong tersebut adalah c, maka akar terletak antara (a,c) atau (c,b). Penentuan interval yang mengandung akar seperti pada metode bagi dua.
 


I.3 Langkah – langkah metode Posisi Palsu

1.      Tentukan batas atas (a) dan batas bawah (b)
2.   Menghitung c dengan rumus:



3.      Subtitusikan nilai c dalam Fungsi
4.      Jika f(c) < 0 maka nilai c sebelumnya akan menjadi batas atas (a) untuk iterasi berikutnya
5.      Jika f(c) > 0 maka nilai c sebelumnya akan menjadi batas bawah (b) untuk iterasi berikutnya
6.      Iterasi berhenti sampai nilai f(c) =  0

Modul selengkapnya bisa diunduh disini