📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
NDATAT:integer; X,Y,XT,YT,ARR:array[0..1000] of real;
AA,ABDEVT:real;
ISET:^integer; GSET:^real;
implementation
//PROGRAM D7R10
//Driver for routine MEDFIT
uses
unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const
s1='%8.4f'; s2='###'; s3='%4.2f';
NPT = 100; SPREAD = 0.1;
var
X,Y,SIG:array[0..100] of real;
I,MWT:integer; A,B,SIGA,SIGB,CHI2,Q,ABDEV:real;
F:TextFile;
begin
New(ISET); New(GSET);
Iset^:=0; GSET^:=0;
Randomize;
For I:= 1 To NPT do
begin
X[I]:= 0.1 * I;
Y[I]:= -2 * X[I] + 1 + SPREAD * GASDEV;
SIG[I]:= SPREAD;
end;
MWT:= 1;
FIT(X, Y, NPT, SIG, MWT, A, B, SIGA, SIGB, CHI2, Q);
//输出计算结果到文件
AssignFile(F, 'd:\delphi_shu\p7\d7r10.dat');
Rewrite(F);
Writeln(F,'According to routine FIT the result is:');
Writeln(F);
Writeln(F,' A =', Format(s1,[A]), ' Uncertainty:', Format(s1,[SIGA]));
Writeln(F,' B =', Format(S1,[B]), ' Uncertainty:',Format(S1,[SIGB]));
Writeln(F);
Writeln(F,' Chi-squared: ', Format(S1,[CHI2]), ' for ',
FormatFloat(s2, NPT), ' points');
Writeln(F);
Writeln(F,' Goodness-of-fit:', Format(s1,[Q]));
Writeln(F);
Writeln(F,'According to routine MEDFIT the result is:');
Writeln(F);
MEDFIT(X, Y, NPT, A, B, ABDEV);
Writeln(F,' A =', Format(s1,[A]));
Writeln(F,' B =', Format(s1,[B]));
Writeln(F);
Writeln(F,' Absolute deviation (per data point):',Format(S1,[ABDEV]));
Writeln(F);
Writeln(F,' (note: Gaussian spread is ', Format(S3,[SPREAD]),')');
CloseFile(F);
//屏幕显示计算结果
memo1.Lines.LoadFromFile('d:\delphi_shu\p7\d7r10.dat');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -