31
1 Tugas Metode Numerik 1. Metode Bagi Dua program bagi_dua; uses wincrt; var a,b,fa,fb, p, q, r,akar, phi:real; c : array [ 1..100 ] of real; f : array [ 1..100 ] of real; i,n :integer; begin writeln (' program untuk fungsi berbentuk f (x) = px^2 + qx + r '); write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q); write (' masukkan nilai r = '); readln (r); writeln ( ' maka fungsinya adalah : f(x) = (',p:2:2,')x^2 + (',q:2:2,')x + (',r:2:2,')'); writeln (' masukkan tebakan awalnya : '); write (' masukkan nilai a = '); readln (a); write (' masukkan nilai b = '); readln (b); write (' masukkan nilai toleransi = '); readln (phi); write (' masukkan banyaknya iterasi maksimum = '); readln (n); begin for i:= 1 to n do begin c[i]:=(a+b)/2; fa:=p*a*a + q*a + r; fb:=p*b*b + q*b + r; f[i]:=p*c[i]*c[i] + q*c[i] + r; if f[i]=0 then begin b:=c[i]; a:=c[i]; end; if fa*f[i]<0 then b:=c[i] else a:=c[i]; if abs(a-b)<phi then akar := c[i]; Program Pascal untuk Materi Metode Numerik

tpw NEW

Embed Size (px)

Citation preview

Page 1: tpw NEW

1Tugas Metode Numerik

1. Metode Bagi Duaprogram bagi_dua;uses wincrt;var a,b,fa,fb, p, q, r,akar, phi:real; c : array [ 1..100 ] of real; f : array [ 1..100 ] of real; i,n :integer;begin writeln (' program untuk fungsi berbentuk f (x) = px^2 + qx + r '); write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q); write (' masukkan nilai r = '); readln (r); writeln ( ' maka fungsinya adalah : f(x) = (',p:2:2,')x^2 + (',q:2:2,')x +

(',r:2:2,')'); writeln (' masukkan tebakan awalnya : '); write (' masukkan nilai a = '); readln (a); write (' masukkan nilai b = '); readln (b); write (' masukkan nilai toleransi = '); readln (phi); write (' masukkan banyaknya iterasi maksimum = '); readln (n); begin for i:= 1 to n do begin c[i]:=(a+b)/2; fa:=p*a*a + q*a + r; fb:=p*b*b + q*b + r; f[i]:=p*c[i]*c[i] + q*c[i] + r; if f[i]=0 then begin b:=c[i]; a:=c[i]; end; if fa*f[i]<0 then b:=c[i] else a:=c[i]; if abs(a-b)<phi then akar := c[i]; end;

writeln ('Akar = ',c[i]:10:5); end;end.

Program Pascal untuk Materi Metode Numerik

Page 2: tpw NEW

2Tugas Metode Numerik

2. Metode Posisi Palsuprogram posisi_palsu;uses wincrt;var a,b,fa,fb,clama, p, q, r,akar, phi:real; c : array [ 1..100 ] of real; f : array [ 1..100 ] of real; i,n :integer;begin writeln (' program untuk fungsi berbentuk f (x) = px^2 + qx + r '); write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q); write (' masukkan nilai r = '); readln (r); writeln ( ' maka fungsinya adalah : f(x) = (',p:2:2,')x^2 + (',q:2:2,')x +

(',r:2:2,')'); writeln (' masukkan tebakan awalnya : '); write (' masukkan nilai a = '); readln (a); write (' masukkan nilai b = '); readln (b); write (' masukkan nilai toleransi = '); readln (phi); write (' masukkan banyaknya iterasi maksimum = '); readln (n); clama:=2*a-b; begin for i:= 1 to n do begin fa:=p*a*a + q*a + r; fb:=p*b*b + q*b + r; c[i]:=b-(fb*(b-a)/(fb-fa)); f[i]:=p*c[i]*c[i] + q*c[i] + r; if (c[i]-clama)/c[i] <= phi then begin writeln ('Akar = ',c[i]:10:6); end ; if fa*f[i]<0 then b:=c[i] else a:=c[i]; if abs(a-b)<phi then akar := c[i]; end;

writeln ('Akar = ',c[i]:10:6); end;end.

Program Pascal untuk Materi Metode Numerik

Page 3: tpw NEW

3Tugas Metode Numerik

3. Metode Iterasi Titik Tetapprogram iterasi_titik_tetap;uses wincrt;var p, q, r, s, t, h, jumlah,phi,akar :real; x : array [ 0..100 ] of real; i,n :integer;begin writeln (' program untuk fungsi berbentuk f (x) = px^4 + qx^3 + rx^2 + sx + t '); write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q); write (' masukkan nilai r = '); readln (r); write (' masukkan nilai s = '); readln (s); write (' masukkan nilai t = '); readln (t); writeln ( ' maka fungsinya adalah : '); write (' f(x) = (',p:2:2,')x^4 + (',q:2:2,')x^3 + (',r:2:2,')x^2 + '); writeln ('( ',s:2:2,')x + (',t:2:2,')'); writeln (' masukkan tebakan awalnya : '); write (' x0 = '); readln (x[0]); write (' masukkan banyaknya iterasi maksimum = '); readln (n); write (' masukkan besar toleransi = '); readln (phi); for i := 0 to n-1 do begin x[i+1]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] + s*x[i] + t; if abs((x[i+1]-x[1])/x[i+1])<= phi then akar:= x[i+1]; end; writeln ( ' akar = ',x[i+1]:2:6);end.

Program Pascal untuk Materi Metode Numerik

Page 4: tpw NEW

4Tugas Metode Numerik

4. Metode Secantprogram metode_secant;uses wincrt;var a, fa, p, q, r, s, t, h, jumlah, phi, akar :real; x : array [ 0..100 ] of real; f : array [ 0..100 ] of real; i,n :integer;begin writeln (' program untuk fungsi berbentuk f (x) = px^4 + qx^3 + rx^2 + sx + t '); write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q); write (' masukkan nilai r = '); readln (r); write (' masukkan nilai s = '); readln (s); write (' masukkan nilai t = '); readln (t); writeln ( ' maka fungsinya adalah : '); write (' f(x) = (',p:2:2,')x^4 + (',q:2:2,')x^3 + (',r:2:2,')x^2 + '); writeln ('( ',s:2:2,')x + (',t:2:2,')'); writeln (' masukkan tebakan awalnya : '); write (' x0 = '); readln (x[0]); write (' x1 = '); readln (x[1]); write (' masukkan banyaknya iterasi maksimum = '); readln (n); write (' masukkan besar toleransi = '); readln (phi); for i := 1 to n-1 do begin f[i-1]:= p*x[i-1]*x[i-1]*x[i-1]*x[i-1] + q*x[i-1]*x[i-1]*x[i-1] + r*x[i-1]*x[i-1] + s*x[i-1] + t; f[i]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] + s*x[i] + t; if f[i-1] = f[i] then write ( 'gagal' ); x[i+1]:= x[i] - f[i]*(x[i]-x[i-1])/(f[i]-f[i-1]); if abs((x[i+1]-x[1])/x[i+1])<= phi then akar:= x[i+1]; end; writeln ( ' x',i+1,' = ',x[i+1]:2:6);end.

Program Pascal untuk Materi Metode Numerik

Page 5: tpw NEW

5Tugas Metode Numerik

5. Metode Newton-Raphsonprogram metode_Newton_Raphson;uses wincrt;var a, fa, p, q, r, s, t, h, jumlah,phi,akar :real; x : array [ 0..100 ] of real; f : array [ 0..100 ] of real; g : array [ 0..100 ] of real; i,n :integer;begin writeln (' program untuk fungsi berbentuk f (x) = px^4 + qx^3 + rx^2 + sx + t '); write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q); write (' masukkan nilai r = '); readln (r); write (' masukkan nilai s = '); readln (s); write (' masukkan nilai t = '); readln (t); writeln ( ' maka fungsinya adalah : '); write (' f(x) = (',p:2:2,')x^4 + (',q:2:2,')x^3 + (',r:2:2,')x^2 + '); writeln ('( ',s:2:2,')x + (',t:2:2,')'); writeln (' masukkan tebakan awalnya : '); write (' x0 = '); readln (x[0]); write (' masukkan banyaknya iterasi maksimum = '); readln (n); write (' masukkan besar toleransi = '); readln (phi); for i := 0 to n-1 do begin f[i]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] + s*x[i] + t; g[i]:= 4*p*x[i]*x[i]*x[i] + 3*q*x[i]*x[i] + 2*r*x[i] + s; x[i+1]:= x[i] - f[i]/(g[i]); if abs((x[i+1]-x[1])/x[i+1])<= phi then akar:= x[i+1]; end; writeln ( ' akar = ',x[i+1]:2:6);end.

Program Pascal untuk Materi Metode Numerik

Page 6: tpw NEW

6Tugas Metode Numerik

6. Metode Invers MatriksProgram invers_matriks;uses wincrt;var a: array [1..10, 1..50] of real; x, b : array [1..10] of real; p: real; n, i, j, k: integer;begin write (' ordo matriks (nxn) ='); readln(n); for i:= 1 to n do begin for j:= 1 to (2*n) do begin if j > n then begin if j= n+i then a[i,j]:=1 else a[i,j]:=0 end; if j < n+1 then begin write ('unsur a', i, j, '='); readln(a[i,j]); end; end; end; {cetak matrik} writeln (' '); writeln ('matrik diperbanyak'); for i:=1 to n do begin for j:=1 to (2*n) do begin write (a[i,j]:8:2); end; writeln end; {proses} {banyak pivot = n-1} for k:= 1 to n do begin

Program Pascal untuk Materi Metode Numerik

Page 7: tpw NEW

7Tugas Metode Numerik

for i:= 1 to n do begin if i <> k then begin p:= a[i,k]/a[k,k]; for j:= k+1 to (2*n) do begin a[i,j]:= a[i,j]- p*a[k,j]; end; a[i,k]:=0; a[k,k]:=1; end; end; end; {cetak hasil setelah EG} writeln (' '); writeln ('hasil setelah EG:');

for i:=1 to n do begin for j:=1 to (2*n) do begin write (a[i,j]:8:2); end; writeln end;end.

7. Metode TridiagonalProgram spl_tridiagonal;Uses wincrt;var a, b, c, d : array [1..10] of real; x: array [1..10] of real; p : real; i,n,k: integer;begin write (' masukkan banyaknya persamaan='); readln(n); for i:= 1 to n do begin write ('a(',i,')=');readln (a[i]); end; for i:= 1 to n do begin write ('b(',i,')='); readln (b[i]);

Program Pascal untuk Materi Metode Numerik

Page 8: tpw NEW

8Tugas Metode Numerik

end; for i:= 1 to n-1 do begin write ('c(',i,')='); readln (c[i]); end; for i:= 2 to n do begin write ('d(',i,')='); readln (d[i]); end;for i := 1 to n-1 do begin p := d[i+1]/a[i]; a[i+1]:=a[i+1]-(p*c[i]); b[i+1]:= b[i+1]-(p*b[i]); end;

x[n]:= b[n]/a[n];for k:= n-1 downto 1 do begin x[k]:= (b[k]-c[k]*x[k+1])/a[k]; end;for k:= 1 to n do begin write ('x(',k,')='); write (x[k]:8:2); writeln; end; end.

8. Metode Eliminasi Gaussprogram eliminasi_gauss;uses winCrt;var x: array [1..10] of real; a: array [1..10,1..10] of real; n,i,j,k: integer; p,jumlah:real;begin write (' banyak persamaan = '); readln (n); begin for i:= 1 to n do begin for j:=1 to n+1 do begin write ('a(',i,j,')= ');

Program Pascal untuk Materi Metode Numerik

Page 9: tpw NEW

9Tugas Metode Numerik

read(a[i,j]); end; writeln; end; end; begin for i:=1 to n do begin for j:=1 to n+1 do begin write(a[i,j]:4:0); end; writeln; end; writeln; writeln; end; begin for k:=1 to n-1 do begin for i:= k+1 to n do begin p:= a[i,k]/a[k,k]; for j:=k to n+1 do begin a[i,j]:=a[i,j]-p*a[k,j]; end; a[i,k]:=0; end; end; end; for i:= 1 to n do begin for j :=1 to n + 1 do begin write ( a[i,j]:4:0); end; writeln; end; begin x[n]:=(a[n,n+1])/(a[n,n]); writeln('x',n,'= ',x[n]:2:3); for k:= n-1 downto 1 do begin jumlah :=0 ; begin

Program Pascal untuk Materi Metode Numerik

Page 10: tpw NEW

10Tugas Metode Numerik

for j:=k+1 to n do jumlah:=jumlah + (a[k,j])*(x[j]); begin x[k]:=((a[k,n+1])-jumlah)/(a[k,k]); writeln('x',k,'=',x[k]:2:3); end; end; end; end;end.

9. Iterasi JacobyProgram Iterasi_jacoby;uses winCrt;var i,j,k,m,n : integer; tol, er, beda, jumlah : real; b,x0,x : array [1..10] of real; a : array [1..10,1..10] of real;begin er := 0; tol:=0.00000001; write('masukkan banyaknya persamaan = '); 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; write('b(',i,')= '); readln(b[i]); x0[i]:=0; writeln; end; writeln; writeln('matriks asal'); for i := 1 to n do begin for j := 1 to n do begin write(a[i,j]:6:2); end; writeln(b[i]:6:2); end; writeln; write( ' masukkan banyaknya iterasi = ');readln(m); writeln;

Program Pascal untuk Materi Metode Numerik

Page 11: tpw NEW

11Tugas Metode Numerik

for k := 1 to m do begin for i := 1 to n do begin x0[i]:= x[i]; end; for i := 1 to n do begin jumlah := 0; for j := 1 to n do if j <> i then begin jumlah := jumlah + a[i,j]*x0[j]; end; x[i] := (b[i] - jumlah)/a[i,i]; write(x[i]:15:5); beda := abs(x[i] - x0[i]); if beda > er then er := beda; end; writeln; if er < tol then begin for i := 1 to n do writeln (x[i]:15:5); end; end;end.

10. Iterasi Gauss – SeidelProgram Iterasi_Gauss_Seidel;uses winCrt;var i,j,k,m,n : integer; tol, er, beda, jumlah : real; b,x0,x : array [1..10] of real; a : array [1..10,1..10] of real;begin er := 0; tol:=0.00000001; write('masukkan banyaknya persamaan = '); readln(n); for i := 1 to n do begin for j := 1 to n do begin write('a(',i,j,')= '); readln(a[i,j]); end;

Program Pascal untuk Materi Metode Numerik

Page 12: tpw NEW

12Tugas Metode Numerik

write('b(',i,')= '); readln(b[i]); x0[i]:=0; end; writeln; writeln('matriks asal'); for i := 1 to n do begin for j := 1 to n do begin write(a[i,j]:6:2); end; writeln(b[i]:6:2); end; writeln; write( ' masukkan banyaknya iterasi = ');readln(m); for k := 1 to m do begin for i := 1 to n do begin jumlah := 0; for j := 1 to n do if j <> i then begin jumlah := jumlah + a[i,j]*x[j]; end; x[i] := (b[i] - jumlah)/a[i,i]; write(x[i]:8:2); beda := abs(x[i] - x0[i]); if beda > er then er := beda; x0[i]:=x[i]; end; writeln; if er < tol then begin for i := 1 to n do writeln (x[i]:8:2); end; end;end.

11. Interpolasi Lagrangeprogram polinom_lagrange;uses wincrt;var p : array [1..100] of real;

Program Pascal untuk Materi Metode Numerik

Page 13: tpw NEW

13Tugas Metode Numerik

q : array [1..100] of real; x, jumlah, pol, faktor : real; i, j, n : integer;beginwriteln ( ' program interpolasi lagrange '); write ( ' masukkan banyaknya titik interpolasi = '); readln (n);writeln; for i := 1 to n do begin write ( ' x',i,' = ' ); readln ( p[i]); write ( ' y',i,' = ' ); readln ( q[i]); write ( ' (x',i,',y',i,') = (', p[i]:2:2,',', q[i]:2:2,')'); writeln; writeln; end; begin write ( ' masukkan titik yang dicari = '); readln (x); jumlah := 0; for i := 1 to n do begin faktor := 1; for j := 1 to n do begin if i <>j then faktor := faktor*( x - p[j])/(p[i] - p[j]); end; pol := pol + faktor*q[i]; end; end; begin write ( ' y = ',pol:2:6); end;end.

12. Interpolasi Newtonprogram interpolasi_newton;uses wincrt;var p : array [1..100] of real; q : array [1..100] of real; b : array [1..100] of real; x0, x, jumlah, pbagi, faktor, phi, suku : real; i, j, n : integer;beginwriteln ( ' program interpolasi newton ');

Program Pascal untuk Materi Metode Numerik

Page 14: tpw NEW

14Tugas Metode Numerik

write ( ' masukkan banyaknya titik interpolasi = '); readln (n);writeln; for i := 1 to n do begin write ( ' x',i,' = ' ); readln ( p[i]); write ( ' y',i,' = ' ); readln ( q[i]); write ( ' (x',i,',y',i,') = (', p[i]:2:2,',', q[i]:2:2,')'); writeln; writeln; end; begin write ( ' masukkan titik yang dicari = '); readln (x); write ( ' toleransi = '); readln(phi); b[1] := q[1]; pbagi := b[1]; faktor := 1; for i := 2 to n do begin b[i] := q[i]; for j := n-1 downto 1 do begin b[j] := ( b[j+1] - b[j] )/(p[i] -p[j]) end; faktor := faktor*(x-p[i-1]); suku := b[1]*faktor; pbagi := pbagi + suku; if abs (suku)<= phi then write ( ' hasil = ',pbagi:2:10); end; end; begin write ( ' y = ',pbagi:2:6); end;end.

13. Persamaan Diferensialprogram turunan ;uses wincrt;var a, fa, p, q, r, s, t, h, jumlah :real; x : array [ 0..100 ] of real; y : array [ 0..100 ] of real; f : array [ 0..100 ] of real; i,n :integer;begin

Program Pascal untuk Materi Metode Numerik

Page 15: tpw NEW

15Tugas Metode Numerik

writeln (' program untuk fungsi berbentuk f (x) = px^4 + qx^3 + rx^2 + sx + t '); write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q); write (' masukkan nilai r = '); readln (r); write (' masukkan nilai s = '); readln (s); write (' masukkan nilai t = '); readln (t); writeln ( ' maka fungsinya adalah : '); write (' f(x) = (',p:2:2,')x^4 + (',q:2:2,')x^3 + (',r:2:2,')x^2 + '); writeln ('( ',s:2:2,')x + (',t:2:2,')'); writeln (' masukkan titik yang dicari: '); write (' x0 = '); readln (x[0]); write (' tebakan awal y0 = '); readln (y[0]); write (' masukkan banyaknya titik yang diinginkan = '); readln (n); write (' dengan jarak titik yang diinginkan = '); readln (h); begin x[0] := a; f[0]:= p*x[0]*x[0]*x[0]*x[0] + q*x[0]*x[0]*x[0] + r*x[0]*x[0] + s*x[0] + t; y[1] := y[0] + h*f[0]; writeln ( ' y',1,' = ',y[1]:2:6); for i := 1 to n-1 do begin x[i] := a + i*h; f[i]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] + s*x[i] + t; y[i+1] := y[i] + h*f[i]; writeln ( ' y',i+1,' = ',y[i+1]:2:6); end; end;end.

14. Metode Integral Trapesium program integral_trapesium;uses wincrt;var a,b,fa,fb, p, q, r, s, t, integral, jumlah, jumlah1, jumlah2,jumlah3,h:real; x : array [ 1..100 ] of real; f : array [ 1..100 ] of real; i,n :integer;begin writeln (' program untuk fungsi berbentuk f (x) = px^4 + qx^3 + rx^2 + sx + t '); write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q);

Program Pascal untuk Materi Metode Numerik

Page 16: tpw NEW

16Tugas Metode Numerik

write (' masukkan nilai r = '); readln (r); write (' masukkan nilai s = '); readln (s); write (' masukkan nilai t = '); readln (t); writeln ( ' maka fungsinya adalah : '); write (' f(x) = (',p:2:2,')x^4 + (',q:2:2,')x^3 + (',r:2:2,')x^2 + '); writeln ('( ',s:2:2,')x + (',t:2:2,')'); writeln (' masukkan batas integralnya : '); write (' batas bawah (a) = '); readln (a); write (' batas atas (b) = '); readln (b); write (' masukkan banyaknya selang yang diinginkan = '); readln (n); begin fa:=p*a*a*a*a + q*a*a*a + r*a*a + s*a + t; fb:=p*b*b*b*b + q*b*b*b + r*b*b + s*b + t; h:= (b-a)/n; end; jumlah := 0; for i:= 1 to n-1 do begin x[i]:= a+ i*h; f[i]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] + s*x[i] + t; jumlah := jumlah + f[i]; end; begin integral := (h/2)*(fa + fb + 2*jumlah ); writeln ( ' integral = ',integral:3:10); end;end.

15. Metode Integral Simpson 1/3program integral_simpson13;

uses wincrt;var a,b,fa,fb, p, q, r, s, t, integral, jumlah, jumlah1,

jumlah2,jumlah3,h:real; x : array [ 1..100 ] of real; f : array [ 1..100 ] of real; i,n :integer;begin writeln (' program untuk fungsi berbentuk f (x) = px^4 + qx^3 + rx^2 +

sx + t '); write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q); write (' masukkan nilai r = '); readln (r); write (' masukkan nilai s = '); readln (s);

Program Pascal untuk Materi Metode Numerik

Page 17: tpw NEW

17Tugas Metode Numerik

write (' masukkan nilai t = '); readln (t); writeln ( ' maka fungsinya adalah : '); write (' f(x) = (',p:2:2,')x^4 + (',q:2:2,')x^3 + (',r:2:2,')x^2 + '); writeln ('( ',s:2:2,')x + (',t:2:2,')'); writeln (' masukkan batas integralnya : '); write (' batas bawah (a) = '); readln (a); write (' batas atas (b) = '); readln (b); write (' masukkan banyaknya selang yang diinginkan = '); readln (n);

begin fa:=p*a*a*a*a + q*a*a*a + r*a*a + s*a + t; fb:=p*b*b*b*b + q*b*b*b + r*b*b + s*b + t; h:= (b-a)/(2*n); end; jumlah1 := 0; for i:= 1 to n do begin x[i]:= a+ (2*i-1)*h; f[i]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] +

s*x[i] + t; jumlah1 := jumlah1 + f[i]; end; jumlah2 := 0; for i:= 1 to n-1 do begin x[i]:= a+ (2*i-1)*h; f[i]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] + s*x[i]

+ t; jumlah2 := jumlah2 + f[i]; end; begin integral := (h/3)*(fa + fb + 4*jumlah1 + 2*jumlah2 ); writeln ( ' integral = ',integral:3:10); end;end.

16. Metode Integral Simpson 3/8program integral_simpson38;uses wincrt;var a,b,fa,fb, p, q, r, s, t, integral, jumlah, jumlah1, jumlah2,jumlah3,h:real;

x : array [ 1..100 ] of real; f : array [ 1..100 ] of real;

Program Pascal untuk Materi Metode Numerik

Page 18: tpw NEW

18Tugas Metode Numerik

i,n :integer;begin

writeln (' program untuk fungsi berbentuk f (x) = px^4 + qx^3 + rx^2 + sx + t ');

write (' masukkan nilai p = '); readln (p); write (' masukkan nilai q = '); readln (q); write (' masukkan nilai r = '); readln (r); write (' masukkan nilai s = '); readln (s); write (' masukkan nilai t = '); readln (t); writeln ( ' maka fungsinya adalah : '); write (' f(x) = (',p:2:2,')x^4 + (',q:2:2,')x^3 + (',r:2:2,')x^2 + '); writeln ('( ',s:2:2,')x + (',t:2:2,')'); writeln (' masukkan batas integralnya : '); write (' batas bawah (a) = '); readln (a); write (' batas atas (b) = '); readln (b); write (' masukkan banyaknya selang yang diinginkan = '); readln (n); begin fa:=p*a*a*a*a + q*a*a*a + r*a*a + s*a + t; fb:=p*b*b*b*b + q*b*b*b + r*b*b + s*b + t; h:= (b-a)/(3*n); end; jumlah1 := 0; for i:= 1 to n do begin x[i]:= a+ (3*i-2)*h; f[i]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] +

s*x[i] + t; jumlah1 := jumlah1 + f[i]; end; jumlah2 := 0; for i:= 1 to n do begin x[i]:= a+ (3*i-1)*h; f[i]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] +

s*x[i] + t; jumlah2 := jumlah2 + f[i]; end; jumlah3 := 0; for i:= 2 to n-1 do begin x[i]:= a+ (3*i)*h; f[i]:= p*x[i]*x[i]*x[i]*x[i] + q*x[i]*x[i]*x[i] + r*x[i]*x[i] +

s*x[i] + t; jumlah3 := jumlah3 + f[i]; end;

Program Pascal untuk Materi Metode Numerik

Page 19: tpw NEW

19Tugas Metode Numerik

begin integral := ((3*h)/8)*(fa + fb + 3*jumlah1 + +3*jumlah2 +

2*jumlah3 ); writeln ( ' integral = ',integral:3:10); end;end.

17. Metode Hotellingprogram hoteling;uses wincrt;var a : array [1..10,1..10] of real; L,v0,v,u: array[1..10] of real; M, n, i, j, k : integer; jumlah, phi: real;begin write (' masukkan toleransi = '); readln (phi); write (' masukkan banyaknya iterasi maksimum = '); readln (M); write ('banyak n ='); readln (n); 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 j:= 1 to n do begin write ('v0(',j,')='); readln (v0[j]); end; writeln (''); writeln ('Matriks A'); for i:= 1 to n do begin for j:= 1 to n do begin write (a[i,j]:8:2); end; writeln; end; writeln (''); writeln ('Tebakan Awal'); for j:= 1 to n do begin

Program Pascal untuk Materi Metode Numerik

Page 20: tpw NEW

20Tugas Metode Numerik

writeln (v0[j]:8:2); end; for k:= 1 to M do begin writeln(''); writeln('Hasil Iterasi ke-',k,' Mendapat w',k); for i:=1 to n do begin jumlah:= 0; for j:= 1 to n do begin jumlah := jumlah + a[i,j]*v0[j]; end; u[i]:= jumlah; end; writeln ('w[',k,']'); for i:= 1 to n do begin writeln (u[i]:8:2); end; end;end.

18. Metode invers matrix

Program invers_matriks;

uses wincrt;

var a: array[1..10,1..10]of real;

b: array[1..10]of real;

x: array[1..10]of real;

i,j,k,n:integer;

label 10;

begin

Program Pascal untuk Materi Metode Numerik

Page 21: tpw NEW

21Tugas Metode Numerik

writeln('masukkan dimensi matriks n=');

readln(n);

For i:=1 to n do

begin

For j:=1 to 2*n do

begin

if j<=n then

begin

write('masukkan nilai a(',i,j,')');

readln(a[i,j]);

end;

if j=n+i then

begin

a[i,j]:=1

end;

end;

end;

For i:=1 to n do

begin

write('input nilai b(',i,')');

readln(b[i]);

end;

{CETAK MATRIKS INPUT}

writeln('matriks input');

for i:=1 to n do

Program Pascal untuk Materi Metode Numerik

Page 22: tpw NEW

22Tugas Metode Numerik

begin

For j:=1 to 2*n do

begin

write(a[i,j]:6:0);

end;

writeln;

end;

{PROSES ELIMINASI}

For k:=1 to n do

begin

For j:=k+1 to 2*n do

begin

a[k,j]:=a[k,j]/a[k,k];

end;

a[k,k]:=1;

for i:=1 to n do

begin

if i<>k then

begin

for j:=k+1 to 2*n do

begin

a[i,j]:=a[i,j]-a[i,k]*a[k,j];

end;

a[i,k]:=0;

end;

Program Pascal untuk Materi Metode Numerik

Page 23: tpw NEW

23Tugas Metode Numerik

end;

end;

{CETAK HASIL ELIMINASI}

writeln('hasil eliminasi');

for i:=1 to n do

begin

for j:=1 to 2*n do

begin

write(a[i,j]:6:2);

end;

writeln;

end;

readln;

{CETAK HASIL MATRIKS INVERS}

writeln('matriks invers');

for i:=1 to n do

begin

For j:=n+1 to 2*n do

begin

write(a[i,j]:6:2);

end;

writeln;

end;

readln;

{SUBSTITUSIKAN BALIK}

Program Pascal untuk Materi Metode Numerik

Page 24: tpw NEW

24Tugas Metode Numerik

writeln('nilaix');

For i:=1 to n do

begin

x[i]:=0;

for j:=n+1 to 2*n do

begin

x[i]:=x[i]+a[i,j]*b[j-n];

end;

10: writeln('x(',i,')=',x[i]:4:5);

end;

end.

19. PROGRAM MAXIMUM_ SEARCH

program maximum_search;

uses Wincrt;

var

a:array[1..100] of real;

i,n,l:integer;

max:real;

begin

clrscr;

write('The amount of data n = '); readln(n);

writeln;

Program Pascal untuk Materi Metode Numerik

Page 25: tpw NEW

25Tugas Metode Numerik

for i:=1 to n do

begin

write('data ',i,' : '); readln(a[i]);

end;

writeln;

max:=a[1]; l:=1;

for i:=1 to n-1 do

begin

if max<a[i+1] then

begin

max:=a[i+1];

l:=i+1;

end;

end;

writeln('Maximun value is ',max:2:0);

writeln('The position of maximum value is : ',l);

readln;

end.

Program Pascal untuk Materi Metode Numerik