Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ Π°Π»Π³Π΅Π±ΡΠ°ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΠ°ΡΡΡΠ° Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅
ΠΠ°ΡΡΠΈΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Π Π±ΡΠ΄Π΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ n x n, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅/ΡΡΡΠΎΠΊΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ°Π²Π΅Π½ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ — 0. ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Pkl Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ k-ΡΠΎΠ³ΠΎ ΠΈ l-ΡΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ². ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ LU-ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈ i-ΡΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ Π°Π»Π³Π΅Π±ΡΠ°ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΠ°ΡΡΡΠ° Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΠΊΠΈ Π ΠΎΡΡΠΈΠΉΡΠΊΠΎΠΉ Π€Π΅Π΄Π΅ΡΠ°ΡΠΈΠΈ ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
" ΠΠ ΠΠΠΠ£Π ΠΠ‘ΠΠΠ ΠΠΠ‘Π£ΠΠΠ Π‘Π’ΠΠΠΠΠ«Π Π£ΠΠΠΠΠ Π‘ΠΠ’ΠΠ’"
Π€Π°ΠΊΡΠ»ΡΡΠ΅Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΠ°ΡΠ΅Π΄ΡΠ° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ΅ ΠΠ’Π§ΠΠ’ ΠΠΎ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΌΡ ΠΠΎ ΠΊΡΡΡΡ ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ «Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π‘ΠΠΠ£ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΠ°ΡΡΡΠ° Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅»
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ:
Π―ΡΠΊΠΎΠ²Π° Π.Π.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π‘ΡΡΠ΄Π΅Π½Ρ Π³Ρ. 09ΠΠΠ ΠΠ²Π΄ΠΎΠΊΠΈΠΌΠΎΠ² Π. Π.
ΠΡΠ΅Π½Π±ΡΡΠ³ 2011
- 1) ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
- 2) ΠΡΠ°ΡΠΊΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
- 3) ΠΠ»Π³ΠΎΡΠΈΡΠΌ
- 4) ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°
- 5) ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- 6) Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
- 7) ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π² MathCad
1) ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ°ΠΉΡΠΈ ΠΊΠΎΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ Π°Π»Π³Π΅Π±ΡΠ°ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΠ°ΡΡΡΠ° Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅.
2) ΠΡΠ°ΡΠΊΠΈΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ Π°Π»Π³Π΅Π±ΡΠ°ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ (Π‘ΠΠΠ£) ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄
Ax=b,
Π³Π΄Π΅, ,
Π‘ΠΠΠ£ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΡΠ°Π½Π³ ΠΌΠ°ΡΡΠΈΡΡ, Π ΡΠ°Π²Π΅Π½ n (ΡΠΈΡΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ) ΠΈ Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΡΠ°, Π Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π‘ΠΠΠ£:
1) ΠΠ΅ΡΠΎΠ΄ ΠΡΠ°ΠΌΠ΅ΡΠ°;
2) ΠΠ΅ΡΠΎΠ΄ ΠΠ°ΡΡΡΠ°;
3) ΠΠ°ΡΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄;
4) LU-ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅;
5) ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΠΠ°ΡΡΡΠ° Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅.
ΠΠ°ΡΡΠΈΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Π Π±ΡΠ΄Π΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ n x n, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅/ΡΡΡΠΎΠΊΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ°Π²Π΅Π½ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ — 0. ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Pkl Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ k-ΡΠΎΠ³ΠΎ ΠΈ l-ΡΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ².
ΠΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΡΠ° Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ, ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠ°Ρ ΠΌΠ°ΡΡΠΈΡΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΡΠ° P*A ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ Π½ΡΠ»Ρ Π³Π»Π°Π²Π½ΡΠ΅ ΠΌΠΈΠ½ΠΎΡΡ.
ΠΠ°ΠΉΠ΄Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΡΠ°Π²ΠΈΠΌ Π΅Π³ΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ.
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ LU-ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈ i-ΡΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² i-ΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Pij, Π³Π΄Π΅ j — Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π² i-ΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
Π³Π°ΡΡΡ Π°Π»Π³Π΅Π±ΡΠ°ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ
3) ΠΠ»Π³ΠΎΡΠΈΡΠΌ
0) Π, b, i:=1.
1) ΠΡΠ΅ΠΌ Π² i-ΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ aii, Π½Π°Ρ ΠΎΠ΄Ρ Π*Π ji, Π³Π΄Π΅ j — Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π² i-ΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π.
2) ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ Li, Ai:=Li*Π*Π ji, Bi:=Li*b.
3) ΠΡΠ»ΠΈ i=n, ΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ°Π³Ρ 4. ΠΠ½Π°ΡΠ΅ — i:=i+1, ΠΊ ΡΠ°Π³Ρ 1.
4) ,
Π³Π΄Π΅ — n-Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²Π΅ΠΊΡΠΎΡΠ° bn-1, Π° — ΡΡΠΎΡΡΠΈΠΉ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΏΡΠ°Π²ΠΎΠΌ ΡΠ³Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΡΡ an-1.
Π³Π΄Π΅. Ρ — ΠΈΡΠΊΠΎΠΌΡΠΉ Π²Π΅ΠΊΡΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
4) ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°
5) ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, Grids, ComCtrls;
type
TForm1 = class (TForm)
Edit1: TEdit;
Label1: TLabel;
UpDown1: TUpDown;
StringGrid1: TStringGrid;
Label2: TLabel;
StringGrid2: TStringGrid;
Edit2: TEdit;
Label3: TLabel;
XPManifest1: TXPManifest;
Button1: TButton;
procedure Edit1Change (Sender: TObject);
procedure Button1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var l, la, a: array [0.100, 0.100] of Real; //Π€ΠΎΡΠΌΠ°Ρ: Π½ΠΎΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΡΡ L, ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎΠ»Π±ΡΡ
lb, b, xsolved: array [0.100] of real; //xsolved — Π²Π΅ΠΊΡΠΎΡ-ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π‘ΠΠΠ£
zz:Real; //ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
i, j, n, k: integer;
ch: array [0.100] of Integer;
Form1: TForm1;
implementation
{$R *.dfm}
procedure lmatrix (num: integer);
//(num+1) — Π½ΠΎΠΌΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ L
//Π‘Π°ΠΌΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡ L c ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ (num+1)
begin
for i:=0 to (n-1) do begin
for j:=0 to (n-1) do L[i, j]: =0;
L[i, i]: =1;
end;
L[num, num]: =1/a[num, num];
for i:=(num+1) to (n-1) do begin
L[i, num]: =-a[i, num]*L[num, num];
L[i, i]: =1;
end;
end;
procedure lamatrix (num:integer);
//ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ L (num+1)*…*L (1)*A
var x: real;
begin
if num=0 then
for i:=0 to (n-1) do
for j:=0 to (n-1) do
LA[i, j]: =a[i, j]
else
for i:=0 to (n-1) do
for j:=0 to (n-1) do begin
x:=0;
for k:=0 to (n-1) do
x:=x+l[i, k]*a[k, j];
LA[i, j]: =x;
end;
for i:=0 to (n-1) do
for j:=0 to (n-1) do
a[i, j]: =La[i, j];
end;
procedure lbvector (num:integer);
//ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²Π΅ΠΊΡΠΎΡ L (num+1)*…*L (1)*b
var x: real;
begin
if num=0 then
for j:=0 to (n-1) do
LB[j]: =b[j]
else
for i:=0 to (n-1) do begin
x:=0;
for j:=0 to (n-1) do
x:=x+l[i, j]*b[j];
LB[i]:=x;
end;
for i:=0 to (n-1) do b[i]: =lb[i];
end;
procedure replace (num:integer);
begin
//ΠΠΎΠΈΡΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅
zz:=la[num, num];
for i:=(num+1) to (n-1) do
if Abs (zz)
zz:=la[num, i];
ch[num]:=i;
end;
//ΠΠ΅Π½ΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ°ΠΌΡΠΉ Π»Π΅Π²ΡΠΉ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΠΈ ΡΡΠΎΠ»Π±Π΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅
for i:=0 to (n-1) do begin
zz:=la[i, ch[num]];
la[i, ch[num]]:=la[i, num];
la[i, num]:=zz;
end;
for i:=0 to (n-1) do
for j:=0 to (n-1) do
a[i, j]: =La[i, j];
end;
procedure solving;
begin
xsolved[n-1]: =lb[n-1]/la[n-1, n-1];
for i:=(n-2) downto 0 do begin
zz:=0;
for j:=i to (n-1) do
zz:=zz+la[i, j]*xsolved[j];
xsolved[i]:=lb[i]-zz;
end;
for i:=(n-2) downto 0 do begin
zz:=xsolved[ch[i]];
xsolved[ch[i]]:=xsolved[i];
xsolved[i]:=zz;
end;
end;
procedure TForm1. Edit1Change (Sender: TObject);
begin
n:=StrToInt (Edit1.Text);
StringGrid1.ColCount:=n;
StringGrid1.RowCount:=n;
StringGrid2.RowCount:=n;
end;
procedure TForm1. Button1Click (Sender: TObject);
var i, j: integer;
begin
//ΠΠ±Π½ΡΠ»ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΌΠ°ΡΡΠΈΡΡ Π΄Π»Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
for j:=0 to n do begin
for k:=0 to n do begin
l[j, k]: =0;
la[j, k]:=0;
a[j, k]:=0;
end;
lb[j]:=0;
b[j]:=0;
xsolved[j]:=0;
end;
Edit2.Text:='';
//Π‘ΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ, Π ΠΈ Π²Π΅ΠΊΡΠΎΡΠ° b
for i:=0 to (n-1) do begin
for j:=0 to (n-1) do
a[i, j]: =StrToFloat (StringGrid1.Cells[j, i]);
b[i]:=StrToFloat (StringGrid2.Cells[0,i]);
end;
for i:=0 to (n-2) do begin
lamatrix (i);
lbvector (i);
replace (i);
lmatrix (i);
end;
lamatrix (n-1);
lbvector (n-1);
solving;
for i:=0 to (n-1) do Edit2. Text:=Edit2.Text+'x'+IntTostr (i+1)+'='+FloatTostr (xsolved[i])+'; ';
end;
end.
6) Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
Π ΠΈΡΡΠ½ΠΎΠΊ 1 — ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π‘ΠΠΠ£.
7) ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π² MathCad
Π ΠΈΡΡΠ½ΠΎΠΊ 2 — ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π‘ΠΠΠ£ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° MathCad.