Analisa Numerik_Matlab

download Analisa Numerik_Matlab

of 30

Transcript of Analisa Numerik_Matlab

  • 8/13/2019 Analisa Numerik_Matlab

    1/30

    Panduan Praktikum Metode Numerik dengan Matlab

    1

    BAB I

    PENDAHULUAN

    Pengenalan Program Matlab 1

    Matlab merupakan bahasa pemrograman komputer berbasis windows denganorientasi dasarnya adalah matrik, namun pada program ini tidak menutup kemungkinanuntuk pengerjaan permasalahan non matrik. Selain itu matlab juga merupakan bahasapemrograman yang berbasis pada objek (OOP), namun disisi lain karena matlab bukalahtype compiler, maka program yang dihasilkan pada matlab tidak dapat berdiri sendiri, agarhasil program dapat berdiri sendiri maka harus dilakukan transfer pada bahasapemrograman yang lain, misal C++. Pada matlab terdapat tiga windows yang digunakandalam operasinya yaitu Command Windows ( layar per in tah) dan f igure w indows ( layarGambar), serta NotePad (sebagai tempat editor prog ram).

    Windows Pada MatlabMenu Command windows

    Command windows (layar perintah) digunakan untuk menjalankan perintah/programyang dibuat pada layar editor matlab. Pada windows / layar ini anda dapat mengaksesperintah maupun komponen pendukung ( Help file dll ) yang ada pada matlab secaralangsung. Salah satu ciri dari Command windows ditandai dengan tanda prompt (>>). LayarMenu Command windows terlihat dalam gambar dibawah ini.

    1. File

    Menu file merupakan item untuk menangani set-up statement yang berhubungan denganfile.

    Menu pull

    down Tittle

    Klik untuk

    kecilkan window

    Klik untuk

    besarkan window

    Menggeser

    layar window

    Untuk menggeser layar arah

    horisontal

    Layar perintah

  • 8/13/2019 Analisa Numerik_Matlab

    2/30

    Panduan Praktikum Metode Numerik dengan Matlab

    2

    newMenu New merupakan sub menu:

    M-FileMembuka editor dengan laya kosong sehingga anda siap untuk membuat M-File baru (lihatmenu yang ada pada editor yang dipakai).

    FigureFigure membuat sebuah figur window (layar gambar baru).

    ModelMembuat layar mode simulink (jika program matlab menyediakan fasilitas simulink).

    Open M-FileMenampilkan dialog box untuk membuka sebuah M-file yang dipilih sesuai dengan pilihan pada

    dialog box ke dalam editor.

    Nama file

    yang dibuka

    Kotak dialog

    Menutup window

    Type ekstensi

    file

    Directory yang aktif

    Klik jikapilihan

    sesuai

    Batalkanerintah

  • 8/13/2019 Analisa Numerik_Matlab

    3/30

    Panduan Praktikum Metode Numerik dengan Matlab

    3

    Save workspace AsMenampilkan dialog box penyimpanan data dalam format ASCII

    Pada menu ini anda diperintahkan untuk memilih letak drive, directory dan masukkan namafile dengan extensi mat (*.mat) untuk menyimpan workspace (lembar kerja pada matlab).

    Set pathPada bagian ini digunakan untuk melakukan setting path / lintasan yang akan dikenalioleh program pada saat ekskusi file yang telah dibuat.

    PrintMencetak semua text yang berada pada command window. Jika yang dicetak tidakingin semuanya maka cetak bagian (variabel) yang ingin dicetak.

    Exit matlabPerintah untuk keluar dari pelayanan matlab.

    2. EditMenu edit adalah bagian dari matlab yang memangani fasilitas editing.Menu edit terlihat seperti gambar

    CutMenghilangkan text yang diblok dari command window dan text tersebut disimpan padacliboard.

    CopyMeng Copy (duplikat) text yang diblok dari command window ke cliboard.

    PasteMenulis text yang ada pada clipboard ke command window.

    Clear Command windowsMembersihkan lembar kerja.

    Menutup

    window

    Directory yang

    aktifKotak dialog

    Nama file

    yang akan di

    save

    Type ekstensi

    file

    Klik jika

    sudah sesuai

    Batalkan

    perintah

  • 8/13/2019 Analisa Numerik_Matlab

    4/30

    Panduan Praktikum Metode Numerik dengan Matlab

    4

    3. PreferenceMenu option adalah bagian dari preference yang menangani setting windows matlab. Salahsatu fungsi dari bagian ini adalah sebagia berikut :

    Format numeric yang dipakai:

    FORMAT Contoh Keterangan

    ShortLongHexBankPlusRational

    35.8333335.83333333333333344041eaaaaaaaaab35.83+215/6

    Fixpoint dengan format 5 digitFixpoint dengan format 16 digitHexadesimalFormat dalam dolar dan sen (2 desimal digit)Pemberian simbol +,- atau nolFungsi point dituliskan dalam bilangan pecahan

    LooseTampilan numeric dengan baris baru sebelum dan sesudah matrik.

    CompactTampilan numeric tanpa baris baru sebelum dan sesudah matrik.

    Turn Echo onTurn Echo dapat diset dalam dua kondisi yaitu: Turn Echo on dan Turn Echo Off.

    Turn Echo on pada saat M-File dieksekusi maka baris-baris yang dieksekusi tidakditampilkan pada layar (command window).

    Enabel Bacground ProcessPerintah ini merupakan togle yaitu dapat diset on atau off.

    FontMenampilkan dialog box yang dapat digunakan untuk men-set spesifikasi font (huruf)dan warna bacground pada command window yang digunakan.

    4. HelpMenu help menyediakan fasilitas untuk mengakses program help dari matlab, dimana padamenu tersebut mempunyai sub menu sbb:

    Table of ContentsIndexHelp Selected

    About

    Table of ContentMenampilkan daftar area help dari matlab yang disediakan.

    IndexMenampilkan daftar alpahabet dari fungsi-fungsi pada matlab yang disediakan.

    Help SelectedMencari topik dari help pada item yang disorot dan ditampilkan pada command window.

    AboutManampilkan About Box Matlab

  • 8/13/2019 Analisa Numerik_Matlab

    5/30

    Panduan Praktikum Metode Numerik dengan Matlab

    5

    BAB IIPENGENALAN PEMROGRAMAN

    Matlab adalah paket program pemrograman matematika berbasis matrik. Pada program

    matlab ada dua cara palayanan program, yaitu:1. Secara interatif (secara langsung ), jika anda pernah menggunakan program Q-basic,

    terletak pada View Immediate.2. Dengan pemprograman, yakni program dibuat pada tempat terpisah baru dilakukan tes

    pada matlab.

    Pelayanan secara interaktif dilakukan dengan cara mengetikkan perintah-perintah yangdiinginkan langsung pada prompt dari matlab yang berbentuk lambang >>. Pelayanandengan pemprograman dilakukan dengan cara membuat / menyusun program denganeditor dan disimpan dengan ektensi m(*.m)Lakukan perintah dibawah ini sebagai latihan pada commnad windows sebagai pelayananinteratif.

    Membentuk matriks

    >> A = [4 3 2; 4 4 3; 3 2 2] Perintah mencari invers

    >> B = inv (A) >> C = det (A)

    Mengambil bagian matriks>> a = A(1,:);

    >> a

    >> c = A(:,2);>> c

    >> D = A(1,2,:);

    >> D

    Untuk menampilkan variabel yang aktif dalam memory komputer

    >> who Menyimpan lembar kerja

    >> save temp

    Menghapus lembar kerja>> clc

    Menghapus semua variabel pada lembar kerja (buffer memory)>> load temp

    >> who

    Mencari ukuran dari matriks>> [n, m] = size (A)

    Untuk lebih mendalami, lakukan dan jawab pertanyaan dibawah ini:

    0.54.52.31.2

    0.52.40.50.5

    1.59.08.25.7

    2.00.10.58.2

    0.52.31.50.6

    G

    [m,n] =size [g]

  • 8/13/2019 Analisa Numerik_Matlab

    6/30

    Panduan Praktikum Metode Numerik dengan Matlab

    6

    A = det [G]

    B = inv [G]

    C = GT

    D = (:,2)

    E = G(1:3,2:4)

    Matriks - matriks yang disediakan oleh matlab adalah:

    Eye(n) : membuat matriks identitas dengan ukuran n x n

    Zeros(n) : membuat matriks nol dengan ukuran n x n

    Ones(n) : membuat matriks satuan dengan ukuran n x n

    Trill(n) : membuat matriks segitiga bawah dari matriks x

    Triu(n) : membuat matriks segitiga atas dari matriks x

    APLIKASI GRAFIKLATIHAN 2AGrafik 2D sebagai contoh sbb:

    Membuat grafik sinus dan cosinus

    x=0:0.001:2*piy=sin(x)

    z=cos(x)

    plot (x,y,'r-',x,z,'g--');

    grid;

    title('grafik fungsi sinus (x) dan cosinus(x)');

    xlabel('nilai x');

    ylabel('cos (x)atau sin (x)');

    shg

    LATIHAN 2B

    Grafik 3 Dimensix=-8:0.05:8;

    y=x;

    [x,y]=meshgrid(x,y);

    R=sqrt(x.^2+y.^2)+eps;

    z=sin(R)./R;

    mesh (z) ;

    title('grafik sin (R)/R');

    shg

    TUGAS 11 Untuk dapat mendalami lebih materi kali ini selesaikan soal dibawah ini untuk mencarigrafik korelasi waktu dan tempatur pada data dibawah ini.

    Waktu (detik) Suhu (oF)

    01

    23456789

    10

    54.258.5

    63.864.267.371.588.390.190.689.590.4

  • 8/13/2019 Analisa Numerik_Matlab

    7/30

    Panduan Praktikum Metode Numerik dengan Matlab

    7

    2. buatlah grafik 3 dimensi dari data matriks dibawah ini:

    11111111

    11555511

    115105511

    11555511

    11111111

    11111111

    G

    dengan perintah mesh(G)

    mesh (G)

    title (Grafik 3 dimensi);

    xlabel (Harga X)

    ylabel (Harga Y)

    zlabel (Harga Z)pause

    pcolor (G)

    axis off

    shading flat

    Setelah menyelesaikan program diatas fahami dan buat diagram alir untuk lebih mamahamilogikanya.

    Tipe garis, tanda, dan warna

    Dalam penggambaran grafik pada matlab dapat digunakan karakter - karakter khusussebagai simol garis, tanda serta warna dari symbol yang digunakan.Symbol serta wana yang digunakan antara lain adalah :

    Symbol Warna Symbol Tipe Garis

    YMCRGBWK

    KuningMagentaCyanMerahHijauBiruPutihHitam

    OX+*

    :

    Titik ()Lingkaran (o)Tanda (x)Tanda (+)Tanda (*)Garis penuh ()Tanda (:)Garis titik ( )Garis putus-putus ( )

    Perintah:plot : membuat grafik 2 dimensi

    mesh : membuat grafik 3 dimensi

    xlabel : memberi nama sumbu X

    ylabel : memberi nama sumbu Y

    zlabel : memberi nama sumbu Z

    title : memberi judul grafik

  • 8/13/2019 Analisa Numerik_Matlab

    8/30

    Panduan Praktikum Metode Numerik dengan Matlab

    8

    OPERASI MATEMATIK

    Operator Matematik :

    Symbol Keterangan Contoh

    + jumlah (plus) C=A+B- kurang (minus) D=A-B

    * Perkalian E=A*B

    / Pembagian F=A/B

    ^ Pangkat K=A^2

    Operator ini dapat digunakan pada skalar, vector maupun matrik ( pada operasi tertentusaja ). Jika dikenakan pada skalar maka berlaku seperti aljabar biasa.Coba lakukan perintah dibawah ini dan perhatikan hasil operasioperasi :

    a = [ 1 2 3 4 5 ];

    b = [ 6 7 2 5 3 ];

    c = 2;

    A = a + b

    B = a + c

    C = a^c

    D = a.*b

    E = b a

    F = a./b

    G = a.\b

    H = b.^a

    Sedangkan untuk operasi dibawah ini tidak dapat dilakukan.Coba terangkan:

    a*b

    a/b

    a\b

    b^a

    TUGAS 2

    1. A = [2 -1 5 0] B = [3 2 -1 4]1. A B2. B + A 33. 2 * A + A.^b4. B./A

    5. B.\A6. A.^B7. (2).^B + A8. 2*B/3.0*A

    2.

    64

    32

    34

    75DC

    1. C * D

    2. C + D3. C/D4. C\D

    5. D C

    6. C.*D7. C./D8. C.\D

  • 8/13/2019 Analisa Numerik_Matlab

    9/30

    Panduan Praktikum Metode Numerik dengan Matlab

    9

    BAB IIIOPERASI RELASI

    Operator< Lebih kecil

    Lebih besar>= Lebih besar atau sama dengan== Sama dengan~= Tidak sama dengan

    Operasi relasi ini sangat penting untuk aliran program yang menggunakan statementWHILE dan IF.

    Kontrol Aliran Program:Dalam Matlab. Control aliran program itu terdiri dari FOR LOOPS, WHILE LOOPS, dan IF-ELSE-END.

    FOR LOOPS

    format penulisan secara umum statement ini adalah sebagai berikut :

    for Var= Nilai Awal : Pertambahan :Ni lai Akhir

    perintah / baris yang akan diulangend

    Contoh:for n = 1 : 10

    x(n) = sin (n/10);

    end

    x (lihat hasil nilai x)

    Selain itu juga dapat digunakan perintah FOR LOOPS dalam FOR LOOPS

    Contoh:for n = 1 : 5

    for m = 5 : -1 :1

    A(n,m) = n^2 + m^2

    end;

    end;

    WHILE LOOPSPerintah pengulangan tetapi diketahui jumlah pengulangannya, sehingga diperlukan syaratbatas (syarat yang harus dipenuhi).

    whileKondis i

    perintahend

    Contoh:>> num = 0; eps = 1;

    while (1+eps) > 1

    num = num + 1

    end

    >> num

    >> eps

  • 8/13/2019 Analisa Numerik_Matlab

    10/30

    Panduan Praktikum Metode Numerik dengan Matlab

    10

    IFELSEEND

    Melakukan perintah dengan syarat batas :a. If dengan satu alternatif

    if ekspresi

    perintahend

    Keterngan :

    Baris perintah akan dikerjakan jika ekspresi bernilai benar, namun jika tidak makabaris perintah akan dilewatkan.

    b. IF dengan banyak pilihan

    if ekspresi 1perintah 1elseif ekspresi 2

    perintah 2elseif ekspresi 2

    perintah 2end;

    end;end.

    Keterangan

    Baris perintah 1, akan dikerjakan jika ekspresi 1, bernilai benar, namun jika ekspresi1, salah maka program akan melakukan pengecekan pada ekspresi berkutnya, halini dilakukan sampai ditemukan salah satu ekspresi yang bernilai benar, atau tidaksama sekali dan program akan keluar dari perputaran IF, yang telah dibuat

    Cobalah contoh dibawah ini untuk IF dengan 1 alternatif pilihan :>> a = [2, 5, 6, 7, 8]

    >> n = max (size (a))>> if n > 0

    rata = a / nend.

    Setelah anda selesai mencoba contoh tersebut, buatlah program Untuk IF dengan lebih dari4 pilihan

    LATIHAN 3A

    Mencari akar:Dalam kesempatan ini anda akan diperkenalkan :

    - Penggunaan editor- Membuka dan menutup Matlab

    Program berikut ini adalah untuk menghitung akar kuadrat dari bilangan file akar m denganmemasukkan program ini (program dibuat dalam editor).

    x = a;eror = 1;k = 1;while eror > 0.000001

    y = 0.5 * (x + a/x);sbx (k) = x;

  • 8/13/2019 Analisa Numerik_Matlab

    11/30

    Panduan Praktikum Metode Numerik dengan Matlab

    11

    sby (k) = y;eror = abs (xy);x = y;k = k + 1;

    end

    xplot (sbx, sby);

    Sesudah program diatas disimpan (dilakukan dalam editor), kemudian kembali ke Matlabdan lakukan :

    1. >> jalankan file program yang sudah dibuat, dengan menuliskan nama file yangtelah disimpan.

    2. >>a = 10;3. >>akar

    Pelajarilah hasil dan makna dari tiap baris dalam program ini. Catatlah semua hasil yangperlu dalam buku catatan praktikum anda.

    LATIHAN 3B (METODE NEWTON RAPHSON)Mencari akar polinominal menggunakan metode NEWTON, dimana pada metode ini harusdiberikan turunan dari polinominal tersebut. Untuk lebih memahami metode ini perhatikangrafik berikut ini :

    Dari grafik diatas, nilai Xiadalah nilai Xpada perkiraan awal sedangkan Xi+ 1,merupakannilai pendekatan Xberikutnya, dengan menggunakan konsep segitiga maka kita dapatkannilai dari Xi+ 1dengan persamaan sebagai berikut :

    )('

    )(1

    i

    i

    iixf

    xfXX

    Dalam program dibawah ini diperkenalkan penggunaan Prosedur Function dalam Matlabguna menyelesaikan metode NEWTON pada pembahasan diatas .

    Buat program dibawah ini pada matlab editor atau notepad pada Microsoft windows:

    % nama file zfungsi.m

    % program untuk menghitung f(x) dan f(x) dengan x diketahui

    % program in disertakan prosedur function

    function [f,ff] = zfungsi(x)

    XiXi+1

    f(xi)-0

    f(xi)

    f(xi)

    X

    f(x)

  • 8/13/2019 Analisa Numerik_Matlab

    12/30

    Panduan Praktikum Metode Numerik dengan Matlab

    12

    f = x^5 2*x^4 + 3*x*3 -4*x^2 + 5*x 6

    ff= 4*x^4 - 8*x*3 + 9*x^2 - 8*x 5

    Simpan program tersebut dengan nama file zfungsi.m.Setelah itu siapkan file baru lagi dan simpan dengan nama file znewton.mdibawah ini:

    % nama file znewton.m

    % sebagai program induk untuk memanggil program zfungsi.m

    % untuk mencari akar dari f(x) dengan metode Newton

    % nilai tafsiran awal x dimasukkan dulu

    k = l

    [f,ff] = zfungsi(x)

    while abs(f) > 0.0001

    y = x f/ff

    sbx(k) = x;

    sby(k) = y;

    k = k + 1;

    x = y;

    [f,ff] = zfungsi(x);end;

    x;

    plot(sbx,sby)

    Pelajarilah hasil dan makna dari tiap baris dalam program ini. Catatlah semua logika yangada dan buat diagram alirnya. Untuk lebih memahami contoh diatas, kerjakan contoh soaldibawah ini

    TUGAS 3

    1. Sebuah batang Uniform diberi beban seperti gambar:Persamaan lendutan yang terjadi pada batang

    xLxLxEL

    Wy 43250 2

    120

    L = 180 inch, E = 2,9x107I = 723 inch4W0= 12 kips/ftDengan menggunakan metode Newton tentukan posisi x dimana y mencapai max(tentukan x dimana dy/dx = 0)

    2. Persamaan Gas Ideal dari persamaan Vander Wals sbb:

    RTbvv

    ap

    2

    Dimana:

    v =n

    V

    V = molal volume

    y

    x

    W0

  • 8/13/2019 Analisa Numerik_Matlab

    13/30

    Panduan Praktikum Metode Numerik dengan Matlab

    13

    n = bilangan dari mol (bilangan Avogadro)a & b adalah konstanta (diperoleh secara empiris)R = 0.082054 (atm/molK)

    Untuk karbondioksida:

    a = 3,592b = 0,09267

    Untuk oksigen:a = 1,36b = 0,031383

    Jika tekanan yang digunakan 1, 10, 100 atm untuk kombinasi suhu 300, 500, dan 700K,tentukan volume molal untuk gas oksigen dan gas karbondioksida.

    LATIHAN 3C (Metode Bisection)Mencari akar persamaan dengan metode BISECTION / BAGI DUA, pada metode ini

    nilai yang akan dicari diapit oleh dua nilai X yang diambil dari perkiraan / aproksimasidimana nilai tersebut adalah X

    lsebagai batas bawah, X

    usebagai batas atas dan X

    rsebagai

    nilai tengan dari X, secara sepintas metode ini dapat dijelaskan dengan langkah sebagaiberikut :1. Buat Nilai perkiraan untuk nilai Xl dan Xu dengan asumsi X yang dicari berada

    diantaranya2. Cek nilai dari f(xl).f(xu)

  • 8/13/2019 Analisa Numerik_Matlab

    14/30

    Panduan Praktikum Metode Numerik dengan Matlab

    14

    Function[Fl]=fungsi2l(tl)Y=0.3;% M= Massa BendaM=1200000;% K= Konstanta dari pegas yang digunakan

    K=125000000;% C= Koefisien hambatan UdaraC=14000000W=sqrt(k/m)N=c/(2*m)F1=y*exp(-n*tl)*(cos(w*tl)+n*sin(w*tl)/w);

    Simpan program diatas dengan nama fungsi2l.m

    Buat program untuk menghitung batas atas yang sudah diketahui kita masukkan pada

    Function[Fu]=fungsi2u(tu)Y=0.3;% M= Massa BendaM=1200000;% K= Konstanta dari pegas yang digunakanK=125000000;% C= Koefisien hambatan UdaraC=14000000W=sqrt(k/m)N=c/(2*m)Fu=y*exp(-n*tl)*(cos(w*tl)+n*sin(w*tl)/w);

    Simpan program diatas dengan nama fungsi2u.mSekarang buat program untuk menghitung nilai F untuk menghitung nilai rata-rata, yangdidapat dari batas atas (fungsi2u.m) dan batas bawah (fungsi2l.m)

    Function[Fu]=fungsi2u(tu)Y=0.3;% M= Massa BendaM=1200000;% K= Konstanta dari pegas yang digunakanK=125000000;% C= Koefisien hambatan UdaraC=14000000W=sqrt(k/m)N=c/(2*m)F=y*exp(-n*tl)*(cos(w*tl)+n*sin(w*tl)/w);

    Simpan program diatas dengan nama fungsi2.m

    Satelah file pendukung diatas selesai maka siapkan file yang berfungsi untuk melakukanbagi dua.

    ClcTl=input( Batas bawah :);Tu=input( Batas atas:);K=0;Eror=1;[Fl]=fungsi2l(tl)[Fu]=fungsi2u(tu)

  • 8/13/2019 Analisa Numerik_Matlab

    15/30

    Panduan Praktikum Metode Numerik dengan Matlab

    15

    while eror>0.001;tr=(tl+tu)/2;k=k+1t=tr;[F]=fungsi2(t);

    eror=abs((tu-tl)/(tu+tl));sbx(k)=t;sby(k)=F;test=F*Fu;if test

  • 8/13/2019 Analisa Numerik_Matlab

    16/30

    Panduan Praktikum Metode Numerik dengan Matlab

    16

    Simpan program diatas dengan nama fungsi2l.m% Untuk rata-rata ( Fr)

    Function[Fr]=fungsi3r(tl)Y=0.3;% M= Massa Benda

    M=1200000;% K= Konstanta dari pegas yang digunakanK=125000000;% C= Koefisien hambatan UdaraC=14000000W=sqrt(k/m)N=c/(2*m)Fr=y*exp(-n*tl)*(cos(w*tl)+n*sin(w*tl)/w);

    Satelah file pendukung diatas selesai maka siapkan file yang berfungsi untuk melakukanperhitungan secara keseluruhan .

    ClcTl=input( Batas bawah :);Tu=input( Batas atas:);K=0;Eror=1;[Fl]=fungsi3l(tl)[Fu]=fungsi3u(tu)while eror>0.001;

    tr=(tu-(Fu*(tl-tu)/(Fl-Fu));eror=abs((tr-t)/tr)endt=tr;[Fr]=fungsi3l(t);k=k+1;sbx(k)=t;

    sby(k)=Fr;if Fr*Futr;end

    [Fl]=fungsi3l(tl);[Fu]=fungsi3u(tu);endplot(sbx,sby)t

    %Akhir Program

    Latihan 3E (Metode Secant)Metode ini hampir sama dengan metode Newton Raphson, namun pada metode ini kitaharus membuat dua batas sebagai nilai awal dan nilai akhir seperti pada metode bisection,secara gafis dapat dilihat pada gambar berikut :

    Dengan metode interpolasi kita dapatkan :)()(

    )(

    afbf

    bfbc

    Karena

  • 8/13/2019 Analisa Numerik_Matlab

    17/30

    Panduan Praktikum Metode Numerik dengan Matlab

    17

    ac

    af

    cb

    bf

    )()(

    Dalam Metode ini, nilai c adalah nilai perkiraan baru berdasarkan perkiraan dari nilai a dan bsebelumnya. Sehingga untuk nilai Xi+1sebagai nilai perkiraan berikutnya adalah :

    ).()()(

    )(1

    1

    1

    iiii

    iii xx

    xfxf

    xfXX

    f(x)

    xb

    f(b)

    ca

    f(a)

  • 8/13/2019 Analisa Numerik_Matlab

    18/30

  • 8/13/2019 Analisa Numerik_Matlab

    19/30

    Panduan Praktikum Metode Numerik dengan Matlab

    19

    LATIHAN 4AUntuk mempermudah pemahaman lakukanlah petunjuk dibawah ini untuk menyelesaikansistem persamaan linier berikut ini :

    3x1 + 2x2 x3 = 10-x1 + 3x22x3 = 5

    x1+ x2 x3 = 1Persamaan tersebut dapat ditulis dalam bentuk :[A] * [X] = [B]

    lebih detailnya adalah :

    Penyelesaian secarac program pada matlab adalah:A = [3, 2, -1; -1, 3, 2; 1, -1, -1];

    B = [10, 5, 1];

    C = inv (A); % C adalah invers dari AX = C * B

    Note:Bandingkan jika anda menyelesaikannya, dengan program lain semisal Qbasic atau Turbo Pascal

    Invers dengan menggunakan metode SWS ( Sherman Morrison Woodbury)

    Metode SMW pada dasarnya adalah mencari selisih matriks tersebut denganmatriks lain yang sudah diketahui inversnya. Maka yang paling mudah, matriks yang

    digunakan sebagai acuan adalah matriks [I].Relasi matriks SMW adalah :

    BUAV ** 1 atau UAVB ** 1

    LATIHAN 4B

    Program mencari invers dengan metode SMWfor k = 1 : n:

    z = 1 + 1 + a (k,:) * c(:, k);

    function [A] = invers SMW [A}

    %Mencari invers dengan metode SMW

    %Matriks yang dicari dimasukkan

    [m, n] = size(a);

    c = a eye (n, n);

    a = eye (n, n)

    a = a a * c(:, k) * a (k, :)/z;end;

    Sesudah disimpan siapkan file lain seperti dibawah ini, untuk menyelesaikan persamaandiatas :

    A = [3, 2, -1; -1, 3, 2; 1, -1, -1];

    B = [10, 5, 1];

    X = C * B

    3 2 1[A] = -1 3 2

    1 1 1

    X1, [X] = X2

    X3

    10, [B] = 5

    1

  • 8/13/2019 Analisa Numerik_Matlab

    20/30

    Panduan Praktikum Metode Numerik dengan Matlab

    20

    Apakah yang anda dapatkan dari kajian diatas ?Untuk mengetahui beban komputasi dari program diatas gunakan flop. Pada akhir tugas ini,diharapkan saudara dapat atau mampu memetik makna komputasi dalam soalpenyelesaian matriks dengan basis matriks.

    Perlu diingat !Jangan mengerjakan tugas selanjutnya apabila saudara belum paham benar tentang program ini

    TUGAS 4Untuk lebih memahami selesaikanlah persamaan dibawah ini dengan program diatas :

    1) -2x1 + x2 = -3 5. ) 3x1 + 2x2x3 = -3x1 + x2 = 3 -x1 + 3x22x3 = 5

    x1+ x2x3 = -1

    2) -2x1 + x2 = -3 6) -3x1 + 2x2x3 = 1-2x1 + x2 = 1 -x1 + 3x2 + 2x3 = 1

    x1+ x2x3 = 1

    3) -2x1 + x2 = -3 7) 10x1 + 7x2 = 7-6x1 + x2 = 9 -3x1 + 2x26x3 = 4

    5x1+ x2+ 5x3 = 6

    4) -2x1 + x2 = -3 8) 2x1 + 7x2+ x3 - 2x4 = 16-2x1 + x2 = -3,0001 x1 + 4x2 x3 2x4 = 5

    3x1- 10x22x3+ 5x4= -15

    Metode Eliminasi GaussSelain metode Invers matrik kita dapat menggunakan metode Eliminasi Gauss dalammenyelesaikan sistem persamaan linier Pada pembahasan kita kali ini, metode EliminasiGauss didekati dengan menggunakan sifat khusus dari matrik gauss.

    Untuk lebih jelasnya perhatikan ilistrasi matematis dibawah ini :

    a11x1 + a12x2 + a13x3 + + a1nxn = c1 .. pers :G.1a21x1 + a22x2 + a23x3 + + a2nxn = c2 .. pers :G.2

    =

    =

    =

    an1x1 + an2x2 + an3x3 + + annxn = cn .. pers :G.3

    dimana :a11, a12, a13, an1 danan2, an3, an4, ann, sedangkan x1, x2, x3, , xn adalah variabel yangnilainya belum diketahui. Sistem persamaan aljabar linier dapat ditulis dalam bentuk matrik :

    [A] * [X] = [C]

    dengan [A] =

    a11 a12 a13 a1na21 a22 a23 a2n

    an1 an2 an3 ann

  • 8/13/2019 Analisa Numerik_Matlab

    21/30

    Panduan Praktikum Metode Numerik dengan Matlab

    21

    Matrik [A], disebut sebagai matrik koefisienPada bagian ini akan dibahas beberapa penyelesaian sistem dari persamaan tersebutsecara simultan sehingga nilai dari beberapa variabel tersebut dapat diketahi.

    Langkah 1Kita lakukan eliminasi maju yang bertujuan untuk membentuk matrik segitiga atas(UperMatrik) dari matrik yang diperlebar untuk untuk system persamaan yang akan diselesaikan.Langkah awal yang kita lakukan adalah mengeliminasi variabel x1dari persamaan kedua,kemudian ketiga hingga persamaan ke n. Kalikan persamaan baris pertama dasi contoh

    diatas dengan )(11

    21aa sehingga anda dapatkan persamaan:

    12

    11

    211

    11

    21212

    11

    21121 ....... c

    a

    axa

    a

    axa

    a

    axa nn .. pers G.4

    kurangkan persamaan G.4 dari persamaan G.2 agar diperoleh persamaan baru :

    1

    11

    21212

    11

    212212

    11

    2122 ....... c

    a

    acxa

    a

    aaxa

    a

    aa nn

    kita sederhanakan persamaan diatas, diperoleh :

    22222 '.'.....' cxaxa nn tanda aksen pada persamaan ini menandakan bahwa nilainya telah mengalami perubahan.Langkah langkah ini kita ulangi untuk persamaan ketiga keempat dan seterusnya. Misalkanpersamaan G.1 dikalikan dengan a31/a11dan hasilnya dikurangkan dari persamaan ketigasehingga menghasilkan system persamaan berikut :

    a11x1 + a12x2 + a13x3 + + a1nxn = c1 .... pers :G.4.aa22x2+ a23x3+ + a2nxn = c2 ..pers :G.4.ba32x2+ a33x3+ + a3nxn = c3 ..pers :G.4.c

    =

    =

    =

    an2x2 + an3x3 + + annxn = cn .. pers :G.4.d

    untuk langkah selanjutnya, persamaan G.1 disebut sebagai persamaan poros(pivot), dana11 sebagai koefisien poros. Proses pembagian seperti a12/a11 atau a31/a11 disebutnormalisasi. Pada proses normalisasi tersebut dapat saja terjadi pembagian dengannol(tidak terdefinisi), sehingga metode ini disebut dengan Eliminasi gauss NaifSekarang kita lanjutkan untuk mengeliminasi x2dari persamaan G.4b, maka persamaan inikita jadikan sebagai persamaan poros (pivot) sebagaimana pada langkah sebelumnya(langkah saat eliminasi x1) Yaitu dengan mengalikan persamaan G.4b dengan a32/a22 danmengurangkan hasilnya dengan dari persamaan G.4.c. Kemudian lakukan eliminasi yang

    x1 c1

    x2 c2[X] = ,[C] =

    xn cn

  • 8/13/2019 Analisa Numerik_Matlab

    22/30

    Panduan Praktikum Metode Numerik dengan Matlab

    22

    sama untuk persamaan keempat, kelima dan seterunya sehingga dihasilkan persamaansebagai berikut :

    a11x1 + a12x2 + a13x3 + + a1nxn = c1a22x2 + a23x3 + + a2nxn = c2

    a33x3+ + a3nxn = c3 = an3x3 + + annxn = cn

    Langkah eliminasi dapat diteruskan menggunakan persamaan lain dibawahnya sebagaipersamaan poros. langkah ini berakhir sampai pada persamaan ke(n-1), untukmengeliminasi variabel Xn-1dari persamaan ke-n. setelah hal ini selesai anda lakukan makaakan terbentuk suatu system persamaan matrik segitiga atas :

    a11x1 + a12x2 + a13x3 + + a1nxn = c1 G.5aa22x2 + a23x3 + + a2nxn = c2 G.5b

    a33x3+ + a3nxn = c3 G.5c =

    )1()1( nnnn

    nn cxa G.5d

    Setelah kita dapatkan matrik segitiga atas, maka kita dapat lakukan eliminasi mau untukmendapatkan nilai-nilai x1,x2 serta x3. Dari persamaan G.5d dengan mudah kita bisadapatkan nilai dari xn

    )1(

    )1(

    n

    nn

    n

    n

    na

    cx

    hasil ini kita subtitusikan ke persamaan ke (n-1) untuk memperoleh nilai x(n-1). Langkahsubtitusi ini dilanjutkan terus sampai persamaan ke-1 untuk memperoleh nilai x1. Secaraumum langkah subtitusi ini dapat dituliskan sebagai berikut :

    )1(

    1

    )1()1(

    1

    1

    iii

    n

    ij

    j

    i

    ij

    i

    a

    xac

    X

    Jika anda masih sulit memahami, perhatikan sekali lagi ilustrasi berikut ini :Misalkan kita mempunyai system persamaan dengan dimensi matrik adalah (3,3)

    3

    2

    1

    3

    2

    1

    333231

    232221

    131211

    c

    c

    c

    x

    x

    x

    aaa

    aaa

    aaa

    Jika matrik ini kita perlebar maka kita dapatkan matrik baru :

    3

    2

    1

    333231

    232221

    131211

    c

    c

    c

    aaa

    aaa

    aaa

    setelah kita lakukan langkah eliminasi maju akan dihasilkan matrik segitiga atas sebagaiberikut :

    3

    2

    1

    33

    2322

    131211

    "

    '

    "00

    ''0

    c

    c

    c

    a

    aa

    aaa

  • 8/13/2019 Analisa Numerik_Matlab

    23/30

    Panduan Praktikum Metode Numerik dengan Matlab

    23

    Langkah 2Kemudian kita lakukan subtitusi balik untuk mendapatkan nilai :

    "

    33

    "

    3

    3a

    cx

    22

    323

    "

    2

    2'

    .'

    a

    xacx

    11

    3132121

    3a

    xaxacx

    Untuk menyelesaikan permasalahan eliminasi gauss, secara komputasi coba anda kerjakanprogram latihan 4c, pada dasarnya program ini belum sempurna untuk itu lakukanpembenahan pada program sehingga masil matematis dan program terdapat kesamaan.

    LATIHAN 4C

    %Program Eliminasi Gauss dengan pertukaran baris%Matriks a ukuran [n, n] dimasukkan

    %Matriks b ukuran [1, n] dimasukkan

    [m, n] = size(a);

    for i = 1 : 1 : (n 1)

    g = eye (n, n);

    j = i

    while a(i, j) == 0

    c = a(j, :);

    d = b(j);

    a(j, :) = a(j+1, :);

    b(j) = b(j+1);

    a(j+1, :) = c;

    b(j+1) = d;end;

    for k = 1 :1 : n

    if i == k

    g(k, i) = a(k, i) / a(i, i);

    else

    g(k, i) = -a(k, i) / a(i, i);

    end;

    a = g * a;

    b = g * b;

    end;

    %Untuk melihat hasil akhir Eliminasi Gauss

    a %matriks segitiga atasb

    %Mencari solusi X1, X2, , Xn

    x = zeros (n, 1);

    for i = n : -1 : 1

    c = 0;

    for j = 1 : 1 :n

    if i ~= j

    c = c + ( a(i, j) * x (j));

  • 8/13/2019 Analisa Numerik_Matlab

    24/30

    Panduan Praktikum Metode Numerik dengan Matlab

    24

    end;

    end;

    x(i, 1) = (b(i) c) / a (i, i);

    end;

    %Menampilkan hasilnya

    x

    Jika sudah selesai simpan dengan nama file GAUSS.M. Setelah itu kerjakan pada promptMatlab :

    a = [ 1, 4, -1, 1; 2, 7, 1, -2; 1, 4, -1, 2; 3, -10, -2, 5]b = [2, 16, 1, -15]gauss

    Nilai x adalah solusi dari persamaan diatas

    TUGAS 5

    Pada tugas ini anda diharapkan lebih memahami penyelesaian persoalan numerik denganmetode matriks (terutama memahami logika numerik ke dalam logika pemrograman). Untuklebih memahami logika pemrograman di atas selesaikan permasalahan di bawah ini.

    1. Analisa Struktur

    Tentukan besarnya : F1, F2, F3, H2, V2, V3

    2. Elektronika Dasar

    Tentukan besarnya : i1, i2, i3

    V2

    H2

    V3

    F2

    F3

    F2

    1000 lb

    300

    900

    600

    1

    23

    R1=1

    R2=1

    R5=1

    R3=1

    R4=1

    V2=5V

    V1=5V

    + +

    i1 i3i2- -

  • 8/13/2019 Analisa Numerik_Matlab

    25/30

    Panduan Praktikum Metode Numerik dengan Matlab

    25

    Regresi Linier Dengn Metode Least Square

    Regresi ini sangat diperlukan untuk mencari kurva g(x) yang dapat memiliki titik dari hasil

    percobaan. Perhatikan gambar berikut :

    Dengan Metode Leaast Square Regresi Linier (orde 1) diperoleh :

    xbybxn

    yn

    a ii 11

    dan

    22

    ii

    iiii

    xxn

    yxyxnb

    dimana :

    n = jumlah data percobaan

    Sehingga diperoleh persamaan linierisasi :

    g(x) = a + bx

    Agar lebih mudah untuk mengembangkan logika kita ke regresi yang lebih besar hal

    tersebut dapat dibentuk dalam matrik :

    ixn

    2

    i

    i

    x

    x

    2

    1

    a

    a=

    ii

    i

    yx

    y

    dimana:

    a1= a

    a2= b

    Untuk menentukan a1dan a2, setelah ketemu bentuk matrik, dapat digunakan bentuk

    metode invers atau metode matriks Gauss

    f x

    x

    g(x)

  • 8/13/2019 Analisa Numerik_Matlab

    26/30

    Panduan Praktikum Metode Numerik dengan Matlab

    26

    LATIHAN 4D

    Program

    % Masukkan data pada matriks [dat] dengan ukuran [n, 2]% dat1 sebagai harga x dan dat2 sebagai harga x dan dat2 sebagai harga y

    [n,m] = size (data)

    x = sum (dat(:,1)); % x = x

    y = sum (dat(:,2)); % y = y x2 = dat (:,1) *. dat (:,1); % x2 = [x12]

    sx2 = sum (x2);

    xy = data (:,1) *. dat (:,2);

    sxy = sum (xy);

    a = [n,x ; x, sx2];

    b = [y,sxy];gauss

    a = x(1)

    b = x(2)

    k = zeros (n,1);

    for i = 1 : 1 : n

    h(i) = a + (b* dat (I,1))

    end;

    % Untuk menggambar

    hor = dat (:,1)';

    ver = dat (:,2)';

    hasil = h';

    plot (hor, ver, '0',hor, hasil);

    Sebagai data gunakan data percobaan berikut :

    x 0 1 2 3 4 5

    y 0 20 60 68 77 110

    Regrasi Orde 2

    Untuk Regresi Orde 2 matriks yang digunakan dibentuk sebagai berikut :

    2

    i

    i

    x

    x

    n

    3

    2

    i

    i

    i

    x

    x

    i

    ii

    i

    yx

    yx

    y

    2

    1

    g(x) = a0+ a1 x + a2 x2

  • 8/13/2019 Analisa Numerik_Matlab

    27/30

    Panduan Praktikum Metode Numerik dengan Matlab

    27

    LATIHAN 4E

    % Program Regresi Polinomial orde 2

    % Masukkan data pada matriks [dat}

    [n,m] = size (dat); % n jumlah data

    x = zeros (n,4); % 4 asalnya dari 2* orde regresi

    y = zeros (n,4);

    A = zeros (1,5); % 5 asalnya dari (2*orde reg) + 1

    B = zeros (1,3); % 3 asalnya dari orde regresi + 1

    a = zeros (3,3);

    % Membuat matriks Xi, Xi2,Xi3,Xi4pada matriks X

    % Matriks matriks Yi, XiYi, Xi2Yi pada matris Y

    for i = 1 : 1 : n

    for j = 1:1:4

    X (i,j) = dat (i,1)^j;

    end;

    for j = 0 : 1 : 2

    A(1,i+1) = (dat (i,1)^j)* dat (I,2)

    end;

    end;

    % membuat matriks A = 432 ,,, XiXiXiXin % membuat matriks B = YiXiXiYiYi 2,,

    A(1,1) = n;

    for i=1:1:4

    A(1,i+1) = sum(X(:,i);

    end;

    for i=1:1:3

    B(1,i) = sum(Y(:I));

    end;

    % membentuk matriks untuk penyelesaian garis

    for =1:1:3

    a(i,:) = (1,i:1:(i+2));

    end;

    b = B';

    n = bar;

    gauss;

  • 8/13/2019 Analisa Numerik_Matlab

    28/30

    Panduan Praktikum Metode Numerik dengan Matlab

    28

    % menggambar grafik data dan hasil regresi orde 2

    % koefisien hasil regresi ada pada matriks X

    [m,n] = size(X);

    Y = zeros (3,1);

    Z = zeros (1,bar);

    % mencari data untuk plot dari hasil regresi yang disimpan

    % pada matriks z

    for i=1:1:bar

    for j = 0:1:2

    Y(j+1,1) = X(j+1,1) * (dat(i,1)^j);

    end;

    z(1,i) = sum (Y(:,1));

    end;

    % membuat grafik antara data sebenarnya dengan data hasil

    % regresi

    hor = dat(:,1)';

    ver = dat(:,2)';

    plot (hor,ver,'0',hor,Z);

    grid;

    Modifikasi program diatas sehingga program yang anda buat merupakan program yang

    fleksibel (orde) regresi dapat ditentukan oleh programer tanpa mengubah program. Sebagaipetunjuk orde regresi tentukan sebagai masukan. Dimensi masing-masing matriks sesuai

    dengan orde regresi, begitu juga perintah/statement forend.

    Bandingkan program yang anda buat dengan program di bawah ini:

    X = []

    Y = []

    koef = polyfit (X,Y,1)

    f = polyval (polyfit (X,Y,1),X);

    plot(X,Y,'r0',X,f,'b-');

  • 8/13/2019 Analisa Numerik_Matlab

    29/30

    Panduan Praktikum Metode Numerik dengan Matlab

    29

    BAB VMetode Runge-Kutta

    Metode yang paling populer untuk integrasi sebuah persamaan differensial adalah Runge-Kutta. Metode Runge-Kutta menggunakan pendekatan deret Taylor. Di dalam Matlab

    tersedia fungsi Runge-Kutta menggunakan perintah orde 2,3,4, dan 5. Yaitu orde 2,3 danorde 4,5. Sebuah massa pegas:

    02

    2

    kxdt

    dxb

    dt

    xdm

    m

    kxx

    m

    bx

    kxxbxm

    0

    Persamaan diatas dapat diubah :

    12

    211

    xx

    xm

    kx

    m

    bx

    Dengan

    21

    21

    2

    xx

    xx

    xx

    LATIHAN 5A

    23),('

    y

    exyxgy

    x

    LATIHAN 5BProgram:

    function xdot = maspeg(t,x)m = 0,5; b = 0,5:k = 3xdot = zeros(2,1);

    xdot (1) = );2(*)1(* xm

    k

    xm

    b

    xdot (2) = x(1);

    Untuk interval 0 20t dengan orde 23

    to= 0; tf= 20;xo= [0 0,25];

    m

    Pegas(k)

    Massa (m)beban

  • 8/13/2019 Analisa Numerik_Matlab

    30/30