uses crt;
label
ulang;
var
x,x1,y,y1,z,f,f1,f2 : real;
I : integer;
ab : char;
begin
ulang:
clrscr;
repeat
begin
writeln('Tentukan Akar Persamaan dari f(x)=3x+sin(x)+exp x dengan Metode Newton Raphson');
writeln;
write('Masukan nilai x1 = ');
readln( x1 );
y1 := 3 * x1 + sin ( x1 ) - exp ( x1);
f1 := 3 + cos ( x1 ) - exp ( x1 ); {-- Turunan Pertama --}
f2 := - sin ( x1 ) - exp ( x1 ); {-- Turunan Kedua --}
z := (y1 * f2) / ( f1 * f1 );
writeln(' Nilai f(x1)= ',y1:0:5);
writeln(' Nilai f`(x1)= ',f1:0:5);
writeln(' Nilai f``(x1)= ',f2:0:5);
if abs ( z ) <1 then
writeln(' Nilai x1 OK Memenuhi Syarat yaitu (',z:0:5,') < 1');
end;
until abs ( z ) <1;
readln;
i:=1;
writeln('Penyelesaian persamaan karakteristik dengan metode newton_raphson');
writeln('---------------------------------------------------------------------');
writeln(' n x f(x) error');
writeln('---------------------------------------------------------------------');
repeat
begin
i := i + 1; x := x1 - (y1/ f1);
y := 3 * x + sin (x) - exp (x);
f := 3 + cos (x) - exp (x);
if i<10 then
writeln(': ',i,' :: ',x,' :: ',y,' ::',abs(y),' :')
else
writeln(':',i,' :: ',x,' :: ',y,' ::',abs(y),' :');
x1 := x;
y1 := y;
f1 := f;
end;
until abs( y ) < 1E-07;
writeln('--------------------------------------------------------------------');
writeln('Akar Persamaannya x= ',x);
writeln('errornya = ',abs(y));
write('apakah anda ingin mengulanginya ( y / t ): ');
readln( ab );
if ( ab = 'y' ) or ( ab = 'Y' ) then
begin
goto ulang;
end
else
end.
Xn+1= = Xn + (f(Xn)/f'(Xn))
Jika memenuhi :
|(f'(Xn)*f''(Xn)/f'(Xn)*f'(Xn)| < 1
dimana X1 adalah titik awal yang ditentukan sebelum iterasi.
Contoh Soal : f(x) = 3x + sin x - e^x
Langkah 1 :
Mencari turunan 1 dan 2 dari f(x)
f'(x) = 3 + cos x - e^x
f''(x) = -sin x - e^x
Langkah 2 :
Menentukan x1 dalam persamaan. Contoh x1 = 0.5
f(x) = 3(0.5) + sin (0.5) - e^(0.5) = 0.33070
f'(x) = 3 + cos (0.5) - e^(0.5) = 2.22886
f''(x) = -sin (0.5) - e^(0.5) = -2.12815
| (2.22886 * -2.12815 / 2.22886 * 2.22886 ) | < 1 = -0.14167 < 1
Langkah 3 :
Lakukan Iterasi dengan Persamaan :
Xn+1= = Xn + (f(Xn)/f'(Xn))
x2 = x1 - (f(x1)/f'(x1)) = 3,51626
Langkah 4 :
Proses iterasi (Langkah 3) dilakukan sampai didapatkan nilai x yang tidak berubah / hampir tidak berubah. Penyelesaian diatas s/d f(x) < 10^-7
OUTPUT :
p.s : Program diatas langsung saja di copas kedalam notepad~ >.<
0 komentar:
Posting Komentar