praktikum fiskom ii

41
Praktikum Fisika Komputasi 1 Uraian deret Taylor disekitar xo dinyatakan dengan f(x) yaitu : n n x x n x f x f ) ( ! ) ( ) ( 0 0 ) ( dimana, 0 ) ( 0 ) ( x x n n n dx f d x f ) ( ) ( 0 0 ) 0 ( x f x f jika x 0 = 0 maka persamaan tersebut menjadi deret Mac Laurin yaitu : n n x n f x f ! ) 0 ( ) ( ) ( dimana, 0 ) ( ) 0 ( x n n n dx f d f ) 0 ( ) 0 ( ) 0 ( f f Praktikum : 1)Deret MacLaurin dari fungsi sinus yaitu : ... ! 5 ! 3 ) sin( 5 3 x x x x Program komputer dari fungsi sinus tersebut jika dinyatakan dalam bahasa Visual C++ adalah : //********************************************************* // Menghitung fungsi sinus dengan deret MacLaurin // Compiler : Visual C++ //********************************************************* #include <iostream.h> #include <math.h> void main() { PRAKTIKUM MINGGU 1 Deret Taylor

Upload: tengku-musri

Post on 24-Nov-2015

57 views

Category:

Documents


9 download

TRANSCRIPT

  • Praktikum Fisika Komputasi

    1

    Uraian deret Taylor disekitar xo dinyatakan dengan f(x) yaitu :

    nn

    xxn

    xfxf )(

    !

    )()( 0

    0

    )(

    dimana,

    0

    )( 0)(

    xxn

    nn

    dx

    fdxf

    )()( 00)0( xfxf

    jika x0 = 0 maka persamaan tersebut menjadi deret Mac Laurin yaitu :

    nn

    xn

    fxf

    !

    )0()(

    )(

    dimana,

    0)( )0( xn

    nn

    dx

    fdf

    )0()0()0( ff

    Praktikum :

    1)Deret MacLaurin dari fungsi sinus yaitu :

    ...!5!3

    )sin(53

    xx

    xx

    Program komputer dari fungsi sinus tersebut jika dinyatakan dalam bahasa Visual C++

    adalah :

    //*********************************************************

    // Menghitung fungsi sinus dengan deret MacLaurin

    // Compiler : Visual C++

    //*********************************************************

    #include

    #include

    void main()

    {

    PRAKTIKUM MINGGU 1

    DDeerreett TTaayylloorr

  • Praktikum Fisika Komputasi

    2

    double eps=1e-5;

    double x,sinx,pem,pen,s,del;

    int i,j,m,k,tanda;

    cout > x;

    x=x/57.3;

    cout

  • Praktikum Fisika Komputasi

    3

    cout

  • Praktikum Fisika Komputasi

    4

    2.1 Metode Newton-Rapshon

    Penentuan akar-akar suatu persamaan dapat dicari dengan memakai rumus iterasi

    Newton Rapshon yang diturunkan dari uraian deret Taylor. Jika hanya dilibatkan sampai

    suku dengan turunan pertama maka akan didapatkan iterasi Newton-Rapshon orde-1

    yaitu:

    )(

    )('1

    n

    nnn

    xf

    xfxx

    sedangkan jika kita melibatkan sampai suku dengan turunan kedua maka akan

    menghasilkan iterasi Newton Rapshon orde-2 :

    )(2

    )()()(

    )(

    '

    ''

    '

    1

    n

    nn

    n

    nnn

    xf

    xfxfxf

    xfxx

    Praktikum :

    1) Program komputer iterasi Newton-Rapshon orde 1, dimana persamaan yang dicari

    akarnya adalah :

    453911)( 23 xxxxf

    //**********************************************************************************

    // Menghitung Akar dari Fungsi dengan Metode Newton Rapshon Orde 1

    // Iterasi dibatasi hanya sampai 15 kali iterasi

    // Compiler : Visual C++

    //**********************************************************************************

    #include

    #include //header untuk fungsi fabs()

    #include //header untuk widht,setiosflags,...

    void main()

    {

    double y[100];

    double x,fx,dx;

    int n;

    PRAKTIKUM MINGGU 2

    AAkkaarr--aakkaarr ddaarrii PPeerrssaammaaaann

  • Praktikum Fisika Komputasi

    5

    cout

  • Praktikum Fisika Komputasi

    6

    #include

    void main()

    {

    double eps=1e-5; //konstanta (epsilon)

    double y[100];

    double x,fx,dx,selisih;

    int n;

    cout

  • Praktikum Fisika Komputasi

    7

    #include

    #include

    #include

    void main()

    {

    double eps=1e-5;

    double y[100];

    double x,fx,d1,d2,pen,selisih;

    int n;

    cout

  • Praktikum Fisika Komputasi

    8

    }

    Latihan :

    1) Buatlah program komputer untuk menghitung persoalan gas ideal. Dimana 1 mole gas

    ideal yang suhunya 3000 K volumenya diperbesar pada suhu tetap. Berapa liter volume

    gas tersebut ketika tekanannya 15 atmosfir (tetapan gas universal 0,0823 l.atm/mole0 K).

    Petunjuk :

    pV = nRT

    Dimana, n=1 mole, R=0.0823 l.atm/mole0K, dan T=300

    0K. Sehingga :

    p = 24.69/V

    untuk menentukan berapa volume gas pada saat tekanannya 15 atmosfir maka persamaan

    tersebut akan menjadi :

    p = 24.69/V -15

    Atau jika p disubstitusi menjadi y dan V menjadi x maka :

    y = 24.69/x 15

    Dengan menggunakan iterasi Newton-Rapshon maka akan dapat ditentukan solusinya.

    Buatlah program komputer dari masalah ini.

    2) Buatlah program komputer untuk masalah difraksi pada celah. Dimana suatu celah

    dengan lebar 0.4 mm disinari dengan cahaya dengan panjang gelombang 5900 A. Pola

    difraksi yang terjadi ditangkap oleh sebuah layar yang jaraknya 70 cm dari celah tsb.

    Hitung jarak dari tengah-tengah terang pusat sampai intensitas cahaya tinggal nya.

    Petunjuk :

    Pola difraksi pada celah dinyatakan dengan :

    2

    2

    0

    SinII

    dimana, I0 intensitas cahaya yang datang dan sin2

    1kb . Jika kita mensubstitusikan

    I/I0 menjadi y dan menjadi x maka persamaan tersebut akan menjadi

    2

    2sin

    x

    xy

    untuk mendapatkan nilai dimana I/I0 = 0.5 maka persamaan tersebut diubah menjadi :

    5.0sin

    2

    2

    x

    xy

    Dengan memakai iterasi Newton-Rapshon maka solusi persamaan ini akan dapat dicari.

    Buatlah programnya!.

  • Praktikum Fisika Komputasi

    9

    2.2 Pembagian Sintetik

    Penentuan nilai dan turunan dari suatu persamaan (Polinom) dapat ditentukan

    dengan cara Pembagian Sintetik. Misalkan polinom orde-n dinyatakan dalam bentuk

    persamaan seperti berikut ini :

    ...)( 322

    2

    1

    1

    n

    n

    n

    n

    n

    n

    n

    n xaxaxaxaxf

    misal n=3 maka didapatkan polinom orde-3 :

    322

    2

    1

    1)(

    n

    n

    n

    n

    n

    n

    n

    n xaxaxaxaxf

    Untuk mencari nilai fungsi dan turunannya pada suatu nilai x tertentu maka dapat

    ditentukan dengan Pembagian Sintetik. Adapun caranya adalah :

    321 nnnn aaaax

    )()()( 21 xbxbxb nnn

    321 nnnn bbbb

    dimana,

    nn ab

    xbab nnn 11

    xbab nnn 122

    xbab nnn 233

    Nilai 3nb merupakan nilai dari fungsi f(x) pada x yang bersangkutan. Sedangkan untuk

    menentukan nilai dari turunan dari fungsi f(x) tersebut adalah dengan meneruskan

    pembagian sintetik dimana nilai 321 ,,, nnnn aaaa diganti dengan nilai 21, , nnn bbb .

    21 nnn bbbx

    )()( 1xcxc nn

    21 nnn ccc

    dimana,

    nn bc

    xcbc nnn 11

    xcbc nnn 122

    +

    +

  • Praktikum Fisika Komputasi

    10

    Nilai dari 2nc merupakan nilai turunan dari persamaan f(x) pada x yang bersangkutan.

    Sebagai salah satu contoh misalkan kita memiliki persamaan polinom orde 3 yaitu :

    453911)( 23 xxxxf

    Jika kita ingin mencari nilai persamaan dan turunannya pada x=2 dengan Pembagian

    Sintetik maka hasilnya adalah :

    2 1 -11 39 -45

    2 -18 42

    1 -9 21 -3

    2 1 -9 21

    2 14

    1 -7 7

    Jadi didapatkan nilai f(x) pada x=2 adalah 3, sedangkan nilai turunannya adalah 7.

    Tugas selanjutnya adalah bagaimana kita membuat program komputer dari

    Pembagian Sintetik ini. Adapun implementasi dari program komputer untuk metode

    Pembagian Sintetik ini dinyatakan seperti berikut ini :

    //*************************************************************

    //Menentukan nilai fungsi dan turunan dengan Metode

    //pembagian Sintetik

    //Compiler : Visual C++

    //*************************************************************

    #include

    #include

    void pemsin(double a[100],int n,double x,double b[100]);

    void main()

    {

    double a[100];

    double b[100];

    double c[100];

    double x;

    int i,orde;

    cout orde;

    for (i=orde; i>=0; i--)

    {

    cout

  • Praktikum Fisika Komputasi

    11

    }

    cout

  • Praktikum Fisika Komputasi

    12

    }

    else

    {

    cout

  • Praktikum Fisika Komputasi

    13

    double b[100];

    double c[100];

    double y[100];

    double x,fx,dx;

    int i,n,orde;

    cout orde;

    for (i=orde; i>=0; i--)

    {

    cout

  • Praktikum Fisika Komputasi

    14

    1) Buatlah program komputer untuk menyelesaikan masalah gerak peluru. Dimana sebuah

    peluru ditembakkan dengan kecepatan awal V0 = 100 m/s dan sudut elevasi = 450. Per

    cepatan grafitasi g = 9,8 m/dt 2 .Tentukan berapa jauh peluru akan melayang di udara.

    Petunjuk :

    Persamaan lintasan peluru dinyatakan dengan :

    xxv

    gy )(tan

    )cos(2

    2

    2

    0

    atau bisa ditulis menjadi polinom orde-2 yaitu :

    xxay 22

    dimana,

    132

    0

    2 10.1)cos(2

    mv

    ga

    1tan1 a

    00 a

    Dengan memakai iterasi Newton-Rapshon yang dikombinasikan dengan metode

    pembagian Sintetik maka solusi permasalahan diatas akan dapat dicari. Buat program

    komputernya.

  • Praktikum Fisika Komputasi

    15

    IIIIII IINNTTEEGGRRAALL DDAANN TTUURRUUNNAANN

    3.1 INTEGRAL

    Nilai Integral I dari suatu fungsi f(x) menyatakan luas bidang dibawah fungsi f(x)

    antara x=a dan x=b atau ditulis :

    b

    a

    dxxfI )(

    Ada beberapa metode yang dapat dipakai untuk menghitung integral diantaranya : metode

    persegi panjang, metode trapesium, metode Simpson, metode Romberg dll. Berikut ini

    akan dijelaskan beberapa metode tersebut.

    3.1.1 Metode Persegi Panjang

    Dalam metode ini luas bidang dibawah kurva f(x) antara x = a dan x = b dapat

    dicari dengan membagi bidang tersebut menjadi n buah pita yang berbentuk persegi

    panjang, yang panjangnya f(xi) dan lebarnya x , sehingga

    luas masing-masing pita dapat dinyatakan :

    xxfL ii )(

    Karena antara x = a dan x = b terdapat n buah pita maka luas seluruhnya menjadi :

    n

    i

    xxifL1

    )(

    3.1.2 Metode Trapesium

    f(x)

    a b

    y

    x

    Gambar 3.1 Metode Persegi Panjang

    Pita ke-1

    Pita ke-n

    Pita ke-i

    x

    PRAKTIKUM MINGGU 3

    IInntteeggrraall ddaann TTuurruunnaann

  • Praktikum Fisika Komputasi

    16

    Dalam metode trapesium ini luas bidang di bawah fungsi f(x) antara x = a dan x =

    b dapat dicari dengan membagi bidang antara x = a dan x = b menjadi n buah pita yang

    berbentuk trapesium yang masing-masing lebarnya x seperti diperlihatkan dalam

    gambar 3.2 .

    Dari gambar 3.2 maka luas pita ke-i adalah :

    )]()([2

    11 iii xfxfxA

    Sehingga untuk n buah pita maka luas seluruhnya menjadi :

    )]()([2

    1...)]()([

    2

    1)]()([

    2

    113221 nn xfxfxxfxfxxfxfxA

    karena f(x1) = f(a) dan f(xn+1) = f(b) maka persamaan tersebut menjadi :

    )]()(2...)(2)(2)(2)([2

    1432 bfxfxfxfxfafxA n

    PRAKTIKUM :

    1) Membuat program komputer untuk menghitung integral dengan metode Trapesium.

    Dimana fungsi yang akan dicari integralnya adalah :

    f(x) = 6 6x5

    Adapun program komputernya adalah seperti berikut ini :

    //*******************************************************

    //Menghitung integral dengan metode Trapesium

    //Compiler : Visual C++

    //*******************************************************

    f(x)

    a b

    y

    x

    Gambar 3.2 Metode Trapesium

    x

    xi xi+1

    f(xi) f(xi+1)

    Pita ke-i

    Pita ke-1 Pita ke-n

  • Praktikum Fisika Komputasi

    17

    #include

    #include

    #include

    void main()

    {

    double eps=1e-5;

    double trap[100];

    double x,x1,x2,delt,delx,pita,fx;

    int i;

    cout >x1;

    cout >x2;

    cout

  • Praktikum Fisika Komputasi

    18

    cout

  • Praktikum Fisika Komputasi

    19

    2) Coba buat program komputer untuk menghitung integral dari fungsi :

    f(x) = 1/x

    Coba eksekusi program tersebut dengan batas-batas integrasi adalah x=0.01 dan x=0.09.

    Jika programnya benar maka anda akan mendapatkan harga integrasi = 2.19723

    3.1.3 Metode Simpson

    Jika pada metode Persegi panjang dan Trapesium kita menggunakan kurva yang

    berbentuk garis lurus maka pada metode Simpson kita akan memakai kurva yang

    berbentuk parabola atau polinom orde dua :

    f(x) = a2x2 + a1x + a0

    Untuk menurunkan rumus integrasi maka dimisalkan xi+1 ditempatkan di x = 0, xi

    ditempatkan di x = -x dan xi+2 di x = x. Sehingga nilai integral di bawah kurva f(x)

    yaitu :

    dxaxaxaA

    x

    x

    i

    )( 012

    21

    selanjutnya dengan penurunan secara matematik akan didapatkan bahwa :

    )]()(4([3

    1211 iiii xfxfxfxA

    Maka luas semua pasangan pita adalah :

    )]()(4([3

    1321 xfxfxfxA

    ...)]()(4([3

    1543 xfxfxfx

    )]()(4([3

    112 nnn xfxfxfx

    atau

    ...)(4)(4)(4)([3

    18621 xfxfxfxfxA

    )](...)(2)(2)(2 753 nxfxfxfxf

    PRAKTIKUM :

    1) Membuat program komputer untuk menghitung integral dengan metode Simpson.

    Dimana fungsi yang akan dicari integralnya adalah :

    f(x) = 6 6x5

    Adapun program komputernya adalah seperti berikut ini :

  • Praktikum Fisika Komputasi

    20

    //*******************************************************

    //Menghitung integral dengan metode Simpson

    //Compiler : Visual C++

    //*******************************************************

    #include

    #include

    #include

    void main()

    {

    double eps=1e-5;

    double simp[100];

    double x,x1,x2,delt,delx,pita,fx;

    int i,j;

    cout >x1;

    cout >x2;

    cout

  • Praktikum Fisika Komputasi

    21

    simp[i]=simp[i]+4*fx;

    if (x>x1 && x

  • Praktikum Fisika Komputasi

    22

    3.2 TURUNAN

    Uraian deret Taylor di sekitar x dinyatakan dengan f(x+h) dan f(x-h). Dimana

    masing-masing dinyatakan dengan persamaan :

    ...)(6

    1)(

    2

    1)()()( '''3''2' xfhxfhxhfxfhxf

    ...)(6

    1)(

    2

    1)()()( '''3''2' xfhxfhxhfxfhxf

    Jika kita mengambil selisih antara kedua persamaan tersebut maka akan didapatkan :

    ...)(6

    1

    2

    )()()( '''2'

    xfh

    h

    hxfhxfxf

    jika kita mengambil h yang sangat kecil maka suku-suku dengan h pangkat 2 atau lebih

    bisa diabaikan. Sehingga akan didapatkan persamaan Turunan Pertama dari suatu fungsi

    f(x) yaitu :

    h

    hxfhxfxf

    2

    )()()('

    Untuk mendapatkan Turunan Kedua dari fungsi f(x) maka kita menjumlahkan kedua

    persamaan f(x+h) dan f(x-h). Sehingga didapatkan persamaan yaitu :

    ...)(12

    1)()(2)()( 2

    2

    ''

    xfhh

    hxfxfhxfxf iv

    Bila h sangat kecil maka suku dengan h pangkat 2 atau lebih bisa diabaikan. Sehingga

    akan didapatkan persamaan Turunan Kedua dari f(x) yaitu :

    2

    '' )()(2)()(h

    hxfxfhxfxf

    Kedua metode untuk mencari turunan diatas disebut dengan metode Beda Sentral.

    PRAKTIKUM :

    1) Membuat program komputer untuk menghitung Turunan Pertama dari fungsi. Dimana

    fungsi yang dicari turunannya adalah :

    PRAKTIKUM MINGGU 4

    IInntteeggrraall ddaann TTuurruunnaann ((llaannjjuuttaann))

  • Praktikum Fisika Komputasi

    23

    f(x) = x2 5x

    Adapun implementasi program komputernya adalah seperti berikut ini :

    //*********************************************************************************** //Menghitung Turunan pertama suatu fungsi dengan metode beda sentral //compiler : Visual C++ //*********************************************************************************** #include #include #include void main() { double eps=1e-5; double z[10]; double fx,del,dx,zz,x,y,h; int i,n; cout >y; cout

  • Praktikum Fisika Komputasi

    24

    Coba jalankan (eksekusi) program tersebut. Jika anda masukkan nilai x =1 maka akan

    didapatkan hasil turunan pertama adalah 3. Cobalah untuk memasukkan nilai x yang lain

    dan lihat hasilnya. Bandingkan dengan perhitungan secara manual.

    2) Membuat program komputer untuk menghitung Turunan kedua dari fungsi. Dimana

    fungsi yang dicari turunannya adalah :

    f(x) = x3 5x

    Adapun implementasi program komputernya adalah seperti berikut ini :

    //****************************************************************** //Menghitung Turunan pertama suatu fungsi dengan metode beda sentral //compiler : Visual C++ //****************************************************************** #include #include #include void main() { double eps=1e-5; double z[10]; double fx,del,dx,zz,x,y,h; int i,n; cout >y; cout

  • Praktikum Fisika Komputasi

    25

    z[i]=fx; } dx=(z[1]-2*z[2]+z[3])/(h*h); del=zz-dx; cout.width(15); cout

  • Praktikum Fisika Komputasi

    26

    4.1 Solusi Persamaan Diferensial dengan syarat awal

    Misalkan kita memiliki persamaan diferensial seperti di bawah ini :

    02

    2

    kmdt

    dxr

    dt

    xdm

    secara analisis maka solusi dari persamaan tersebut adalah :

    kmruntuktAex t 4,)sin( 0

    kmruntuketBBx t 4,)( 21

    kmruntukeCeCxtt

    4,21 21

    Sedangkan secara numerik kita tidak akan mendapatkan solusi seperti diatas, tetapi kita

    akan mencari solusi pada suatu waktu tertentu. Sehingga diperlukan suatu syarat awal

    agar solusi dapat dicari yaitu misalkan pada waktu mula-mula solusi melalui suatu titik

    tertentu. Syarat semacam ini diperlukan karena solusi persamaan diferensial dapat

    berbeda-beda karena adanya suatu konstanta. Andaikan kita mempunyai persamaan

    diferensial :

    54)(' xxf

    solusi secara analisis matematik dari persamaan ini adalah :

    54)(

    xdx

    xdf

    Cxxdxxxf 5254)(2

    dapat dilihat bahwa solusinya tidak hanya satu tetapi tergantung dari nilai C. Sedangkan

    solusi secara numerik kita menentukan suatu syarat awal terhadap fungsi tersebut

    misalnya bahwa solusi persamaan tersebut melalui titik (1,1). Sehingga akan didapatkan

    hanya sebuah solusi yaitu :

    652)( 2 xxxf

    misal kita masukkan nilai x = 2 maka solusi dari persamaan diferensial tersebut adalah :

    12)2( f

    Jadi dapat disimpulkan bahwa solusi dari persamaan diferensial 54)(' xxf di x = 2

    dan syarat awal (1,1) adalah 12. Ada beberapa metode yang dapat diterapkan untuk

    mencari solusi dari persamaan diferensial yaitu : metode Euler, Runge-Kutta dll.

    4.2 Metode Euler

    PRAKTIKUM MINGGU 5

    PPeerrssaammaaaann DDiiffeerreennssiiaall BBiiaassaa

  • Praktikum Fisika Komputasi

    27

    Solusi persamaan diferensial biasa dengan syarat awal dapat dilakukan dengan

    meninjau uraian deret Taylor dari f(x+h) disekitar x yaitu :

    hxfxfhxf )()()( '

    dimana persamaan diferensial biasa dapat ditulis menjadi :

    ),()(' yxfxf

    sehingga persamaan diatas menjadi :

    hyxfxfhxf ),()()(

    persamaan ini bisa ditulis dalam bentuk iterasi :

    hyxfyy ii ),(1

    persamaan ini sering disebut dengan iterasi Euler orde 1. Jika kita menentukan syarat

    awal adalah titik (x0,y0) dan kita menginginkan solusi persamaan diferensial di titik xp

    maka kita harus membagi selang antara x0 dan xp menjadi n buah pita yang masing-

    masing lebarnya h sehingga diperoleh titik-titik x0, x1, x2, xp.

    Dari syarat awal yaitu titik (x0,y0) maka dengan rumus iterasi Euler kita dapat

    menentukan y1 dengan absis x1 = x0 + h. Selanjutnya dari titik (x1,y1) kita dapat

    menentukan y2 dengan absis x2 = x1 + h. Demikian seterusnya sampai didapatkan yp yang

    absisnya adalah xp. Dengan demikian nilai yp merupakan solusi dari persamaan diferensial

    pada titik xp.

    PRAKTIKUM :

    1) Membuat program komputer untuk mencari solusi persamaan diferensial biasa dengan

    iterasi Euler orde-1. Dimana bentuk persamaan diferensial yang dicari solusinya adalah :

    f (x) = 4x+5

    Adapun implementasi program komputernya adalah seperti berikut ini :

    //**************************************************************************** //Menghitung Persamaan Diferensial dengan metode Euler orde satu //compiler : Visual C++ //**************************************************************************** #include #include #include void main() { double eps=1e-3; double x,x1,x2,y,y1,y2,fx,delx,delt,pita; int n; cout >x1>>y1; cout >x2; cout

  • Praktikum Fisika Komputasi

    28

    while (fabs(delt)>eps) //iterasi selama delt lebih besar dari eps { n+=1; pita=pow(2,n); //2^n delx=(x2-x1)/pita; x=x1; y=y1; while (x

  • Praktikum Fisika Komputasi

    29

    1) Membuat program komputer untuk mencari solusi persamaan diferensial biasa dengan

    iterasi Euler orde-2. Dimana bentuk persamaan diferensial yang dicari solusinya adalah :

    f (x) = 4x+5

    Adapun implementasi program komputernya adalah seperti berikut ini :

    //*************************************************************************** //Menghitung Persamaan Difrensial dengan metode Euler orde dua //compiler : Visual C++ //*************************************************************************** #include #include #include void main() { double eps=1e-3; double x,x1,x2,y,y1,y2,fx,dx,delx,delt,pita; int n; cout >x1>>y1; cout >x2; cout

  • Praktikum Fisika Komputasi

    30

    } cout

  • Praktikum Fisika Komputasi

    31

    4.3 Metode Runge-Kutta

    Persamaan umum iterasi Runge-Kutta adalah :

    ),,(1 hyxfyy nnnn

    dimana

    mmnn kakakahyxf ...),,( 2211

    nn xxh 1

    dengan

    ),(1 nn yxhfk

    11112 ,( kqyhpxhfk nn

    ),( 22212123 kqkqyhpxhfk nn

    .........

    11,122,111,11 ...,( mmmmmnmnm kqkqkqyhpxhfk

    4.3.1 Runge-Kutta orde 1

    Jika diambil m = 1 maka akan menghasilkan iterasi Runge-Kutta orde 1 yaitu :

    111 kayy nn

    ),(11 nnnn yxhfayy 1

    karena 11),,( kahyxf nn dan ),(1 nn yxhfk . Dengan mengambil 11 a maka persamaan

    ini sama dengan persamaan iterasi Euler orde-1.

    4.3.1 Runge-Kutta orde 2

    Jika diambil m = 2 maka akan memberikan iterasi Runge-Kutta orde 2 yaitu :

    22111 kakayy nn

    dimana

    ),(1 nn yxhfk

    ),( 11112 kqyhpxhfk nn

    jadi dalam hal ini kita perlu menentukan nilai-nilai dari 11121 dan,,, qpaa . Dengan

    melakukan perhitungan matematis maka didapatkan nilai dari konstanta tersebut seperti

    dijelaskan di bawah ini.

    a) Metode Heun

    PRAKTIKUM MINGGU 6

    PPeerrssaammaaaann DDiiffeerreennssiiaall BBiiaassaa ((llaannjjuuttaann))

  • Praktikum Fisika Komputasi

    32

    Dalam metode ini diambil nilai dari konstanta :

    21

    21 aa

    1111 qp

    Sehingga persamaan iterasi Runge-Kutta orde 2 menjadi :

    221

    121

    1 kkyy nn

    dimana

    ),(1 nn yxhfk

    ),( 12 kyhxhfk nn

    b) Metode Raltson

    Dalam metode ini diambil nilai dari konstanta :

    31

    1 a 32

    2 a

    43

    111 qp

    Sehingga persamaan iterasi Runge-Kutta orde 2 menjadi :

    )2( 2131

    1 kkyy nn

    dimana

    ),(1 nn yxhfk

    ),( 143

    43

    2 kyhxhfk nn

    c) Metode Poligon

    Dalam metode ini diambil nilai dari konstanta :

    01 a 12 a

    21

    111 qp

    Sehingga persamaan iterasi Runge-Kutta orde 2 menjadi :

    21 kyy nn

    dimana

    ),(1 nn yxhfk

    ),( 121

    21

    2 kyhxhfk nn

    PRAKTIKUM :

    1) Membuat program komputer untuk mencari solusi persamaan diferensial biasa dengan

    iterasi Runge-Kutta orde 2 berdasarkan metode Heun. Dimana bentuk persamaan

    diferensial yang dicari solusinya adalah :

    f (x) = 4x+5

  • Praktikum Fisika Komputasi

    33

    Adapun implementasi program komputernya adalah seperti berikut ini :

    //******************************************************************************************** //Menghitung Persamaan Diferensial dengan metode Runge-kutta orde dua-Heun //compiler : Visual C++ //******************************************************************************************** #include #include #include void main() { double eps=1e-3; double k[4]; double xx,x,x1,x2,yy,y,y1,y2,fx,delx,delt,pita; int i,n; cout >x1>>y1; cout >x2; cout

  • Praktikum Fisika Komputasi

    34

    else { delt=yy-y2; cout.width(15); cout

  • Praktikum Fisika Komputasi

    35

    xx=x1; yy=y1; while (xx

  • Praktikum Fisika Komputasi

    36

    3) Membuat program komputer untuk mencari solusi persamaan diferensial biasa dengan

    iterasi Runge-Kutta orde 2 berdasarkan metode Poligon. Dimana bentuk persamaan

    diferensial yang dicari solusinya adalah :

    f (x) = 4x+5

    Adapun implementasi program komputernya adalah seperti berikut ini :

    //****************************************************************** //Menghitung Persamaan Diferensial dengan metode Runge-kutta orde dua-Poligon //compiler : Visual C++ //****************************************************************** #include #include #include void main() { double eps=1e-3; double k[4]; double xx,x,x1,x2,yy,y,y1,y2,fx,delx,delt,pita; int i,n; cout >x1>>y1; cout >x2; cout

  • Praktikum Fisika Komputasi

    37

    if (n==1) { cout.width(15); cout

  • Praktikum Fisika Komputasi

    38

    //************************************************************************************** #include #include #include void main() { double eps=1e-3; double k[4]; double xx,x,x1,x2,yy,y,y1,y2,fx,delx,delt,pita; int i,n; cout >x1>>y1; cout >x2; cout

  • Praktikum Fisika Komputasi

    39

    { cout.width(15); cout

  • Praktikum Fisika Komputasi

    40

    //compiler : Visual C++ //****************************************************************** #include #include #include void main() { double eps=1e-3; double k[4]; double xx,x,x1,x2,yy,y,y1,y2,fx,delx,delt,pita; int i,n; cout >x1>>y1; cout >x2; cout

  • Praktikum Fisika Komputasi

    41

    cout.width(15); cout