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

📄 unit1.pas

📁 用于开发税务票据管理的软件
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;
procedure FUNCS(X:real;var AFUNC:array of real; MA:integer);
type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
  matrx2=array of array of real;
var
  Form1: TForm1;
  ISET:^integer; gset:^real;
implementation
//PROGRAM D7R2
//Driver for routine LFIT
uses
  unit2;
{$R *.DFM}
procedure FUNCS(X:real;var AFUNC:array of real; MA:integer);
var
    I:integer;
begin
    AFUNC[1]:= 1;
    For I:= 2 To MA do
      AFUNC[I]:= X * AFUNC[I - 1];
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  s1='%14.6f'; s2='.#####0e+00';  s3='#'; s4='.#0e+00'; s5='%9.6f';
  NPT = 100; SPREAD = 0.1; NTERM = 3;
var
  COVAR:matrx2;
  A,X,Y,SIG:array[0..100] of real; LISTA:ARRAY[0..100] of integer;
  I,J,MFIT,II:integer; AAA,CHI2,Q,CHISQ:real;
  F:TextFile;
begin
  SetLength(COVAR,4,4);
  New(ISET); New(GSET);
  Iset^:=0; GSET^:=0;
  Randomize;
  For I:=1 To NPT do
  begin
    X[I]:=0.1 * I;
    Y[I]:=NTERM;
    For J:=NTERM-1 DownTo 1 do
      Y[I]:= J + Y[I]*X[I];
    Y[I]:= Y[I]+SPREAD*GASDEV;
    SIG[I]:=SPREAD;
  end;
  MFIT:=NTERM;
  For I:= 1 To MFIT do
    LISTA[I]:= I;
  LFIT(X, Y, SIG, NPT, A, NTERM, LISTA, MFIT, COVAR, NTERM, CHISQ);
  //输出计算结果到文件
  AssignFile(F, 'd:\delphi_shu\p7\d7r2.dat');
  Rewrite(F);
  Writeln(F,'Parameter              Uncertainty');
  For I:= 1 To NTERM do
    Writeln(F,'A(',FormatFloat(s3,I), ')= ', Format(s5,[A[I]]),
                    Format(s1,[Sqrt(COVAR[I, I])]));
  Writeln(F);
  Writeln(F,'Chi-squared =  ', FormatFloat(s2,CHISQ));
  Writeln(F);
  Writeln(F,'Full covariance matrix');
  For I:= 1 To NTERM do
    Writeln(F,FormatFloat(s4,COVAR[I, 1]),'   ',FormatFloat(s4,COVAR[I, 2]),
              '   ',FormatFloat(s4,COVAR[I, 3]));
  //Now test the LISTA feature
  For I:= 1 To NTERM do
    LISTA[I]:= NTERM + 1 - I;
  LFIT(X, Y, SIG, NPT, A, NTERM, LISTA, MFIT, COVAR, NTERM, CHISQ);
  Writeln(F);
  Writeln(F,'Parameter              Uncertainty');
  For I:= 1 To NTERM do
    Writeln(F,'A(',FormatFloat(s3,I), ')= ', Format(s5,[A[I]]),
                    Format(s1,[Sqrt(COVAR[I, I])]));
  Writeln(F);
  Writeln(F,'Chi-squared =  ', FormatFloat(s2,CHISQ));
  Writeln(F);
  Writeln(F,'Full covariance matrix');
  For I:= 1 To NTERM do
    Writeln(F,FormatFloat(s4,COVAR[I, 1]),'   ',FormatFloat(s4,COVAR[I, 2]),
              '   ',FormatFloat(s4,COVAR[I, 3]));
  //Now check results of restricting fit s
  II:= 1;
  For I:= 1 To NTERM do
  begin
    AAA:= I - (I Div 2) * 2;
    If AAA = 1 Then
    begin
      LISTA[II]:= I;
      II:= II + 1;
    end;
  end;
  MFIT:= II - 1;
  LFIT(X, Y, SIG, NPT, A, NTERM, LISTA, MFIT, COVAR, NTERM, CHISQ);
  Writeln(F);
  Writeln(F,'Parameter              Uncertainty');
  For I:= 1 To NTERM do
    Writeln(F,'A(',FormatFloat(s3,I), ')= ', Format(s5,[A[I]]),
                    '   ',Format(s1,[Sqrt(COVAR[I, I])]));
  Writeln(F);
  Writeln(F,'Chi-squared =  ', FormatFloat(s2,CHISQ));
  Writeln(F);
  Writeln(F,'Full covariance matrix');
  For I:= 1 To NTERM do
    Writeln(F,FormatFloat(s4,COVAR[I, 1]),'   ',FormatFloat(s4,COVAR[I, 2]),
              '   ',FormatFloat(s4,COVAR[I, 3]));
  CloseFile(F);
  //屏幕显示计算结果
  memo1.Lines.LoadFromFile('d:\delphi_shu\p7\d7r2.dat');
end;

end.

⌨️ 快捷键说明

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