⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d7r8b.txt

📁 用于开发税务票据管理的软件
💻 TXT
字号:
implementation
//PROGRAM D7R8B
//Driver for routine MRQCOF
uses
  unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const
  s1='%11.4f'; s2='%8.4f';
  NPT = 100; MA = 6; SPREAD = 0.1;
var
  COVAR,ALPHA:matrx2;
  X,Y,SIG:array[0..100] of real;   A,BETA,GUES:array[0..6] of real;
  LISTA:array[0..6] of integer;
  I,J,MFIT:integer;    CHISQ:real;
  F:TextFile;
begin
  SetLength(COVAR,7,7);  SetLength(ALPHA,7,7);
  New(ISET); New(GSET);
  Iset^:=0; GSET^:=0;
  Randomize;
  A[1]:=5;  A[2]:=2;  A[3]:=3;
  A[4]:=2;  A[5]:=5;  A[6]:=3;
  GUES[1]:=4.9;  GUES[2]:=2.1;  GUES[3]:=2.9;
  GUES[4]:=2.1;  GUES[5]:=4.9;  GUES[6]:=3.1;
  //First try a sum of two Gaussians
  For I:= 1 To NPT do
  begin
    X[I]:= 0.1 * I;
    Y[I]:= 0;
    Y[I]:= Y[I] + A[1] * Exp(-Sqr((X[I] - A[1 + 1]) / A[1 + 2]));
    Y[I]:= Y[I] + A[4] * Exp(-Sqr((X[I] - A[4 + 1]) / A[4 + 2]));
    Y[I]:= Y[I] * (1 + SPREAD * GASDEV);
    SIG[I]:= SPREAD * Y[I];
  end;
  MFIT:=MA;
  For I:=1 To MFIT do
    LISTA[I]:=I;
  For I:=1 To MA do
    A[I]:=GUES[I];
  MRQCOF(X,Y,SIG,NPT,A,MA,LISTA,MFIT,ALPHA,BETA,MA,CHISQ);
  //输出计算结果到文件
  AssignFile(F, 'd:\delphi_shu\p7\d7r8B.dat');
  Rewrite(F);
  Writeln(F,'Matrix ALPHA');
  Writeln(F);
  For I:=1 To MA do
    Writeln(F,Format(s1,[ALPHA[I,1]]),Format(s1,[ALPHA[I,2]]),
              Format(s1,[ALPHA[I,3]]),Format(s1,[ALPHA[I,4]]),
              Format(s1,[ALPHA[I,5]]),Format(s1,[ALPHA[I,6]]));
  Writeln(F);
  Writeln(F,'Vector BETA');
  Writeln(F);
  Writeln(F,Format(s1,[BETA[1]]),Format(s1,[BETA[2]]),
              Format(s1,[BETA[3]]),Format(s1,[BETA[4]]),
              Format(s1,[BETA[5]]),Format(s1,[BETA[6]]));
  Writeln(F);
  Writeln(F,' Chi-squared:  ',Format(s2,[CHISQ]));
  Writeln(F);
  //Next fix one line and improve the other
  For I:=1 To 3 do
    LISTA[I]:=I + 3;
  MFIT:= 3;
  For I:=1 To MA do
    A[I]:=GUES[I];
  MRQCOF(X,Y,SIG,NPT,A,MA,LISTA,MFIT,ALPHA,BETA,MA,CHISQ);
  Writeln(F,'Matrix ALPHA');
  Writeln(F);
  For I:=1 To MFIT do
    Writeln(F,Format(s1,[ALPHA[I,1]]),Format(s1,[ALPHA[I,2]]),
              Format(s1,[ALPHA[I,3]]));
  Writeln(F);
  Writeln(F,'Vector BETA');
  Writeln(F);
  Writeln(F,Format(s1,[BETA[1]]),Format(s1,[BETA[2]]),
              Format(s1,[BETA[3]]));
  Writeln(F);
  Writeln(F,' Chi-squared:  ',Format(s2,[CHISQ]));
  CloseFile(F);
  //屏幕显示计算结果
  memo1.Lines.LoadFromFile('d:\delphi_shu\p7\d7r8B.dat');
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -