Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
20071022_Chumac_MU.doc
Скачиваний:
2
Добавлен:
09.11.2019
Размер:
4.54 Mб
Скачать

Текст програми Newton2

Program Newton2; {Уточнення розв'язкiв системи двох не лiнiйних р-нь}

Uses {Funct,} {модуль з функцiями для метода Ньютона}

NewtonS; {модуль з iтерацiйною процедурою NewtonStep}

Const _n=100; {число iтерацiй за замовченням}

Var

OK {ознака "наближення знайдено"}

: boolean;

all, dec, {число всiх цифр i число цифр пiсля коми}

n, iter {число iтерацiй}

: word;

x0,y0, {початкове наближення}

x_old, y_old, {наближення поточного кроку}

dx, dy, {прирости аргументiв}

x_new, y_new {наближення наступного кроку}

: real;

finp, {вихiдний файл}

fout {результуючий файл}

: text;

BEGIN {Newton2}

assign (fout,'Newton2.out'); rewrite (fout);

write (fout,'S<Newton2>');

{ в в е д е н н я п а р а м е т р i в }

assign (finp,'Newton2.inp'); reset(finp);

read(finp,x0); {x0}

readln(finp); read(finp,y0); {y0}

readln(finp); read(finp,n); {n}

readln(finp); read(finp,all); {all}

readln(finp); read(finp,dec); {dec}

if n<=0 then n:=_n; {встановлення числа iтерацiй n}

writeln(fout); write(fout, 'x0=',x0:6:3,' y0=',y0:6:3,

' n=',n:1,' all=',all:1,' dec=',dec:1);

close(finp);

{ м е т о д Н ь ю т о н а }

x_old:=x0; y_old:=y0;

for iter:=1 to n do

begin {for iter:=1 to n}

NewtonStep(x_old,y_old,dx,dy,OK);

if OK=false

then begin {OK=false}

writeln(fout);writeln(fout,iter:3,' знаменник = 0 !'); break;

end {OK=false}

else begin {OK=true}

x_new:=x_old+dx; y_new:=y_old+dy;

writeln(fout);write(fout,iter:3,':{',x_old:all:dec,' ',

y_old:all:dec,'} + {',dx:all:dec,' ',dy:all:dec,'}');

x_old:=x_new; y_old:=y_new;

end; {OK=true}

end; {for iter:=1 to n}

writeln (fout); write (fout,'F<Newton2>');

close (fout);

end. {Newton2}

Текст модуля Funct

У цьому модулі потрібно замінити у рядках із зірочками вказані функції на власні.

Unit Funct;

Interface {Funct}

{права частина F першого рiвняння системи}

function F(x,y:real):real;

{часткова похiдна F по аргументу х}

function Fx(x,y:real):real;

{часткова похiдна вiд F по аргументу y }

function Fy(x,y:real):real;

{права частина G другого рiвняння системи}

function G(x,y:real):real;

{часткова похiдна вiд G по аргументу x}

function Gx(x,y:real):real;

{часткова похiдна вiд G по аргументу y}

function Gy (x,y:real):real;

implementation {Funct}

{права частина першого рiвняння системи}

function F(x,y:real):real; { вкажiть вашу функцiю}

begin {F} F:=y*sin(x)-1; end; { * замiнити F}

{часткова похiдна вiд F по аргументу x}

function Fx(x,y:real):real; { вкажiть вашу функцiю}

begin {Fx} Fx:=y*cos(x); end; { * замiнити Fx}

{ часткова похiдна вiд F по аргументу y}

function Fy (x,y:real):real; { вкажiть вашу функцiю}

begin {Fy} Fy:=sin(x); end; { * замiнити Fy}

{права частина другого рiвняння системи}

function G (x,y:real):real; { вкажiть вашу функцiю}

begin {G} G:=y*y*y-x-2; end; { * замiнити G}

{ часткова похiдна вiд G по аргументу x }

function Gx(x,y:real):real; { вкажiть вашу функцiю}

begin {Gx} Gx:=-1; end; { * замiнити Gx}

{ часткова похiдна вiд G по аргументу y }

function Gy (x,y:real):real; { вкажiть вашу функцiю}

begin {Gy} Gy:=3*y*y; end; {* замiнити Gy}

end. {Funct}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]