program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Math;
procedure qwe;
begin
WriteLn('');
WriteLn(' ');
WriteLn;
end;
procedure FindXY;
const
x1 : array [1..4] of Real = (1,1,2,1);
x2 : array [1..4] of Real = (-1,1,0.5,0.5);
var
i, j, k, u : byte;
q, n, m, r, s : integer;
a : array [1..2, 1..2] of Real;
b, x, f : array [1..2] of Real;
xx, e, h : Real;
procedure Func;
begin
f[1] := tan(x[1]-x[2])-x[1]*x[2];
f[2] := 0.7*x[1]*x[1]+2*x[2] - 1;
end;
begin
n := 2;
m := 1000;
e := 1e-8;
for u := 1 to 2 do
begin
x[1] := x1[u];
x[2] := x2[u];
s := 0;
repeat
Func;
for i := 1 to n do
b[i] := - f[i];
for j := 1 to n do
begin
xx := x[j];
h := e * abs(xx);
x[j] := xx + h;
Func;
for i := 1 to n do
a[i, j] := (f[i] + b[i]) / h;
x[j] := xx;
end;
s := s + 1;
if s = m + 1 then Exit;
for i := 1 to n - 1 do
for j := i + 1 to n do
begin
a[j, i] := - a[j, i] / a[i, i];
for k := i + 1 to n do
a[j, k] := a[j, k] + a[j, i] * a[i, k];
b[j] := b[j] + a[j, i] * b[i];
end;
f[n] := b[n] / a[n, n];
for i := n - 1 downto 1 do
begin
h := b[i];
for j := i + 1 to n do
h := h - f[j] * a[i, j];
f[i] := h / a[i, i];
end;
r := 0;
for i := 1 to n do
begin
x[i] := x[i] + f[i];
if abs(f[i] / x[i]) > e then r := 1;
end
until r <> 1;
WriteLn(' ', u,' x, y : ',x[1]:4:3, x[2]:8:3);
end;
end;
ReadLn;
end