You are on page 1of 1

% solusi persoalan distribusi panas, FDM Elliptik

Program 1 clear all % Modul FDM-2


% Metode Euler: benda jatuh clc % distribusi panas bergantung waktu 1D
% penentuan interval waktu h dan parameter lainnya n=9; % FDM Forward-Difference
clear all
A=[ 4 -1 0 -1 0 0 0 0 0; -1 4 -1 0 -1 0 0 0 0; clear all
clc
format long 0 -1 4 0 0 -1 0 0 0; -1 0 0 4 -1 0 -1 0 0; clc
r=0; % batas awal interval 0 -1 0 -1 4 -1 0 -1 0; 0 0 -1 0 -1 4 0 0 -1; format long;
s=15; %batas akhir interval 0 0 0 -1 0 0 4 -1 0; 0 0 0 0 -1 0 -1 4 -1; n=9;
h=0.01; % interval waktu iterasi 0 0 0 0 0 -1 0 -1 4]; alpha=1.0;
N=(s-r)/h; % nilai step-size b=[25; 50; 150; 0; 0; 50; 0; 0; 25]; k=0.0005;
g = 9.8; %percepatan gravitasi %&&&&&& Proses Eliminasi Gauss &&&&&&&&&&&&&&&&&&&&&&& h=0.1;
a0=g; % percepatan mula-mula
%====== Menggabungkan Vektor b kedalam matrik A ====== % menghitung lambda
v0=0; % kecepatan awal
t0=0.0; % waktu awal %====== sehingga terbentuk matrik Augmentasi. ======== lambda=(alpha^2)*k/(h^2);
% perubahan t sesuai step-size h adalah: for i=1:n % Kondisi awal
for i=1:1:N A(i,n+1)=b(i,1); for i=1:n
t(i)=r+(i*h); end suhu(i)=sin(pi*i*0.1);
end %---------Proses Triangularisasi----------- end
% solusinya: for j=1:(n-1) %Mengcopy kondisi awal ke w
v(1)=v0+h*fjb1(v0);
%----mulai proses pivot--- for i=1:n
%
for i=2:N if (A(j,j)==0) w0(i,1)=suhu(i);
k=i-1; for p=1:n+1 end
v(i)=v(k)+h*fjb1(v(k)); u=A(j,p); % menuliskan Matriks A
end v=A(j+1,p); A=[ (1-2*lambda) lambda 0 0 0 0 0 0 0;
%menampilkan hasil A(j+1,p)=u; lambda (1-2*lambda) lambda 0 0 0 0 0 0;
v
A(j,p)=v; 0 lambda (1-2*lambda) lambda 0 0 0 0 0 ;
plot(t,v);
xlabel('Waktu'); end 0 0 lambda (1-2*lambda) lambda 0 0 0 0;
ylabel('kecepatan'); end 0 0 0 lambda (1-2*lambda) lambda 0 0 0;
%fungsi untuk persamaan benda jatuh %----akhir proses pivot--- 0 0 0 0 lambda (1-2*lambda) lambda 0 0;
function a=fjb1(v) jj=j+1; 0 0 0 0 0 lambda (1-2*lambda) lambda 0 ;
g = 9.8; for i=jj:n 0 0 0 0 0 0 lambda (1-2*lambda) lambda ;
c = 0.046; m=A(i,j)/A(j,j); 0 0 0 0 0 0 0 lambda (1-2*lambda) ];
R = 0.0075;
for k=1:(n+1) iterasi=1000;
m = 0.0039;
rho = 1.2; A(i,k)=A(i,k)-(m*A(j,k)); for k=1:iterasi
a = g -(0.5*c*rho*pi*R.^2*v.^2)/m; end disp('perkalian matriks')
end %================================
end for i=1:n
%------------------------------------------- w(i,1)=0.0;
%------Proses Substitusi mundur------------- end
x(n,1)=A(n,n+1)/A(n,n); for i=1:n
for i=n-1:-1:1 for j=1:n
%script---1 Gelombang sinus S=0; w(i,1)=w(i,1)+A(i,j)*w0(j,1);
Fs = 150; % Sampling frequency for j=n:-1:i+1 end
t = 0:1/Fs:1; % Time vector of 1 second S=S+A(i,j)*x(j,1); end
f = 5; % Create a sine wave of f Hz end %===============================
x(i,1)=(A(i,n+1)-S)/A(i,i); w
A=1; %create amplitude
end w0=w;
x = A*sin(2*pi*t*f); %===== Menampilkan Vektor w ======== end
nfft = 1024; % Length of FFT w=x
% Take fft, padding with zeros so that length(X)
is equal to nfft
X = fft(x,nfft);
% FFT is symmetric, throw away second half %script---2 Gelombang cosinus %script---3 Gelombang kotak
X = X(1:nfft/2); Fs = 150; % Sampling frequency Fs = 150; % Sampling frequency
mx = abs(X); t = 0:1/Fs:1; % Time vector of 1 second t = 0:1/Fs:1; % Time vector of 1 second
% Frequency vector f = 5; % Create a sine wave of f Hz f = 5; % Create a sine wave of f Hz
f = (0:nfft/2-- -1)*Fs/nfft; A=1; %create amplitude A=1; %create amplitude
% Generate the plot, title and labels x = A*cos(2*pi*t*f); x = A*square(2*pi*t*f);
figure(1); nfft = 1024; % Length of FFT nfft = 1024; % Length of FFT
plot(t,x); % Take fft, padding with zeros so that length(X) is % Take fft, padding with zeros so that length(X) is
title('Sine Wave Signal'); equal to nfft equal to nfft
xlabel('Time (s)'); X = fft(x,nfft); X = fft(x,nfft);
ylabel('Amplitude'); % FFT is symmetric, throw away second half % FFT is symmetric, throw away second half
figure(2); X = X(1:nfft/2); X = X(1:nfft/2);
plot(f,mx); mx = abs(X); mx = abs(X);
title('Power Spectrum of a Sine Wave'); % Frequency vector % Frequency vector
xlabel('Frequency (Hz)'); f = (0:nfft/2-- -1)*Fs/nfft; f = (0:nfft/2-- -1)*Fs/nfft;
ylabel('Power'); % Generate the plot, title and labels % Generate the plot, title and labels
figure(1); figure(1);
plot(t,x); plot(t,x);
title('Sine Wave Signal'); title(Square Wave Signal');
xlabel('Time (s)'); xlabel('Time (s)');
ylabel('Amplitude'); ylabel('Amplitude');
figure(2); figure(2);
plot(f,mx); plot(f,mx);
title('Power Spectrum of a Sine Wave'); title('Power Spectrum of a Square Wave');
xlabel('Frequency (Hz)'); xlabel('Frequency (Hz)');
ylabel('Power'); ylabel('Power');

You might also like