You are on page 1of 13

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

Kasus 1 Sebuah pelat konduktor tipis berbentuk persegi dengan ukuran 3 x 3 cm. distribusi temperature dalam keadaan setimbangnya memenuhi persamaan sebagai berikut :

Dengan syarat batas kiri dan kanan berupa temperature konstan sebesar 500C dan 1000C berturut-turut. Sedangkan syarat batas untuk atas dan bawah terjadi kehilangan kalor yang diungkapkan dengan persamaan :

a. Bila pada permukaan bidang atas dan bawah dari pelat tersebut terinsulasi, jelaskan bagaimana solusi numeric dari kasus ini dengan menggunakan metode beda hingga ( finite defference ), gunakan N=3 dengan x=y.

Jawab Gambar pelat dari kasus di atas:

Gambar 1. Batas-batas temperature pada pelat konduktor Syarat batas : ) ( ( )

( (

) )

Pada kasus di atas termasuk dalam kasus 2 dimensi dalam koordinat kartesian, maka persamaannya dapat diuraikan menjadi :

Kemudian bentuk kasus PDP di atas, didiskritisasi menjadi :

Dengan grid yang kita gunakan ialah bujur sangkar atau x=y, maka :

Bila indeksnya kita sorting secara ascending, sehingga : ( ) Persamaan (a) merupakan sistem persamaan linier berupa iterasi berindeks i dan j. j=1, i=1 ( j=1, i=2 ( j=1,i=3 ( j=2, i=1 ) ( ) ) ( ) ) ( )

( j=2,i=2 (

) )

j=2,i=3

( j=3,i=1 ( j=3,i=2 ( j=3,i=3 ( ) ) ( ) ( )

( ) Maka, bila sembilan persamaan di atas ditulis dalam matriks sebagai berikut :

][

Karena yang kita gunakan n=3 dan L=3 cm, maka x=y dapat dicari dengan rumus :

Sehingga dengan memasukkan nilai x=y=0,75 cm pada didapat:

matriks di atas

][

b. Jelaskan pula metode yang digunakan untuk mencari solusi persamaan liniernya !! Jawab Untuk mencari solusi dari sistem persamaan linier di atas, 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 , k=1,2,3,. bi = elemen matriks konstanta (mx1) pada saat i, i=1,2,3,.m uj = elemen matriks variabel (mx1) pada saat j=1,2,3,m Listing Program
#include <stdio.h> #include <math.h> #include <conio.h> float u1(float a,float b){ float H; H=(65.9375+a+b)/3; return(H); } float u2(float a,float b,float c){ float H; H=(15.9375+a+b+c)/3; return(H); } float u3(float a,float b){ float H; H=(115.9375+a+b)/3; return(H); } float u4(float a,float b,float c){

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

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

while(delta1<delta0 && delta2<delta0 && delta3<delta0 && delta3<delta0 && delta4<delta0 && delta5<delta0 && delta6<delta0 && delta7 < delta0 && delta8< delta0 && delta9<delta0); getch(); }

Tampilan Program

maka didapat : ( )

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, maka syarat batas yang berlaku adalah : ( ) ( )

jika nilai c=1, 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.1

Jawab Gambar pipa dari kasus di atas :

Pada kasus di atas termasuk dalam kasus 1 dimensi dalam koordinat kartesian, maka persamaannya dapat diuraikan menjadi :

Kemudian bentuk kasus PDP di atas, didiskritisasi menjadi :

Dengan menetapkan bahwa x=t, maka : secara eksplisit : ( ) dari syarat batas diketahui bahwa : ( ( ) )

dengan n=

( (

) )

iterasi : k=0, i=1

k=0, i=2

k=0, i=9

maka matriksnya persamaan eksplisit di atas pada t=0 sekon sebagai berikut :

[ ]

diketahui bahwa : maka :

) dengan xi = i*x dan p0=0.9


( ( ( ( ( ) ) ) ) )

( ( ( (

) ) ) )]

listing program:
#include <stdio.h> #include <math.h> #include <conio.h> #include<stdlib.h> main(){ int i,j,n,k; float p1[100][1000], A[100][100]; float c[100],p0[100]; printf("masukkan ordo matriks :"); scanf("%d",&n); printf("p1=Ap0+c\n"); printf("matriks A\n"); for(i=1 ; i<=n; i++){ for( j=1; j<=n ; j++){ printf("A[%d][%d]=",i,j); scanf("%f",&A[i][j]); }printf("\n");

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

Tampilan program:

maka didapat :
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

You might also like