Senin, 08 April 2013

LA Matlan 2 IV

Program Newton Raphson
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

 
;