, (1.1) , . , . .
1. , k - k i = k,k+ 1 ,,m. , , k - , . k .
.
, ½ 21½>½ 11½,
. .
2. , .. .
½ 12½>½ 11½, 1 2:
.
.
3. 1 2. , .
( )
= b, (1.11)
− .
(1.11) :
1.
= L ∙ L .
4- :
.
:
, , , , ,
, , .
2.
Ly = b,
L T x = .
1) , .
2) , .
1. .
1.1 .
1.2 PROCEDURE SIMQ.
2. ()
2.1 ().
2.2 () Procedure holet.
Free Pascal Delphi.
|
|
.
1
b | ||||||
1,84 | 2,25 | 2,53 | -6,09 | |||
2,32 | 2,60 | 2,82 | -6,98 | |||
1,83 | 2,06 | 2,24 | -5,52 | |||
2,58 | 2,93 | 3,13 | -6,66 | |||
1,32 | 1,55 | 1,58 | -3,58 | |||
2,09 | 2,25 | 2,34 | -5,01 | |||
2,18 | 2,44 | 2,49 | -4,34 | |||
2,17 | 2,31 | 2,49 | -3,91 | |||
3,15 | 3,22 | 3,17 | -5,27 | |||
1,54 | 1,70 | 1,62 | -1,97 | |||
3,69 | 3,73 | 3,59 | -3,74 | |||
2,45 | 2,43 | 2,25 | -2,26 | |||
1 | ||||||
1 2 3 | ||||||
1,53 | 1,61 | 1,43 | -5,13 | |||
2,35 | 2,31 | 2,07 | -3,69 | |||
3,83 | 3,73 | 3,45 | -5,98 | |||
2,36 | 2,37 | 2,13 | 1,48 | |||
2,51 | 2,40 | 2,10 | 1,92 | |||
2,59 | 2,41 | 2,06 | 2,16 | |||
3,43 | 3,38 | 3,09 | 5,52 | |||
4,17 | 4,00 | 3,65 | 6,93 | |||
4,30 | 4,10 | 3,67 | 7,29 | |||
3,88 | 3,78 | 3,45 | 10,41 | |||
3,00 | 2,79 | 2,39 | 8,36 | |||
2,67 | 2,37 | 1,96 | 7,62 | |||
3,40 | 3,26 | 2,90 | 13,05 | |||
2,64 | 2,39 | 1,96 | 10,30 | |||
4,64 | 4,32 | 3,85 | 17,89 | |||
2,53 | 2,36 | 1,93 | 12,66 | |||
3,95 | 4,11 | 3,66 | 21,97 | |||
2,78 | 2,43 | 1,94 | 13,93 | |||
2,16 | 1,96 | 1,56 | 13,16 | |||
3,55 | 3,23 | 2,78 | 21,73 | |||
4,85 | 4,47 | 3,97 | 29,75 | |||
2,69 | 2,47 | 2,07 | 19,37 | |||
2,73 | 2,39 | 1,92 | 19,43 | |||
2.93 | 2,52 | 2,02 | 20,80 | |||
3,72 | 3,47 | 3,06 | 30,74 | |||
4,47 | 4,10 | 3,63 | 36,80 | |||
4,96 | 4,53 | 4,01 | 40,79 | |||
4,35 | 4,39 | 3,67 | 40,15 | |||
4,04 | 3,65 | 3,17 | 36,82 | |||
3,14 | 2,69 | 2,17 | 28,10 | |||
4,07 | 3,79 | 3,37 | 40,77 | |||
2,84 | 2,44 | 1,95 | 27,68 | |||
4,99 | 4,50 | 3,97 | 49,37 | |||
3,19 | 2,89 | 2,47 | 33,91 | |||
4,43 | 4,02 | 3,53 | 47,21 | |||
3,40 | 2,92 | 2,40 | 32,92 | |||
2,57 | 2,26 | 1,84 | 28,66 | |||
4,47 | 4,03 | 3,57 | 50,27 | |||
4,89 | 4,40 | 3,87 | 55,03 | |||
1 | ||||||
2,83 | 2,50 | 2,08 | 33,28 | |||
3,00 | 2,55 | 2,07 | 33,59 | |||
3,72 | 3,21 | 2,68 | 43,43 | |||
3,78 | 3,44 | 3,02 | 46,81 | |||
4,33 | 3,88 | 3,39 | 53,43 | |||
4,76 | 4,24 | 3,71 | 58,73 | |||
4,59 | 4,24 | 3,82 | 59,54 | |||
4,83 | 4,36 | 3,88 | 62,33 | |||
4,06 | 3,53 | 3,01 | 52,11 | |||
4,56 | 4,20 | 3,78 | 61,86 | |||
3,21 | 2,73 | 2,25 | 42,98 | |||
4,58 | 4,04 | 3,52 | 61,67 | |||
3,75 | 3,39 | 2,97 | 53,38 | |||
4,18 | 3,70 | 3,22 | 59,28 | |||
4,43 | 3,88 | 3,36 | 62,62 | |||
2,95 | 2,58 | 2,16 | 44,16 | |||
5,11 | 4,62 | 4,14 | 46,68 | |||
4,38 | 3,82 | 3,30 | 65,34 | |||
2,93 | 2,55 | 2,14 | 46,41 | |||
3,47 | 2,98 | 2,50 | 54,78 | |||
4,78 | 4,22 | 3,70 | 75,81 | |||
3,74 | 3,36 | 2,94 | 63,26 | |||
4,02 | 3,51 | 3,04 | 67,51 | |||
4,18 | 3,61 | 3,09 | 70,03 | |||
4,07 | 4,28 | 3,87 | 84,43 | |||
5,30 | 4,79 | 4,32 | 95,45 | |||
5,11 | 4,54 | 4,03 | 91,69 | |||
4,90 | 4,50 | 4,09 | 94,18 | |||
3,79 | 3,27 | 2,81 | 71,57 | |||
4,01 | 3,43 | 2,91 | 75,45 | |||
4,25 | 3,84 | 3,43 | 86,07 | |||
3,86 | 3,34 | 2,87 | 77,12 | |||
5,40 | 4,82 | 4,30 | 108,97 | |||
3,35 | 2,94 | 2,53 | 70,69 | |||
5,41 | 4,88 | 4,41 | 115,38 | |||
3,88 | 3,30 | 2,78 | 81,07 | |||
3,05 | 2,64 | 2,23 | 67,17 | |||
4,14 | 3,61 | 3,14 | 91,43 | |||
5,63 | 5,03 | 4,52 | 125,40 | |||
|
|
2.3.1 .
.
1.
8, :
.
:
.
, , :
.
:
.
.
2. .
:
.
:
.
:
.
:
.
2.3.2 PROCEDURE SIMQ
Procedure SIMQ (Nn:Integer;Var Aa:TMatr;
Var Bb:TVector;Var Ks:Integer);
:
Nn − ;
Aa − N *N TMatr = array [1.. n, 1.. n ] of real;
Bb − N TVector = array [1.. n ] of real, .
:
Bb − ;
ks ( ): ks =0 Bb .
.
1.
:
PROCEDURE SIMQ(Nn:Integer;Var Aa:TMatr;Var Bb:TVector;Var Ks:Integer);
Label M1;
Const Eps=1e-21;
Var Max,U,V: Real; I,J,K1,L: Integer;
Begin
For I:=1 To Nn Do Aa[i,Nn+1]:=Bb[i];
For I:=1 To Nn Do
Begin
Max:=Abs(Aa[i,i]); K1:=I;
For L:=I+1 To Nn Do If (Abs(Aa[l,i])>Max) Then
Begin
Max:=Abs(Aa[l,i]); K1:=L;End;
If(Max<Eps) Then Begin Ks:=1; Goto M1;
End Else Ks:=0;
If K1<>I Then
For J:=I To Nn+1 Do
Begin U:=Aa[i,j]; Aa[i,j]:=Aa[k1,j]; Aa[k1,j]:=U; End;
V:=Aa[i,i];
For J:=I To Nn+1 Do Aa[i,j]:=Aa[i,j]/V;
For L:=i+1 To Nn Do Begin
V:=Aa[l,i]; For J:=I+1 To Nn+1 Do Aa[l,j]:=Aa[l,j]-Aa[i,j]*V;
End; End;
Bb[nn]:=Aa[Nn,Nn+1];
For I:=Nn-1 Downto 1 Do Begin Bb[i]:=Aa[i,nn+1];
For J:=I+1 To Nn Do Bb[i]:=Bb[i]-Aa[i,j]*Bb[j];
End;
M1:End;
:
x 1=0.100000E+0001 x 2=0.200000+0001
x 3=0.00000+0001
0
1
1.
2.3.3 ()
.
1.
,
L:
, ,
, , .
:
2. Ly=b LTx=y.
,
.
2.3.4 () Procedure holet
Procedure holet (A 1: Tmatr; var B 1: Tvector;
N: integer);
:
N − ;
A 1− N *N +1, Tmatr = array [1.. n, 1.. n+1 ] of real, N +1 ;
|
|
B 1− Tvector = array [1.. n ] of real.
:
B 1− .
. :
2.
.
:
uses crt;
type
Tmatr=array[1..3,1..4]of real;
Tvector=array[1..3]of real;
const
{ N*N, N+1
}
A:tmatr= ((1,1,1,0),
(1,0,-1,0),
(1,2,1,0));
B:Tvector= (6,-2,8);
var
k,N:integer;
{ }
Procedure vivod_matr(A1:Tmatr;N:integer);
var
i,j:integer;
begin
For i:=1 to N do begin
For j:=1 to N do write(A1[i,j]:15,' ');
writeln;
End;
writeln;
End;
{ }
Procedure vivod_vectr(B1:Tvector; N:integer);
var
j:integer;
begin
For j:=1 to N do writeln('x',j,'=',B1[j]:0,' ');
writeln;
End;
{ }
{
:
N − ;
A1− N *N +1, N +1 ;
B1− .
:
B1− .
B1- ,
:
B1-
}
Procedure holet(A1:Tmatr;var B1:Tvector;N:integer);
var i,j,t:integer;
c,L:Tmatr;
y:Tvector;
buf,summ:real;
Begin
For i:=1 to N do
For j:=1 to N +1 do
begin
c[i,j]:=0;
L[i,j]:=0;
y[i]:=0;
End;
{ }
For i:=1 to N do
For j:=1 to N do
begin
summ:=0.0;
For t:=1 to N do
summ:=A1[t,j]*A1[t,i]+summ;
c[i,j]:=summ;
End;
{ -}
For i:=1 to N do
For j:=1 to N do
y[i]:=A1[j,i]*B1[j]+y[i];
For i:=1 to N do For j:=1 to N do
begin
A1[i,j]:=c[i,j];
B1[i]:=y[i];
End;
For i:=1 to N do
begin
For j:=1 to i do
begin
summ:=0;
For t:=1 to j-1 do
summ:=summ+L[i,t]*L[j,t];
if i<>j then
L[i,j]:=(A1[i,j]-summ)/L[j,j]
else
L[i,i]:=sqrt(A1[i,i]-summ);
End;
End;
For i:=1 to N do L[i,N +1]:=B1[i];
B1[1]:=L[1,N +1]/L[1,1];
For i:=2 to N do
begin
For j:=1 to i-1 do
L[i,N +1]:=L[i,N +1]-L[i,j]*B1[j];
B1[i]:=L[i,N +1]/L[i,i];
End;
For i:=1 to N do
begin
For j:=i+1 to N do
begin
L[i,j]:=L[j,i];
L[j,i]:=0;
End;
L[i,N +1]:=B1[i];
End;
B1[N ]:=L[N,N +1]/L[N,N ];
For i:=N -1 downto 1 do
begin
For j:=i+1 to N do
L[i,N +1]:=L[i,N +1]-L[i,j]*B1[j];
B1[i]:=L[i,N +1]/L[i,i];
End;
End;
begin
N:=3;
writeln('dannaya SLAU');
{ }
vivod_matr(A,N);
writeln('metod Holetckogo');
holet(A,B,N);
vivod_vectr (B, N);
End.
:
x 1= 0.1000000E+0001
x 2= 0.2000000E+0001
x 3= 0.3000000E+0001
2