Anda di halaman 1dari 12

PROGRAM MATLAB MATEMATIKA TEKNIK I

1. PD METODE SATU LANGKAH


Script
clear all;
clc;
disp('MAUL');
disp(' ');
disp('PROGRAM PD METODE SATU LANGKAH');
disp(' ');
syms x y;
f=input('masukkan persamaan = ');
xawal=input('masukan x awal = ');
xakhir=input('masukan x akhir = ');
delt=input('delta x = ');
yawal=input('harga y pada x awal = ');
for k=xawal:delt:(xakhir-delt);
fx=subs(f,x,xawal);
fy=subs(fx,y,yawal);
fprintf('%2.1f%12.4f%12.4f\n',xawal,yawal,fy);
y2=yawal+fy*delt;
yawal=y2;
xawal=xawal+delt;
end
fprintf('%2.1f%12.4f\n',xawal,yawal);
disp(' ');
disp(['nilai y pada x = ',num2str(xawal),' adalah ',num2str(yawal)]);

Contoh Soal (Materi Bu Supri M11)


Selesaikan PD dengan Metode Satu Langkah

dy dy
- dx = 0 → = 2x + y
2x+ y dx

Untuk x = 0 maka y= 1 → y(0) =1

x = 0,5 maka y=? → y(0,5)= 1

Δx = 0,1
Running
- Hasil Matlab
- Hasil Pembanding

2. PD METODE EULER
a. f(x,y) hanya mengandung x, contoh f(x,y) = x2+2x-2
Script
clear all;
clc;
syms x;
disp('MAUL');
disp(' ');
disp('Program PD METODE EULER untuk(dy/dx) yang mengandung x saja ');
disp(' ');
f=input('masukkan persamaan = ');
fi=int(f);
a=input('masukan x awal = ');
b=input('masukan x akhir = ');
h=input('delta x = ');
ya=input('harga y pada x awal = ');
y0=ya;
eksak=subs(fi,x,a);
eksak=eksak+ya;
eror=abs((eksak-y0)/y0)*100;
disp(' ');
disp(' x y eksak y perk %kesalahan ');
disp('---------------------------------------------------------');
fprintf('%4.1f%9.4f%9.4f%10.2f\n',a,eksak,y0,eror);
for k=a:h:(b-h)
ak=a+h;
f1=subs(f,x,a);
y1=y0+(f1*h);
a=ak;
eksak=subs(fi,x,ak);
eksak=eksak+ya;
eror=abs(100*((eksak-y1)/eksak));
y0=y1;
fprintf('%4.1f%9.4f%9.4f%10.2f\n',a,eksak,y0,eror);
end
disp([' pada x = ',num2str(a), ' nilai yeksak adalah ',num2str(eksak),' dan nilai y
perkiraan = ',num2str(y0),' dengan nilai eror(%)= ',num2str(eror)]);
Contoh Soal (Materi Bu Supri M11)

Selesaikan persamaan :
dy/dx = f (x,y) = - 2 x3 + 12 x2 – 20 x + 8,5 y(0)= 1
Dari x =0 sampai x=4 dengan panjang langkah
Δx = 0,5

Running
- Hasil Matlab

- Hasil Pembanding
b. f(x,y) mengandung x dan y, contoh f(x,y)=2x+y

Script
clear all;
clc;
syms x y;
disp('MAUL');
disp(' ');
disp('Program PD METODE EULER untuk(dy/dx) yang mengandung x dan y ');
disp(' ');
f=input('masukkan persamaan = ');
xa=input('masukan x awal = ');
b=input('masukan x akhir = ');
h=input('delta x = ');
ya=input('harga y pada x awal = ');
fi=int(f);
yek=ya;
yperk=ya;
eror=abs(100*(yek-yperk)/yek);
disp(' x yeksak yperk eror');
fprintf('%2.1f%13.4f%13.4f%10.4f\n',xa,yek,yperk,eror);
for k=xa:h:(b-h);
fperkx=subs(f,x,xa);
fperky=subs(fperkx,y,yperk);
yperk=yperk+fperky*h;
xa=xa+h;
fix=subs(fi,x,xa);
fiy=subs(fix,y,yek);
yek=fiy+ya;
eror=abs(100*(yek-yperk)/yek);
fprintf('%2.1f%13.4f%13.4f%10.4f\n',xa,yek,yperk,eror);
end

Contoh Soal (Tugas 1 Metode Euler)


Note : untuk metode euler dengan f(x,y) mengandung x dan y saya belum tahu pengerjaann yang benar
bagaimana, asumsi pengerjaan yang benar seperti diatas.
Running Matlab
3. PD METODE RUNGE-KUTTA ORDER 4
Script
clear all;
clc;
syms x y;
disp('MAUL');
disp(' ');
disp('PROGRAM PD METODE RUNGE-KUTTA ORDER 4');
disp(' ');
f=input('masukkan persamaan = ');
a=input('masukan x awal = ');
b=input('masukan x akhir = ');
h=input('delta x = ');
yawal=input('harga y pada x awal = ');
disp(' ');
disp(' x y k1 k2 k3 k4 yk2 yk3 yk4');
disp('____________________________________________________________');
for k=a:h:(b-h);
k1=subs(f,x,a);
k1a=subs(k1,y,yawal);
xk2=a+0.5*h;
yk2=yawal+0.5*k1a*h;
k2=subs(f,x,xk2);
k2a=subs(k2,y,yk2);
xk3=a+0.5*h;
yk3=yawal+0.5*k2a*h;
k3=subs(f,x,xk3);
k3a=subs(k3,y,yk3);
xk4=a+h;
yk4=yawal+k3a*h;
k4=subs(f,x,xk4);
k4a=subs(k4,y,yk4);
fprintf('%2.1f%7.3f%7.3f%7.3f%7.3f%7.3f%7.3f%7.3f
%7.3f\n',a,yawal,k1a,k2a,k3a,k4a,yk2,yk3,yk4);
yi1=yawal+(k1a+2*k2a+2*k3a+k4a)*h/6;
yawal=yi1;
a=a+h;
end
fprintf('%2.1f%7.3f\n',a,yawal);
disp(' ');
disp(['nilai y pada x = ',num2str(a), ' adalah ',num2str(yi1)]);

Contoh Soal (Materi Bu Supri M12)


Running
-Hasil Matlab

-Hasil Pembanding

4. PD SIMULTAN METODE SATU LANGKAH


Script
clear all;
clc;
syms x y z;
disp('MAUL');
disp(' ');
disp('PROGRAM PD SIMULTAN METODE SATU LANGKAH');
disp(' ');
f1=input('masukkan persamaan f1(dy/dx) = ');
f2=input('masukkan persamaan f2(dz/dx) = ');
xawal=input('masukan x awal = ');
xakhir=input('masukan x akhir = ');
delt=input('delta x = ');
yawal=input('harga y pada x awal = ');
zawal=input('harga z pada x awal = ');
disp(' ');
disp(' x y z f1 f2');
disp('_____________________________________________________________________');
for k=xawal:delt:(xakhir-delt);
f1x=subs(f1,x,xawal);
f1y=subs(f1x,y,yawal);
f1z=subs(f1y,z,zawal);
f2x=subs(f2,x,xawal);
f2y=subs(f2x,y,yawal);
f2z=subs(f2y,z,zawal);
fprintf('%2.1f%15.4f%15.4f%15.4f%15.4f\n',xawal,yawal,zawal,f1z,f2z);
xawal=xawal+delt;
yawal=yawal+f1z*delt;
zawal=zawal+f2z*delt;
end
fprintf('%2.1f%15.4f%15.4f\n',xawal,yawal,zawal);
disp(' ');
disp(['pada x = ',num2str(xawal),' nilai y = ',num2str(yawal),' dan nilai z =
',num2str(zawal)]);

Contoh Soal (Tugas 3 Bu Supri)


Selesaikan PD simultan di bawah dengan metode satu langkah
(dy/dx) = 3y – 4
(dz/dx) = 0,5x - 0.2z + 8
Ketika x = 0 ; y = 5 dan z = 10
Ketika x = 3 ; maka y = ? dan z = ?
Δx = 0,5
Running
-Hasil Matlab

-Hasil Pembanding

*ralat, nilai z pada hasil pembanding seharusnya 29,9668


5. PD SIMULTAN METODE RUNGE-KUTTA ORDER 4
Script
clear all;
clc;
syms x y z;
disp('MAUL');
disp(' ');
disp('PROGRAM PD SIMULTAN METODE RUNGE-KUTTA ORDER 4');
disp(' ');
f1=input('masukkan persamaan f1(dy/dx) = ');
f2=input('masukkan persamaan f2(dz/dx) = ');
xawal=input('masukan x awal = ');
xakhir=input('masukan x akhir = ');
delt=input('delta x = ');
yawal=input('harga y pada x awal = ');
zawal=input('harga z pada x awal = ');
disp(' ');
disp(' x y z k1 L1 k2 L2
k3 L3 k4 L4 yk2 zk2 yk3 zk3 yk4
zk4');
disp('___________________________________________________________________________________
_________________________________________________________________________________________
__________________________');
for k=xawal:delt:(xakhir-delt);
k1x=subs(f1,x,xawal);
k1y=subs(k1x,y,yawal);
k1z=subs(k1y,z,zawal);
l1x=subs(f2,x,xawal);
l1y=subs(l1x,y,yawal);
l1z=subs(l1y,z,zawal);
xk2=xawal+0.5*delt;
yk2=yawal+0.5*k1z*delt;
zk2=zawal+0.5*l1z*delt;
k2x=subs(f1,x,xk2);
k2y=subs(k2x,y,yk2);
k2z=subs(k2y,z,zk2);
l2x=subs(f2,x,xk2);
l2y=subs(l2x,y,yk2);
l2z=subs(l2y,z,zk2);
xk3=xawal+0.5*delt;
yk3=yawal+0.5*k2z*delt;
zk3=zawal+0.5*l2z*delt;
k3x=subs(f1,x,xk3);
k3y=subs(k3x,y,yk3);
k3z=subs(k3y,z,zk3);
l3x=subs(f2,x,xk3);
l3y=subs(l3x,y,yk3);
l3z=subs(l3y,z,zk3);
xk4=xawal+delt;
yk4=yawal+k3z*delt;
zk4=zawal+l3z*delt;
k4x=subs(f1,x,xk4);
k4y=subs(k4x,y,yk4);
k4z=subs(k4y,z,zk4);
l4x=subs(f2,x,xk4);
l4y=subs(l4x,y,yk4);
l4z=subs(l4y,z,zk4);
fprintf('%2.1f%12.4f%12.4f%12.4f%12.4f%12.4f%12.4f%12.4f%12.4f%12.4f%12.4f%10.4f%10.4f
%10.4f%10.4f%10.4f
%10.4f\n',xawal,yawal,zawal,k1z,l1z,k2z,l2z,k3z,l3z,k4z,l4z,yk2,zk2,yk3,zk3,yk4,zk4);
yi1=yawal+(k1z+2*k2z+2*k3z+k4z)*delt/6;
yawal=yi1;
zi1=zawal+(l1z+2*l2z+2*l3z+l4z)*delt/6;
zawal=zi1;
xawal=xawal+delt;
end
fprintf('%2.1f%12.4f%12.4f\n',xawal,yawal,zawal);
disp(' ');
disp(['pada x = ',num2str(xawal),' nilai y = ',num2str(yawal),' dan nilai z =
',num2str(zawal)]);
Contoh Soal ( Tugas 4 Bu Supri)

Running
-Hasil Matlab
-Hasil Pembanding

Listing program bisa didownload disini

Anda mungkin juga menyukai