{$N+}Program M; CONST st=2; h=0.01; TYPE vektor2=array[1..st] of real; vektor3=array[1..st] of integer; matice=array[1..st,1..st] of real; FUNCTION f1(x,y:real):real; BEGIN f1:=x*x+4*x-y*y-2*y-1; END; FUNCTION df1dx(x,y:real):real; BEGIN df1dx:=1/(2*h)*(f1(x+h,y)-f1(x-h,y)); END; FUNCTION df1dy(x,y:real):real; BEGIN df1dy:=1/(2*h)*(f1(x,y+h)-f1(x,y-h)); END; FUNCTION f2(x,y:real):real; BEGIN f2:=x*x+5*y-4; END; FUNCTION df2dx(x,y:real):real; BEGIN df2dx:=1/(2*h)*(f2(x+h,y)-f2(x-h,y)); END; FUNCTION df2dy(x,y:real):real; BEGIN df2dy:=1/(2*h)*(f2(x,y+h)-f2(x,y-h)); END; {$I GAUSSJ.PAS} VAR n,i:integer; xo,yo,xn,yn:real; a:matice; b:vektor2; BEGIN n:=1; xo:=1; yo:=1; FOR i:=1 to 20 DO BEGIN WRITELN('Krok ',n,' (xo,yo) (',xo:6:5,',',yo:6:5,') (f1,f2) (',f1(xo,yo):6:5,',',f2(xo,yo):6:5,')'); a[1,1]:=df1dx(xo,yo); a[1,2]:=df1dy(xo,yo); a[2,1]:=df2dx(xo,yo); a[2,2]:=df2dy(xo,yo); b[1]:=-f1(xo,yo); b[2]:=-f2(xo,yo); GAUSSJ(a,b); xo:=xo+b[1]; yo:=yo+b[2]; n:=n+1; READLN; END; READLN; END.