Senin, 20 Mei 2013

Koding untuk metode newton raphson


Metode Matematika Newton Raphson

Koding program untuk 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.


Tidak ada komentar:

Posting Komentar