Analisa : Berdasarkan program diatas yang dilakukan terlebih dahulu adalah Menentukan batasan panjang pelat logam (L) yang akan dianalisis secara komputasi dan Membuat Skema grid lines. Setelah diketahui bentuk persamaan matriksnya, diselesaikan dengan metode iterasi untuk mengetahui nilai temperatur pada titik-titik yang dicari. Syarat batas bagian kanan dan bagian kiri plat digunakan syarat batas Neuman yang menyatakan adanya nilai suhu awal untuk bagian kiri dan kanan plat tersrebut. Semakin besar N maka semakin teliti data tersebut.
2. Selesaikan secara numerik untuk kasus heat equation dengan menggunakan skema implisit.
Program :
/* TUGAS 2 FISKOM */
#include <stdio.h> #include <stdlib.h> #include <conio.h> main() { int i, k, L, N, iterasi; float u[50][50], alfa, g, dt, dx, tmax;
Berdasarkan program diatas dapat dianalisa bahwa pada program skema implisit ini tidak berbeda jauh dengan skema eksplisit secara struktur program, perbedaan terjadi hanya pada perumusan di bagian perhitungan. Untuk skema eksplisit digunakan .
3. Selesaikan secara numerik untuk kasus heat equation dengan menggunakan skema crank nicholson. Listing Program : /* TUGAS 2 FISKOM */
#include <stdio.h> #include <stdlib.h> #include <conio.h> main() { int i, k, L, N, iterasi; float u[50][50], alfa, g, dt, dx, tmax, theta;
FILE *simpan; simpan = fopen("data-CN.dat", "w");
L = 5; //Panjang batang N = 5; //Jumlah grid (pilih N kurang dari atau sama dengan L)
/* BENTUK DISKRIT SUMBU-X */ dx = L/N;
/* THETA rentangnya adalah dari 0 sampai 1. jika theta = 0, maka bentuk diskrit kembali menjadi skema implisit, jika theta = 1, maka bentuk diskrit kembali menjadi skema eksplisit, pada Skema Crank-Nicolson ini kita ambil theta = 0.5 */ theta = 0.5;
/* alfa, dt */ alfa = 0.00008418; // dt = (dx*dx)/(2*alfa); /* dipakai jika theta diambil sama dengan 1 (Skema eksplisit) */ dt = 0.5;
/* GAMMA g */ g = ((alfa*alfa*dt)/(dx*dx));
/* T max */ tmax = 5; // tmax adalah time step maksimum
/* SYARAT AWAL */ for(i=0; i<=N; i++) { u[i][0] = i; // u(x,0) = x }
Analisa : Tidak berbeda jauh dengan skema eksplisit dan implisit dari hasil yang dapat nilainya hampir memiliki nilai yang sama. Sebenarnya perbedaan akan terlihat jika alfa tidak bernilai terlalu kecil. Atau angka dibelakang koma diperbanyak.
Perhitungan Analitik : Program : /* TUGAS 2 FISKOM */ #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <math.h>
main() { int n, j, k, N, tmax; float u[50][50], deret[50][50], deretan[50][50], L, dt, alfa, pi, dx;
FILE *simpan; simpan = fopen("data-an.dat", "w");
pi = 3.14;
/* Bagian yang dapat diubah-ubah */ L = 5; // Panjang Batang N = 5; // Banyaknya Grid alfa = 0.00008418; // alfa alumunium tmax = 5; dt = 0.5; //diskritisasi waktu dx = 1; //jarak antar grid
/* TAMPILAN PROGRAM DALAM BENTUK DATA */ for(j=1; j<=N; j++) { printf(" x = %d; ", j); for(k=1; k<=tmax; k++) { printf(" %.6f ", u[j][k]); fprintf(simpan," %.2f", u[j][k]); } printf("\n"); fprintf(simpan, "\n"); } printf("\n\n\n");
getch(); return 0; }
Tampilan :
Analisa : Dari perhitungan analitik dapat terlihat hasil tidak terlalu berbeda jauh dengan perhitungan numerik.
Plot Grafik 0 1 2 3 4 5 6 1 2 3 4 5 t e m p e r a t u r
x grafik analitik t = 1 t = 2 t = 3 t = 4 t = 5 0 1 2 3 4 5 6 1 2 3 4 5 t e m p e r a t u r
x grafik eksplisit t = 1 t = 2 t = 3 t = 4 t = 5
0 1 2 3 4 5 6 1 2 3 4 5 t e m p e r a t u r
x implisit t = 1 t = 2 t = 3 t = 4 t = 5 0 1 2 3 4 5 6 1 2 3 4 5 t e m p e r a t u r
x crank-nicolson t = 1 t = 2 t = 3 t = 4 t = 5 Grafik eror ( selisih analitik dan numerik )
Eror eksplisit
Eror implisit
0 0.0005 0.001 0.0015 0.002 0.0025 1 2 3 4 5 t e m p e r a t u r
x eror eksplisit t = 1 t = 2 t = 3 t = 4 t = 5 0 0.0005 0.001 0.0015 0.002 0.0025 1 2 3 4 5 t e m p e r a t u r
x eror implisit t = 1 t = 2 t = 3 t = 4 t = 5
Eror crank-nicolson
Analisa Keseleruhan Grafik error : Dari Grafik plot error dapat dianlisa bahwa nilai error menuju nilai 0 atau bernilai konvergen. Semakin lama waktu dan semakin lebar ygrid yang dipakai erronya semakin mendekati nol. Nilai alfa juga berperan terhadap terjadinya nilai error jika di input nilai alfa yang lebih besar maka nilai errornya semakin terlihat. 0 0.0005 0.001 0.0015 0.002 0.0025 1 2 3 4 5 t e m p e r a t u r
x eror crank-nicolson t = 1 t = 2 t = 3 t = 4 t = 5
Dokumen Serupa dengan 172736759 Laporan Fisika Komputasi (1)