📄 d7r4.txt
字号:
implementation
//PROGRAM D7R4
//Driver for routine SVDFIT
uses
unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const
s1='%10.6f';
NPT = 100; NPOL = 5; SPREAD = 0.02;
var
CVM,U,V:matrx2;
X,Y,SIG:ARRAY[0..100] of real; A,W:ARRAY[0..5] of real;
I,MP,NP:integer; CHISQ:real;
F:TextFile;
begin
SetLength(CVM,6,6);
SetLength(U,101,6);
SetLength(V,6,6);
New(ISET); New(GSET);
Iset^:=0; GSET^:=0;
Randomize;
//Polynomial fit
MP:= NPT;
NP:= NPOL;
For I:= 1 To NPT do
begin
X[I]:= 0.02 * I;
Y[I]:= 1 + X[I] * (2 + X[I] * (3 + X[I] * (4 + X[I] * 5)));
Y[I]:= Y[I] + SPREAD * GASDEV;
SIG[I]:= SPREAD;
end;
SVDFIT(X, Y, SIG, NPT, A, NPOL, U, V, W, MP, NP, CHISQ, 'FPOLY');
SVDVAR(V, NPOL, NP, W, CVM, NPOL);
//输出计算结果到文件
AssignFile(F, 'd:\delphi_shu\p7\d7r4.dat');
Rewrite(F);
Writeln(F,'Polynomial fit');
Writeln(F);
For I:= 1 To NPOL do
Writeln(F, Format(s1,[A[I]]),' +- ',format(s1,[Sqrt(CVM[I, I])]));
Writeln(F);
Writeln(F,'Chi-squared ', Format(s1,[CHISQ]));
SVDFIT(X, Y, SIG, NPT, A, NPOL, U, V, W, MP, NP, CHISQ, 'FLEG');
SVDVAR(V, NPOL, NP, W, CVM, NPOL);
Writeln(F);
Writeln(F,'Legendre polynomial fit');
For I:= 1 To NPOL do
Writeln(F, Format(s1,[A[I]]),' +- ',format(s1,[Sqrt(CVM[I, I])]));
Writeln(F);
Writeln(F,'Chi-squared ', Format(s1,[CHISQ]));
CloseFile(F);
//屏幕显示计算结果
memo1.Lines.LoadFromFile('d:\delphi_shu\p7\d7r4.dat');
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -