Upload
uvidanti
View
83
Download
2
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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