?? d1r12.txt
字號:
implementation
//PROGRAM D1R12
//Driver for routine SSOR
uses
unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
A,Q,C:matrx2;
B,R,X:Array[0..5] of real;
I,J,II:Integer; OM:real;
F:TextFile;
const
s1='%10.1f'; s2='%13.4f'; s3='##0';
N = 5; EPS = 0.1E-7;
begin
setlength(A ,6,6);
setlength(Q ,6,6);
setlength(C ,6,6);
OM:=1.3; //松弛因子
//輸入已知的方程組的系數矩陣
A[1, 1]:=1; A[1, 2]:=1; A[1, 3]:=0; A[1, 4]:=0; A[1, 5]:=0;
A[2, 1]:=1; A[2, 2]:=2; A[2, 3]:=1; A[2, 4]:=0; A[2, 5]:=0;
A[3, 1]:=0; A[3, 2]:=1; A[3, 3]:=3; A[3, 4]:=1; A[3, 5]:=0;
A[4, 1]:=0; A[4, 2]:=0; A[4, 3]:=1; A[4, 4]:=4; A[4, 5]:=1;
A[5, 1]:=0; A[5, 2]:=0; A[5, 3]:=0; A[5, 4]:=1; A[5, 5]:=5;
//輸入已知的方程組的右端向量B
B[1]:=2; B[2]:=4;
B[3]:=5; B[4]:=6;
B[5]:=6;
//輸出計算結果到文件
AssignFile(F, 'd:\delphi_shu\p1\d1r12.dat');
Rewrite(F);
Writeln(F, '已知的方程組的右端向量');
For I:= 1 To N do
Writeln(F,Format(s1,[B[I]]));
For I:=1 To N do
begin
For J:=1 To N do
C[I,J]:= A[I, J];
end;
For I:=1 To N do
begin
R[I]:= B[I];
X[I]:= 0;
end;
SSOR(C,N,R,X,EPS,OM,II);
Writeln(F, '計算出的方程組的解');
For I:= 1 To N do
Writeln(F,Format(s2,[X[I]]));
Writeln(F, '將計算出的解乘以系數矩陣,以驗證計算結果');
For I:=1 To N do
begin
B[I]:=0;
For J:=1 To N do
B[I]:=B[I] + A[I, J] * X[J];
end;
For I:= 1 To N do
Writeln(F,Format(s1,[B[I]]));
Writeln(F,'迭代次數= ',FormatFloat(s3,II));
CloseFile(F);
//屏幕顯示計算結果
memo1.Lines.LoadFromFile('d:\delphi_shu\p1\d1r12.dat');
end;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -