3
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.
Penyelesaian
Kasus ini termasuk dalam kasus 2D dalam koordinat kartesian, persamaannya menjadi:
* x=y, maka :
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
(
)
(
][
Karena yang kita gunakan n=3 dan L=3 cm, maka x=y dapat dicari dengan rumus :
][
b. Jelaskan pula metode yang digunakan untuk mencari solusi persamaan liniernya!
Penyelesaian:
Untuk mencari solusi dari sistem persamaan linier di atas, kita dapat menggunakan metode
iterasi Gauss-Seidel
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>
float H;
#include <conio.h>
H=(-2.8125+a+b+c)/4;
return(H);
}
float u6(float a,float b,float c)
float H;
H=(65.9375+a+b)/3;
float H;
return(H);
H=(97.1875+a+b+c)/4;
return(H);
{
float H;
H=(15.9375+a+b+c)/3;
return(H);
float H;
H=(28.4375+a+b)/3;
return(H);
}
float u8(float a,float b,float c)
H=(115.9375+a+b)/3;
return(H);
float H;
H=(-21.5625+a+b+c)/3;
return(H);
}
float u9(float a,float b)
H=(47.1875+a+b+c)/4;
return(H);
float H;
H=(28.4375+a+b)/3;
return(H);
u[3][0]=u[3][1];
a3=u[3][1];
main(){
int i,j,m,k;
u[4][1]=u4(u[1][0],u[5][0],u[7][0]);
float a1,a2,a3,a4,a5,a6,a7,a8,a9;
delta4=fabs(u[4][1]-u[4][0]);
float u[9][9];
u[4][0]=u[4][1];
a4=u[4][1];
u[5][1]=u5(u[2][0],u[6][0],u[8][0]);
u[2][0]=0; u[7][0]=0;
delta5=fabs(u[5][1]-u[5][0]);
u[3][0]=0; u[8][0]=0;
u[5][0]=u[5][1];
u[4][0]=0; u[9][0]=0;
a5=u[5][1];
u[5][0]=0;
printf("Program mencari nilai U\n\n");
printf("\nMasukkan nilai terkecil (dx <<1 ): ");
scanf("%f",&delta0);
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];
k=1;
a6=u[6][1];
do {
u[7][1]=u7(u[4][0],u[8][0]);
u[1][1]=u1(u[2][0],u[4][0]);
delta7=fabs(u[7][1]-u[7][0]);
delta1=fabs(u[1][1]-u[1][0]);
u[7][0]=u[7][1];
u[1][0]=u[1][1];
a7=u[7][1];
a1=u[1][1];
u[8][1]=u8(u[5][0],u[7][0],u[9][0]);
u[2][1]=u2(u[1][0],u[3][0],u[5][0]);
delta8=fabs(u[8][1]-u[8][0]);
delta2=fabs(u[2][1]-u[2][0]);
u[8][0]=u[8][1];
u[2][0]=u[2][1];
a8=u[8][1];
a2=u[2][1];
u[9][1]=u9(u[6][0],u[8][0]);
u[3][1]=u3(u[2][0],u[6][0]);
delta9=fabs(u[9][1]-u[9][0]);
delta3=fabs(u[3][1]-u[3][0]);
u[9][0]=u[9][1];
a9=u[9][1];
}
while(delta1<delta0 && delta2<delta0 &&
delta3<delta0 && delta3<delta0
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");
getch();
printf("%f\t%f\t%f\n",a7,a8,a9);
k++;
Tampilan Program
u1 = u11 = 21,979166 C
u2 = u21 = 12,638888 C
u3 = u31 = 42,858795 C
u4 = u12 = 17,291666 C
u5 = u22 = 2,456597 C
o
o
o
o
u6 = u32 = 35,625725 C
u7 = u13 = 15,243055 C
u8 = u23 = -1,287616 C
u9 = u33 = 20,925203 C
Soal No.4
Tekanan udara (
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
Penyelesaian:
Gambar pipa untuk kasus di atas :
Pada kasus di atas termasuk dalam kasus 1 dimensi dalam koordinat kartesian, maka
persamaannya dapat diuraikan menjadi :
secara eksplisit :
( )
dengan n=
)
(
(
)
iterasi :
k=0, i=1
k=0, i=2
k=0, i=9
diketahui bahwa :
[ ]
(
(
(
(
)
)
)
)
)
)
)
)
)]
Listing program:
#include <stdio.h>
printf("p1=Ap0+c\n");
#include <math.h>
printf("matriks A\n");
#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);
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("matriks c\n");
printf("%f\n",c[i]);
}
printf(" maka p1=Ap0 + c, didapat
printf("c[%d]=",i);scanf("%f",&c[i]);}
system("cls");
for (j=1;j<=1;j++){
printf("Matriks A\n");
p1[i][j]=0;
for(i=1;i<=n;i++){
for(k=1;k<=n;k++){
p1[i][j]=p1[i][j]+A[i][k]*p0[k];}
printf("%.0f",A[i][j]);
p1[i][j]=p1[i][j]+c[i];
} printf("\n");}
printf("p1[%d]=%f\n",i,p1[i][j]);}}
printf("matriks p0\n");
getch();
for(i=1;i<=n;i++){
printf("%f\n",p0[i]);
Tampilan program: