home *** CD-ROM | disk | FTP | other *** search
- PROGRAM d14r10(input,output);
- (* driver for routine FGAUSS *)
- CONST
- npt=3;
- nlin=2;
- na=6; (* na=3*nlin *)
- TYPE
- glnparam = ARRAY [1..na] OF real;
- VAR
- e1,e2,f,x,y : real;
- i,j : integer;
- a,dyda,df : glnparam;
-
- (*$I MODFILE.PAS *)
- (*$I FGAUSS.PAS *)
-
- BEGIN
- a[1] := 3.0; a[2] := 0.2; a[3] := 0.5;
- a[4] := 1.0; a[5] := 0.7; a[6] := 0.3;
- writeln;
- writeln('x':6,'y':8,'dyda1':9,'dyda2':8,'dyda3':8,
- 'dyda4':8,'dyda5':8,'dyda6':8);
- FOR i := 1 to npt DO BEGIN
- x := 0.3*i;
- fgauss(x,a,y,dyda,na);
- e1 := exp(-sqr((x-a[2])/a[3]));
- e2 := exp(-sqr((x-a[5])/a[6]));
- f := a[1]*e1+a[4]*e2;
- df[1] := e1;
- df[4] := e2;
- df[2] := a[1]*e1*2.0*(x-a[2])/(a[3]*a[3]);
- df[5] := a[4]*e2*2.0*(x-a[5])/(a[6]*a[6]);
- df[3] := a[1]*e1*2.0*sqr(x-a[2])/(a[3]*a[3]*a[3]);
- df[6] := a[4]*e2*2.0*sqr(x-a[5])/(a[6]*a[6]*a[6]);
- writeln('from FGAUSS');
- write(x:8:4,y:8:4);
- FOR j := 1 to 6 DO write(dyda[j]:8:4);
- writeln;
- writeln('independent calc.');
- write(x:8:4,f:8:4);
- FOR j := 1 to 6 DO write(df[j]:8:4);
- writeln;
- writeln
- END
- END.
-