Program Pascal Segitiga Atas Dan Bawah (Untuk Menentukan Nilai x1, x2,..,xn)
Program Pascal Segitiga Atas Dan Bawah (Untuk Menentukan Nilai x1, x2,..,xn)
,xn)
program spl;
uses crt;
var i,j,n:integer;
jm:real;
a:array [0..99,0..99] of integer;
c,x:array [0..99] of real;
begin
clrscr;
writeln('PROGRAM SEGITIGA ATAS ');
writeln('NAMA : Aulia Rindu Permata');
writeln('NIM : 14030022');
writeln;
write('Masukkan ukuran matriks : ');readln(n);
for i:=1 to n do
begin
for j:=i to n do
begin
write('a(',i,',',j,')= ');readln(a[i,j]);
end;
end;
for i:=1 to n do
begin
write('c(',i,')= ');readln(c[i]);
end;
x[n]:=(c[n]/a[n,n]);
for i:=n-1 downto 1 do
begin
jm:= 0;
for j:=i+1 to n do
begin
jm:=jm+a[i,j]*x[j];
end;
x[i]:=(c[i]-jm)/a[i,i];
end;
for i:=1 to n do
begin
write('x(',i,')= ',x[i]:1:2,', ');
end;
readln;
end.
PROGRAM PASCAL ELIMINASI GAUSS
program eliminasi_gauss;
uses crt;
Type
Matrik = record
Row, col : byte;
Element : array [1..99, 1..99] of real;
End;
Vektor = record
Row : byte;
Element : array [1..99] of real;
End;
Var
x, b : vektor;
A : matrik;
n : integer;
c : real;
Err : boolean;
Procedure masukkandata;
Var i,j : byte;
Begin
Writeln(' Penyelesaian Perhitungan SPL dengan Metode Eliminasi Gauss
');
writeln;
writeln('NAMA : AULIA RINDU PERMATA');
WRITELN('NIM : 14030030');
WRITELN('PRODI : MATEMATIKA(NK)');
Write ('Banyaknya persamaan adalah : ');Readln (n);
A.row := n;
A.col := n ;
b.row := n;
for i := 1 to n do
begin writeln;
writeln ('Persamaan ke-',i );
for j := 1 to n do
begin
write ('X[',i,',',j,'] = ');readln (A.element[i,j]);
end;
write('Y[',i,'] = '); readln(A.element[i,n+1]);
writeln;
end;
end;
procedure eliminasigauss;
var I,j,k : integer;
temp, S : real;
Begin
Err := false;
For i := 1 to n do
Begin
If (A.element[i,i] = 0 ) then
Begin
write(A.element[i,i]) ;
Err := true;
Exit;
End;
temp := A.element[i,i];
for k := 1 to n+1 do
begin
A.element[i,k] := A.element[i,k] / temp;
end;
For j := 1 to n do
begin
if(j<>i) then
begin
c := A.element[j,i];
for k := 1 to n+1 do
begin
A.element[j,k] := A.element [j,k] - (c * A.element[i,k]);
end;
end;
end;
end;
x.row := n;
for i := n downto 1 do
begin
if (A.element [i,i] = 0.0 ) then
Begin
Err := true;
Exit;
End;
x.element[i] := A.element[i,n+1];
end;
end;
Procedure tulishasil;
Var i : byte;
Begin
If (err) then
Begin
Writeln ('Persamaan linear tidak dapat diselesaikan');
End
Else
Begin
Writeln;
Writeln ('Jadi Penyelesaian persamaan linear dengan menggunakan
eliminasi gauss adalah :');
writeln('______________________________________________________________
_________________');
For i := 1 to x.row do
Writeln('X',i,' = ',x.element[i]:6:2);
End;
End;
Begin
clrscr;
Masukkandata;
Eliminasigauss;
Tulishasil;
readln;
end.
PROGRAM PASCAL PEMBALIKAN / INVERS MATRIK
program matriks_invers;
uses crt;
begin
clrscr;
writeln ('Program Pencarian Invers Matriks');
writeln ('Nama : Aulia Rindu Permata');
writeln ('NIM : 14030022 ');
writeln ('Tugas : Metode Numerik');
writeln;
writeln ('Masukkan ordo matrik (n x n).');
write ('n : ');
readln (n);
writeln;
for i:=1 to n do
begin
for j:=1 to n do
begin
write ('A(',i,',',j,') : ');
readln (a[i,j]);
end;
end;
writeln;
for i:=1 to n do
begin
for j:=1 to n do
write (' ',a[i,j]:0:0);
writeln;
end;
for i:=1 to n do
begin
for j:=1 to n+n do
begin
if i<>j then a[i,j]:=a[i,j]/a[i,i];
end;
for j:=1 to n+n do
begin
if i=j then a[i,j]:=1;
end;
for l:=1 to n do
begin
if i<>l then
begin
for j:=i+1 to n+n do
begin
a[l,j]:=a[l,j]-(a[i,j]*a[l,i]);
end;
end;
end;
for k:=1 to n do
begin
if i<>k then
begin
a[k,i]:=0;
end;
end;
end;
readln;
writeln('Maka invers dari matrik adalah :');
for i:=1 to n do
begin
for j:=n+1 to n+n do
write (' ',a[i,j]:0:2);
writeln;
end;
readln;
end.
PROGRAM PASCAL METODE BAGI DUA UNTUK F(X)=X+COS(X)
program metode_bagidua;
uses crt;
var a,b,eps,T,akar,galat:real;
i:integer;
function f(x:real):real;
begin
f:=x+cos(x);
end;
begin
clrscr;
writeln(' Mencari akar dari f(x)= x + cos (x) dengan Metode Bagi Dua');
i:=0;
repeat
i:=1+i;
T:=(a+b)/2;
galat:=b-a;
writeln(i:5, a:12:6, T:12:6, f(a):12:6, f(b):12:6, f(T):12:6, galat:12:6);
until (b-a)<eps;
readln;
end.
PROGRAM METODE POSISI PALSU UNTUK F(X)=X+COS(X)
program metode_posisi_palsu;
uses crt;
var a,b,eps,akar,galat,clama,c:real;
i:integer;
function f(x:real):real;
begin
f:=x+cos(x);
end;
begin
clrscr;
writeln(' Mencari akar dari f(x)=x+cos(x) , dengan Metode Posisi Palsu ');
writeln;
write('Masukan selang kiri (a) = ');readln(a);
write('Masukan selang kanan (b) = ');readln(b);
write('Masukan nilai epsilon = ');readln(eps);
writeln;
writeln('ITERASI a b f(a) f(b) f(c) galat');
writeln('_______________________________________________________________');
i:=0;
repeat
i:=1+i;
clama:=(2*b)-a;
c:=b-((f(b)*(b-a))/(f(b)-f(a)));
galat:=b-a;
writeln(i:5, a:12:6, b:12:6, f(a):12:6, f(b):12:6, f(c):12:6, galat:12:6);
if f(a)*f(c)<0 then b:=c
else a:=c;
if abs((c-clama)/c)<=eps then
begin
writeln;
writeln('akar = ',c:5:6);
end;
until abs((c-clama)/c)<=eps;
readln; end.
PROGRAM NEWTON RAPHSON UNTUK F(X)=X+COS(X)
program newton_raphson;
uses crt;
var eps,a,c,akar:real;
m,i:integer;
function
f(x:real):real;
begin
f:=x+cos(x);
end;
function
g(y:real):real;
begin
g:=1-sin(y);
end;
begin
clrscr;
writeln('Mencari akar dari persamaan f(x):=x+cos(x) , dengan newton raphson');
write('Masukan maksimum banyaknya iterasi = ');readln(m);
write('Masukan x awal = ');readln(a);
writeln('ITERASI a f(a) f.(a) c');
i:=1;
repeat
i:=1+i;
writeln(i:5, a:10:6, f(a):10:6, g(a):10:6, c:10:6);
if g(a)=0 then writeln('Proses gagal')
else
begin
c:=a-(f(a)/g(a));
if abs((c-a)/c)<=eps then writeln('akar = ',c:5:6);
end;
a:=c
until i>=m;
readln;
end.
1) Program Jacobi untuk 2 persamaan
program jacobi;
uses crt;
label ulang;
var
i:integer;
a,b,c,p,q,r,u,v,w,d,s,t,x,y,z,f,x1,y1,z1,xn,yn,zn,galat:real;
begin
clrscr;
writeln('----------------------------------');
writeln(' Aulia Rindu Permata (14030022) ');
writeln('----------------------------------');
writeln(' PROGRAM ITERASI JACOBI ');
writeln('----------------------------------');
writeln; writeln;
writeln('Persamaan : ');
writeln('ax+by=c');
writeln('px+qy=r');
writeln; writeln;
writeln;
writeln('Masukkan kostanta persamaan 2');
gotoxy(2,17); write(' p='); readln(p);
gotoxy(10,17); write(' q='); readln(q);
gotoxy(18,17); write(' r='); readln(r);
writeln;
write('Masukkan galat : '); readln(f);
writeln;
writeln('Jadi bentuk sistem persamaan adalah ');
writeln('(',a:0:0,'x)+(',b:0:0,'y)=',c:0:0);
writeln('(',p:0:0,'x)+(',q:0:0,'y)=',r:0:0);
writeln;
writeln('Masukkan nilai awal');
write('x0 = '); readln(x);
write('y0 = '); readln(y);
writeln('---------------------------------------------------')
;
writeln('iterasi x y galat relatif
');
writeln('---------------------------------------------------')
;
i:=0;
repeat
i:=i+1;
x1:=x; y1:=y;
xn:=(c-y1)/a;
yn:=(r-x1)/q;
x:=xn; y:=yn;
galat:=abs(xn-x1)/xn;
write(' ',i);
write(' ',x:0:6);
write(' ',y:0:6);
write(' ',galat:0:6);
writeln;
until galat<= f;
writeln;
writeln;
writeln('Proses konvergen pada iterasi ke ',i);
readln;
readln;
end.
a,b,c,p,q,r,u,v,w,d,s,t,x,y,z,f,x1,y1,z1,xn,yn,zn,galat:real;
begin
clrscr;
writeln('
------------------------------------');
writeln(' Aulia Rindu Permata (14030022)
');
writeln('
------------------------------------');
writeln(' PROGRAM ITERASI JACOBI
');
writeln('
------------------------------------');
writeln; writeln;
writeln('Persamaan : ');
writeln('ax+by+cz=d');
writeln('px+qy+rz=s');
writeln('ux+vy+wz=t');
writeln; writeln;
writeln;
writeln('Masukkan kostanta persamaan 2');
gotoxy(2,18); write(' p='); readln(p);
gotoxy(10,18); write(' q='); readln(q);
gotoxy(18,18); write(' r='); readln(r);
gotoxy(24,18); write(' s='); readln(s);
writeln;
writeln('Masukkan kostanta persamaan 3');
gotoxy(2,21); write(' u='); readln(u);
gotoxy(10,21); write(' v='); readln(v);
gotoxy(18,21); write(' w='); readln(w);
gotoxy(24,21); write(' t='); readln(t);
writeln;
write('Masukkan galat : '); readln(f);
writeln;
writeln('Jadi bentuk sistem persamaan adalah ');
writeln('(',a:0:0,'x)+(',b:0:0,'y)+(',c:0:0,'z)=',d:0:0);
writeln('(',p:0:0,'x)+(',q:0:0,'y)+(',r:0:0,'z)=',s:0:0);
writeln('(',u:0:0,'x)+(',v:0:0,'y)+(',w:0:0,'z)=',t:0:0);
writeln;
writeln('Masukkan nilai awal');
write('x0 = '); readln(x);
write('y0 = '); readln(y);
write('z0 = '); readln(z);
writeln('_____________________________________________________
____________');
writeln('iterasi x y z
galat relatif');
writeln('-----------------------------------------------------
------------');
i:=0;
repeat
i:=i+1;
x1:=x; y1:=y; z1:=z;
xn:=(d-b*y1-c*z1)/a;
yn:=(s-p*x1-r*z1)/q;
zn:=(t-u*x1-v*y1)/w;
x:=xn; y:=yn; z:=zn;
galat:=abs(xn-x1)/xn;
write(' ',i);
write(' ',x:0:6);
write(' ',y:0:6);
write(' ',z:0:6);
write(' ',galat:0:6);
writeln;
until galat<= f;
writeln;
writeln;
writeln('Proses konvergen pada iterasi ke ',i);
readln;
readln;
end.
a,b,c,p,q,r,u,v,w,d,s,t,x,y,z,f,x1,y1,z1,xn,yn,zn,galat:real;
begin
clrscr;
writeln('-----------------------------------------------------
-----------');
writeln(' Aulia Rindu Permata (14030022)
');
writeln('-----------------------------------------------------
-----------');
writeln(' PROGRAM ITERASI GAUSS-SEIDEL
');
writeln('-----------------------------------------------------
-----------');
writeln('Persamaan : ');
writeln('ax+by=c');
writeln('px+qy=r');
writeln; writeln;
writeln;
writeln('Masukkan kostanta persamaan 2');
gotoxy(2,17); write(' p='); readln(p);
gotoxy(10,17); write(' q='); readln(q);
gotoxy(18,17); write(' r='); readln(r);
writeln;
write('Masukkan galat : '); readln(f);
writeln;
writeln('Jadi bentuk sistem persamaan adalah ');
writeln('(',a:0:0,'x)+(',b:0:0,'y)=',c:0:0);
writeln('(',p:0:0,'x)+(',q:0:0,'y)=',r:0:0);
writeln;
writeln('Masukkan nilai awal');
write('x0 = '); readln(x);
write('y0 = '); readln(y);
writeln('_____________________________________________________
________');
writeln('iterasi x y galat
relatif');
writeln('-----------------------------------------------------
--------');
i:=0;
repeat
i:=i+1;
x1:=x; y1:=y;
xn:=(c-y1)/a;
yn:=(r-xn)/q;
x:=xn; y:=yn;
galat:=abs(xn-x1)/xn;
write(' ',i);
write(' ',x:0:6);
write(' ',y:0:6);
write(' ',galat:0:6);
writeln;
until galat<= f;
writeln;
writeln;
writeln('Proses konvergen pada iterasi ke ',i);
readln;
readln;
end.
a,b,c,p,q,r,u,v,w,d,s,t,x,y,z,f,x1,y1,z1,xn,yn,zn,galat:real;
begin
clrscr;
writeln('-----------------------------------------------------
-----------');
writeln(' Aulia Rindu Permata (14030022)
');
writeln('-----------------------------------------------------
-----------');
writeln(' PROGRAM ITERASI GAUSS-SEIDEL
');
writeln('-----------------------------------------------------
-----------');
writeln; writeln;
writeln('Persamaan : ');
writeln('ax+by+cz=d');
writeln('px+qy+rz=s');
writeln('ux+vy+wz=t');
writeln; writeln;
writeln;
writeln('Masukkan kostanta persamaan 2');
gotoxy(2,18); write(' p='); readln(p);
gotoxy(10,18); write(' q='); readln(q);
gotoxy(18,18); write(' r='); readln(r);
gotoxy(24,18); write(' s='); readln(s);
writeln;
writeln('Masukkan kostanta persamaan 3');
gotoxy(2,21); write(' u='); readln(u);
gotoxy(10,21); write(' v='); readln(v);
gotoxy(18,21); write(' w='); readln(w);
gotoxy(24,21); write(' t='); readln(t);
writeln;
write('Masukkan galat : '); readln(f);
writeln;
writeln('Jadi bentuk sistem persamaan adalah ');
writeln('(',a:0:0,'x)+(',b:0:0,'y)+(',c:0:0,'z)=',d:0:0);
writeln('(',p:0:0,'x)+(',q:0:0,'y)+(',r:0:0,'z)=',s:0:0);
writeln('(',u:0:0,'x)+(',v:0:0,'y)+(',w:0:0,'z)=',t:0:0);
writeln;
writeln('Masukkan nilai awal');
write('x0 = '); readln(x);
write('y0 = '); readln(y);
write('z0 = '); readln(z);
writeln('_____________________________________________________
_________');
writeln('iterasi x y z
galat realtif');
writeln('-----------------------------------------------------
---------');
i:=0;
repeat
i:=i+1;
x1:=x; y1:=y; z1:=z;
xn:=(d-b*y1-c*z1)/a;
yn:=(s-p*xn-r*z1)/q;
zn:=(t-u*xn-v*yn)/w;
x:=xn; y:=yn; z:=zn;
galat:=abs(xn-x1)/xn;
write(' ',i);
write(' ',x:0:6);
write(' ',y:0:6);
write(' ',z:0:6);
write(' ',galat:0:6);
writeln;
until galat<= f;
writeln;
writeln;
writeln('Proses konvergen pada iterasi ke ',i);
readln;
readln;
end.
Program Jacobi
Program Jacobi;
uses crt;
var
M,i,j,n,iterasi,t : integer;
a : array[1..10,1..10] of integer;
c : array[1..10] of integer;
x : array[1..10] of real;
x0 : array[1..10] of real;
eps,galat,selisih : real;
begin
clrscr;
writeln;
writeln ;
for i:=1 to n do
begin
for j:=1 to n do
begin
write('a(',i,',',j,')=');readln(a[i,j]);
end;
write('c(',i,')='); readln(c[i]);
writeln;
end;
for i:=1 to n do
begin
write('x0(',i,')='); readln(x0[i]);
end;
clrscr;
writeln
('-----------------------------------------------------------------'
);
for iterasi:=1 to M do
begin
galat:=0;
for i:=1 to n do
begin
x[i]:=c[i];
for j:=1 to n do
begin
end;
x[i]:=x[i]/a[i,i];
selisih:=abs((x[i]-x0[i])/x[i]);
end;
write(iterasi,' ');
for i:=1 to n do
begin
x0[i]:=x[i];
write(x[i]:11:8,' ');
end;
writeln;
end;
writeln('-----------------------------------------------------------
------');
writeln; writeln('Maka solusi konvergen pada iterasi ke ',t);
readln;
end.