Vous êtes sur la page 1sur 10

Praktikum 5

1. Penyelesaian Persamaan Non Linier Metode Newton Raphson


A. Listing Program
%Program Newton Raphson
clear all; close all;
clc;
disp('Penyelesaian Persamaan Non Linear');
disp('==========================================');
f=inline('x^2-x-6','x');
df=inline('2*x-1','x');
% Mulai proses newton raphson
xa = input ('nilai tebakan awal = ');
tol = input ('nilai toleransi error = ');
n=0;
disp('==========================================');
disp('
1
xa
error');
disp('==========================================');
while (abs(f(xa))> tol)
n=n+1;
xa=xa-f(xa)/df(xa); % Proses mencari akar persamaan
e=abs(f(xa));
fprintf('%12.6f %12.6f %12.6f\n',n,xa,e);
end

B. Hasil
Penyelesaian Persamaan Non Linear
==========================================
nilai tebakan awal = 1
nilai toleransi error = 0.00001
==========================================
1

xa

error

==========================================
1.000000

7.000000

36.000000

2.000000

4.230769

7.668639

3.000000

3.203013

1.056282

4.000000

3.007624

0.038177

5.000000

3.000012

0.000058

6.000000

3.000000

0.000000

Paket IV (Pertemuan Ke-3)


1. Iterasi Sederhana
A. Listing Program
%Program Iterasi Sederhana
clear all
clc;
disp('Program Metode Iterasi Sederhana');
disp('================================');
x0 = input ('nilai tebakan awal = ');
e = input ('nilai toleransi error = ');
disp('================================');
disp('
1
x
N
');
disp('================================');
%Perulangan
i=1;
for (i = 1 : 10)
xr =(18-6*x0+3*x0^2-x0^4)^0.25; %g(x)
fx = xr^4-xr^3-3*xr^2+6*xr-18; %F(x)
N = abs (xr - x0); %
x0 = xr;
fprintf('%3.0f %12.6f %12.6f\n',1,x0,N);
i=i+1;
if N > e
continue ;
else
break
end
end
disp('================================');
fprintf('Akarnya Adalah = %10.8f\n',x0);
%Cetak akar

B. Hasil
Program Metode Iterasi Sederhana
================================
nilai tebakan awal = 1
nilai toleransi error = 0.001
================================
1

================================
1

1.934336

0.934336

1.379259

0.555078

1.853899

0.474640

1.522622

0.331277

1.797721

0.275099

1.594537

0.203184

1.760034

0.165498

1.634482

0.125552

1.735439

0.100957

1.657736

0.077703

================================
Akarnya Adalah = 1.65773585

2. Invers Matriks
A. Listing Program
clear all
clc
disp('Invers Matriks')
disp('==============')
%Penyusunan Matriks AA
AA=[2 1 1
1 2 -1
3 -1 1];
BB=[12 3 11]
CC= inv(AA)*BB';
disp(' ')
disp('Nilai X, Y, Z')
disp('-------------')
x=CC(1)
y=CC(2)
z=CC(3)

B. Hasil
Invers Matriks
==============
BB =
12

Nilai X, Y, Z
-------------

11

x=
3.0000
y=
2.0000
z=
4.0000

Paket III
1. Regulafalsi

%Program Regula Falsi


clear; close all;
clc;
disp('Persamaan Non Linier Metode Regulafalsi')
disp('=======================================')
f=inline('(5*x^(3/2))+(x)-1','x');
xa = input('Berikan terkaan awal 1 :');
xb = input('Berikan terkaan awal 2 :');
tol=1e-6;
nmax=20;
n=0;
%inisialisasi no iterasi
fa = f(xa);
fb = f(xb);
xc=0;
%inisialisasi untuk xc
while abs(f(xc))>tol &n<nmax
n=n+1;
xc = xa - (xb-xa)/(fb-fa)*fa;
fc = f(xc);
xb = xc;
fb = fc;
fprintf('%i
%f
%f\n',n,xc,fc);
if (fa*fb > 0)
fprintf('Terkaan awal tdk mengurung, Ulangi!!');
break;
end;
%fa = f(xa);
%fb = f(xb);
end

hasil
Persamaan Non Linier Metode Regulafalsi
=======================================
Berikan terkaan awal 1 :1
Berikan terkaan awal 2 :0
1
0.166667
-0.493126
2
0.241476
-0.165214
3
0.265738
-0.049324
4
0.272911
-0.014234
5
0.274975
-0.004068
6
0.275564
-0.001159
7
0.275732
-0.000330
8
0.275780
-0.000094
9
0.275794
-0.000027
10
0.275797
-0.000008

11
12

0.275799
0.275799
2. Elimgauss

clear all
clc
A=[2 3 -1
3 2 1
1 4 2];
B=[20 20 15]';
n=3;
x=elimgauss(A,B,n);
disp(' ')
disp('Hasil perhitungan Eliminasi Gauss')
disp('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
x1=x(1)
x2=x(2)
x3=x(3)

Hasil
Hasil perhitungan Eliminasi Gauss
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x1 =
5
x2 =
3
x3 =
-1

-0.000002
-0.000001

3. Metode Simpson
a. Listing
clear;
clc;
disp('Program Integrasi Numerik Metode Simpson');
disp('========================================');
f=inline('x^2*((2*x^3)+1)^(0.5)','x');
a=input('Tentukan Batas Bawah (a)= ');
b=input('Tentukan Batas Atas (b)= ');
n=input('Tentukan Pembagi (n)= ');
hasil_eksak=f(b)-f(a);
if(n<2)
fprintf('Jumlah Pembagi >=. Ulangi!!!');
break;
end;
if(mod(n,2)~=0)
n=n+1;
end;
h=(b-a)/n;
sum=f(a)+f(b);
fak=2;
for i=1:n-1
x=a+i*h;
if(fak==2)
fak=4;
else
fak=2;
end
sum=sum+fak*f(x);
end
hasil_num=h/3*sum;
error=abs(hasil_eksak-hasil_num);
fprintf('hasil numerik =%f, error=%f',hasil_num,error)

Hasil
Program Integrasi Numerik Metode Simpson
========================================
Tentukan Batas Bawah (a)= 0
Tentukan Batas Atas (b)= 1
Tentukan Pembagi (n)= 2
hasil numerik =0.475014, error=1.257037>>

4. Interpolasi satu dimensi


clear;
clc;
disp('program interpolasi untuk linier');
disp('================================');
x=input('Konsentrasi yang diperlukan= ');
x1=input('(x1) Konsentrasi diketahui yang lebih rendah= ');
x2=input('(x2) Konsentrasi diketahui yang lebih tinggi= ');
y1=input('Densitas (x1)= ');
y2=input('Densitas (x2)= ');
y=((y2-y1)/(x2-x1))*(x-x1)+y1;
disp(['nilai Densitas konsentrasi yang diperlukan = ', num2str(y)]);

Hasil
program interpolasi untuk linier
================================
Konsentrasi yang diperlukan= 85
(x1) Konsentrasi diketahui yang lebih rendah= 80
(x2) Konsentrasi diketahui yang lebih tinggi= 90
Densitas (x1)= 1.065
Densitas (x2)= 1.061
nilai Densitas konsentrasi yang diperlukan = 1.063
5. Fminsearch
Main Program
% Hidrogenasi Etilen menjadi Etana
% Reaksi Hidrogenasi Etilen menjadi Etana
% H2 + C2H4 --> C2H6
% Regresi non Linear
%
kPePh
% rA = ------------------%
1 + KaPea + KePe
% Menghitung nilai k, Ka, dan Ke
clear all;
clc;
global ra Pe Ph Pea n
% Data - data percobaan
ra = [1.04 3.13 5.21 3.82 4.19 2.391 3.867 2.199 0.75]; %Kecepatan
reaksi(mol/kg kat.detik)
Pe = [1 1 1 3 5 0.5 0.5 0.5 0.5];
Pea = [1 1 1 1 1 1 0.5 3 5];
Ph = [1 3 5 3 3 3 5 3 1];
% Jumlah data
n = 9;
% Tebakan awal k, Ka, Ke masing - masing
xo = [1 1 1];
% Minimasi di sub program F66

disp 'Harga k, Ka, dan Ke hasil minimasi';


fminsearch('F66',xo)

sub Program
function f=F66(x)
%
Program ini berisi fungsi untuk menghitung SEE dari persatuan kecepatan
%
reaksi sebagai fungsi konstanta yang ingin dicari
%
x[1] = k; x(2) = Ke; x(3) = Ka
% Data - data
global ra Pe Ph Pea n
% Minimasi SSE
f = 0;
for i=1:n;
f=f+(ra(i)-(x(1)*Pe(i)*Ph(i))/(1+x(3)*Pea(i)+x(2)*Pe(i)))^2;
end

Hasil

6. Differensiasi NUmeri Selisih Tengahan

Main program
clear all;
clc;
xi = 2;
h = 0.01;
xip = xi+h;
xim = xi-h;
fxip = dif01(xip);
fxim = dif01(xim);
ydot = (fxip-fxim)/(2*h);
hdotpus = dif01(xi)

sub program
function yhs1 = dif01(x)
%persamaan
yhs1 = (x.^3)+(2*x.^2)+(10*x)-20;

Hasil

hdotpus =

16