TUGAS FISIKA KOMPUTASI

“Solusi Numerik untuk Distribusi Temperatur pada Pelat konduktor
dan Distribusi Tekanan pada Pipa Organa“
Nama : Jaenudin (140310090026)

Halim Budiman (140310090060) Riyan Adiputra (140310090080) Kelas Dosen :B : Dr. Irwan Ary Dharmawan

Program Studi Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Padjadjaran 2012

Bila pada permukaan bidang atas dan bawah dari pelat tersebut terinsulasi. distribusi temperature dalam keadaan setimbangnya memenuhi persamaan sebagai berikut : Dengan syarat batas kiri dan kanan berupa temperature konstan sebesar 500C dan 1000C berturut-turut. Jawab Gambar pelat dari kasus di atas: Gambar 1. jelaskan bagaimana solusi numeric dari kasus ini dengan menggunakan metode beda hingga ( finite defference ). gunakan N=3 dengan Δx=Δy. Batas-batas temperature pada pelat konduktor Syarat batas : )  (  ( ) .Kasus 1 Sebuah pelat konduktor tipis berbentuk persegi dengan ukuran 3 x 3 cm. Sedangkan syarat batas untuk atas dan bawah terjadi kehilangan kalor yang diungkapkan dengan persamaan : a.

i=3 (  j=2. didiskritisasi menjadi : Dengan grid yang kita gunakan ialah bujur sangkar atau Δx=Δy. maka : Bila indeksnya kita sorting secara ascending. i=2 (  j=1.  j=1. maka persamaannya dapat diuraikan menjadi : Kemudian bentuk kasus PDP di atas. i=1 (  j=1. sehingga : ( ) Persamaan (a) merupakan sistem persamaan linier berupa iterasi berindeks i dan j.  ( ( ) ) Pada kasus di atas termasuk dalam kasus 2 dimensi dalam koordinat kartesian. i=1 ) ( ) ) ( ) ) ( ) (  j=2.i=2 ( ) ) .

i=3 (  j=3.i=2 (  j=3. bila sembilan persamaan di atas ditulis dalam matriks sebagai berikut : [ ][ ] [ ] Karena yang kita gunakan n=3 dan L=3 cm. j=2.i=1 (  j=3.i=3 ( ) ) ( ) ( ) ) ) ( ) Maka. maka Δx=Δy dapat dicari dengan rumus : Sehingga dengan memasukkan nilai Δx=Δy=0.75 cm pada didapat: matriks di atas .

float c){ . Jelaskan pula metode yang digunakan untuk mencari solusi persamaan liniernya !! Jawab Untuk mencari solusi dari sistem persamaan linier di atas.float b. k=1. return(H).2.….float b){ float H.float c){ float H.m uj = elemen matriks variabel (mx1) pada saat j=1.….3.2. H=(115. } float u4(float a. H=(65.9375+a+b)/3.h> float u1(float a.3.h> #include <conio.9375+a+b+c)/3. bi = elemen matriks konstanta (mx1) pada saat i.h> #include <math.float b. i=1.[ ][ ] [ ] b. return(H). } float u3(float a.…m Listing Program #include <stdio.9375+a+b)/3. return(H).float b){ float H. H=(15.3.2. kita dapat menggunakan metode iterasi Gauss-Seidel dengan rumusan sebagai berikut : ( ) ( ∑ ( ) ∑ ( ) ) Dengan : aii = elemen pada matriks koefisien pada saat i=j m = ordo matriks m x m k = iterasi ke-k . } float u2(float a.

&delta0). delta9.a9.delta7. float a1. u[4][0]=0.k.float b){ float H.m.float b. float u[9][9]. u[1][0]=u[1][1]. return(H). return(H).delta8. u[1][0]=0. H=(97. return(H).float b. . scanf("%f". } main(){ int i.8125+a+b+c)/4. return(H). } float u6(float a.a7.a6. u[3][0]=0. } float u8(float a.float b.delta6. u[5][0]=0. u[2][0]=0.4375+a+b)/3.u[4][0]).delta3. u[7][0]=0. H=(-2. return(H). u[9][0]=0.float c){ float H. return(H). H=(-21.a2. printf("input nilai terkecil <<1 : "). } float u5(float a. u[8][0]=0. } float u7(float a. k=1.delta2. delta1. float delta0.1875+a+b+c)/4. } float u9(float a.float c){ float H. H=(47.5625+a+b+c)/3.a5.float H.j.a4.delta4.float b){ float H.4375+a+b)/3. u[6][0]=0.1875+a+b+c)/4. float delta5.a8. H=(28.a3. do { u[1][1]=u1(u[2][0]. H=(28.float c){ float H. delta1=fabs(u[1][1]-u[1][0]).

printf("%f\t%f\t%f\n". u[8][1]=u8(u[5][0]. a7=u[7][1]. u[7][1]=u7(u[4][0]. u[5][1]=u5(u[2][0].u[5][0].u[3][0].u[5][0].a1. u[6][1]=u6(u[3][0]. u[4][0]=u[4][1]. u[5][0]=u[5][1]. printf("%f\t%f\t%f\n". u[8][0]=u[8][1]. delta9=fabs(u[9][1]-u[9][0]). delta7=fabs(u[7][1]-u[7][0]).a2. a9=u[9][1]. delta6=fabs(u[6][1]-u[6][0]).u[6][0]. u[4][1]=u4(u[1][0]. delta8=fabs(u[8][1]-u[8][0]).u[8][0]). printf("u7\tu8\tu9\n").a1=u[1][1]. printf("%f\t%f\t%f\n".a9). u[9][1]=u9(u[6][0]. a5=u[5][1]. delta4=fabs(u[4][1]-u[4][0]). delta5=fabs(u[5][1]-u[5][0]). delta2=fabs(u[2][1]-u[2][0]). } .u[7][0]). a8=u[8][1]. a6=u[6][1]. u[9][0]=u[9][1]. u[7][0]=u[7][1]. a3=u[3][1]. printf("u1\tu2\tu3\n"). u[3][1]=u3(u[2][0].u[7][0]. u[6][0]=u[6][1]. k++.a8. delta3=fabs(u[3][1]-u[3][0]). u[3][0]=u[3][1].u[8][0]).u[9][0]).a7. a4=u[4][1].a3).a5.u[9][0]). u[2][1]=u2(u[1][0].a6).u[6][0]). printf("u4\tu5\tu6\n").u[8][0]). a2=u[2][1]. u[2][0]=u[2][1].u[5][0]).a4.

getch(). } Tampilan Program maka didapat :          ( ) .while(delta1<delta0 && delta2<delta0 && delta3<delta0 && delta3<delta0 && delta4<delta0 && delta5<delta0 && delta6<delta0 && delta7 < delta0 && delta8< delta0 && delta9<delta0).

maka syarat batas yang berlaku adalah : ( ) ( ) jika nilai c=1.Kasus 2 Tekanan udara gelombang. ( ) dalam sebuah pipa organ dibentuk dengan persamaan dengan l ialah panjang pipa dan c adalah konstanta fisis. jika pipa terbuka. l=1 dengan nilai syarat awal diberikan oleh : ( ) ( ) ( ) tentukan nilai tekanan pada kasus pipa tertutup dengan nilai p0=0.9 dan gunakan Δx=Δt=0. maka persamaannya dapat diuraikan menjadi : .1 Jawab Gambar pipa dari kasus di atas : Pada kasus di atas termasuk dalam kasus 1 dimensi dalam koordinat kartesian.

i=9 . didiskritisasi menjadi : Dengan menetapkan bahwa Δx=Δt.Kemudian bentuk kasus PDP di atas. maka : secara eksplisit : ( ) dari syarat batas diketahui bahwa :   ( ( ) ) dengan n=   ( ( ) ) ( ) ( ) iterasi :  k=0. i=1  k=0. i=2 …  k=0.

n. i++){ for( j=1.&n).9 ( ( ( ( ( ) ) ) ) ) [ ] [ ] [ ( ( ( ( ) ) ) )] [ ] listing program: #include <stdio. . float p1[100][1000].i. printf("matriks A\n").h> main(){ int i. float c[100]. for(i=1 .&A[i][j]). }printf("\n"). j++){ printf("A[%d][%d]=".h> #include<stdlib.maka matriksnya persamaan eksplisit di atas pada t=0 sekon sebagai berikut : [ ] [ ] [ ] [ ] diketahui bahwa : maka : ( ) dengan xi = i*Δx dan p0=0. scanf("%f".h> #include <math. printf("masukkan ordo matriks :"). printf("p1=Ap0+c\n"). scanf("%d".j).h> #include <conio.j. i<=n.p0[100].k. j<=n . A[100][100].

i. i++){ printf("c[%d]=".j<=n.} system("cls").scanf("%f".i++){ for (j=1.j<=1.i++){ printf("%f\n". for(i=1 .i++){ for (j=1.i<=n. printf("p1[%d]=%f\n". } .} printf("matriks p0\n").p0[i]). didapat matriks p1 yaitu \n"). for (i=1.k++){ p1[i][j]=p1[i][j]+A[i][k]*p0[k].&c[i]).628). i<=n. } printf("matriks c\n").0f".i<=n. i<=n . printf("p0[%d]=%f\n".p1[i][j]). for(i=1. for(i=1.i<=n.k<=n. } printf(" maka p1=Ap0 + c. j++){ printf("%.} printf("matriks p0\n").i++){ printf("%f\n". i++){ p0[i]=cos(i*0. } printf("matriks c\n").A[i][j]).p0[i]).i. } printf("\n").j++){ p1[i][j]=0. printf("Matriks A\n").c[i]).i).}} getch(). for (i=1. for(k=1.} p1[i][j]=p1[i][j]+c[i].i<=n. for(i=1.

Tampilan program: maka didapat :          ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) .

Sign up to vote on this title
UsefulNot useful