%Program Bisection
%input Program
f=input('masukan fungsi (dalam x)= ');
a=input('masukan batas bawah (a)= ');
b=input('masukan batas atas (b)= ');
%menghitung dan menyeleksi harga f(a) dan f(b)
fa=subs(f,'x',a);
fb=subs(f,'x',b);
if fa*fb>0
error ('syarat f(a)*f(b)<0 tidak terpenuhi , ULANGI!!!')
return
end
n=input('masukan banyak interasi= ');
exact=input('masukan salah satu solusi eksak= ');
%Membuat Header Table Bisection
disp(' ')
disp(' METODE BAGIDUA ')
disp('=======================')
disp('i akar error ')
disp('=======================')
% Perulangan pada metode bisection
for i=1:n
xr=(a+b)/2; %menghitung akar dengan bisection
fxr=subs(f,'x',xr); %menghitung harga fungsi xr
if fxr*fa>0 %Evaluasi letakxr pada [a,b]
a=xr;
elseif fxr*fa<0
b=xr;
end
eror=abs(exact-xr); %menghitung error absolut
fprintf('%2.0f %5.5f %2.5f\n',i,xr,eror) %Mencetak bentuk tabel
end
%Membuat footer table bisection
disp('========================')
{----------------------------------------------------------------------------------------------------------}
%Program Fixed Point dengan Matlab Simbolik
%input program
g=input('Masukan fungsi g (dalam x)= ');
x0=input('Masukan nilai awal (x0)= ');
n=input('masukan banyak interasi= ');
exact=input('masukan salah satu solusi eksak= ');
%Membuat header fixed point
disp(' ')
disp(' fixed point ')
disp('=======================')
disp('i akar error ')
disp('=======================')
%Perulangan pada fixed point
for i=1:n
gx0=subs(g,'x',x0); % Menghitung nilai f(xi)
xr=gx0; % Menghitung akar dengan fixed point
eror=abs(exact-xr); % Menghitung error absolut
fprintf('%2.0f %5.5f %2.5f\n',i,xr,eror) %mencetak bentuk tabel
x0=xr; % Mengganti harga xi dengan xr
end
% Membuat footer table fixed point
disp('===========================')
{----------------------------------------------------------------------------------------------------------}
%Program Regular False /Posisi salah
%input Program
f=input('masukan fungsi (dalam x)= ');
a=input('masukan batas bawah (a)= ');
b=input('masukan batas atas (b)= ');
%menghitung dan menyeleksi harga f(a) dan f(b)
fa=subs(f,'x',a);
fb=subs(f,'x',b);
if fa*fb>0
error ('syarat f(a)*f(b)<0 tidak terpenuhi , ULANGI!!!')
return
end
n=input('masukan banyak interasi= ');
exact=input('masukan salah satu solusi eksak= ');
%Membuat Header Table reguler false
disp(' ')
disp(' METODE REGULAR FALSE ')
disp('=============================')
disp('i akar error ')
disp('=============================')
% Perulangan pada metode regular false
for i=1:n
xr=b-((fb*(a-b))/(fa-fb)); %menghitung akar dengan regular false
fxr=subs(f,'x',xr); %menghitung harga fungsi xr
if fxr*fa>0 %Evaluasi letakxr pada [a,b]
a=xr;
elseif fxr*fa<0
b=xr;
end
eror=abs(exact-xr); %menghitung error absolut
fprintf('%2.0f %5.5f %2.5f\n',i,xr,eror) %Mencetak bentuk tabel
end
%Membuat footer table reguler false
disp('========================')
{-----------------------------------------------------------------------------------------------------------}
%Program Newton dengan Matlab Simbolik
clc;
%input program
f=input('Masukan fungsi (dalam x)= ');
x0=input('Masukan nilai awal (x0)= ');
n=input('masukan banyak interasi= ');
exact=input('masukan salah satu solusi eksak= ');
%Membuat header Table Newton
disp(' ')
disp(' METODE NEWTON ')
disp('=======================')
disp('i akar error ')
disp('=======================')
%Perulangan pada Metode Newton
for i=1:n
fx0=subs(f,'x',x0); % Menghitung nilai f(xi)
fderx0=subs(diff(f),'x',x0); % Menghitung nilai f'(xi)
xr=x0-fx0/fderx0; % Menghitung akar dengan newton
eror=abs(exact-xr); % Menghitung error absolut
fprintf('%2.0f %5.5f 2.5f\n',i,xr,eror) %mencetak bentuk tabel
x0=xr; % Mengganti harga xi dengan xr
end
% Membuat footer table newton
disp('===========================')
{---------------------------------------------------------------------------------------------------------}
%Program Secant dengan matlab simbolik
%input program
f= input('Masukkan fungsi (dalam x)= ');
x0= input('Masukkan nilai awal (x0) = ');
x1= input('Masukkan nilai awal (x1)= ');
n=input('Masukkan banyak iterasi = ');
exact = input('Masukkan salah satu solusi eksak = ');
%Membuat header table Secant
disp(' ')
disp(' METODE SECANT ')
disp('==================')
disp('i akar error ')
disp('==================')
%perulangan pada metode secant
for i=1:n
fx0=subs(f,'x',x0); %menghitung nilai f(x0)
fx1=subs(f,'x',x1); % menghitung nilai f(x1)
xr=x1-fx1*(x1-x0)/(fx1-fx0); % menghitung akar dengan secant
eror=abs(exact-xr); % menghitung error absolut
fprintf('%2.0f %5.5f %2.5f\n',i,xr,eror) % mencetak bentuk tabel
x0=x1; % mengganti nilai x0 x1 dan x1 = xr
x1=xr;
end
%membuat footer table secant
disp('===================')
{----------------------------------------------------------------------------------------------------------}
Thank's to : Bapak MASDUKI S.Si , M.Si and Bapak IKHSAN DWI SETYONO, S.Pd.
{----------------------------------------------------------------------------------------------------------}
An area of knowledge, which includes the study of such topics as numbers, formulas and Education
No comments:
Post a Comment