]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/04/01 15:02:28 mclareni | |
6 | * Mathlib gen | |
7 | * | |
8 | * | |
9 | #include "gen/pilot.h" | |
10 | SUBROUTINE LFITW(X,Y,W,L,KEY,A,B,E) | |
11 | C | |
12 | C TO PERFORM A WEIGHTED STRAIGHT LINE FIT | |
13 | C | |
14 | C FOR FORMULAE USED SEE MENZEL, FORMULAS OF PHYSICS P.116 | |
15 | C | |
16 | C FIT IS OF Y=AX+B , WITH S**2 ESTIMATOR E. WEIGHTS ARE IN W. | |
17 | C IF KEY=0, POINTS WITH Y=0 ARE IGNORED | |
18 | C L IS NO. OF POINTS | |
19 | C | |
20 | DIMENSION X(1),Y(1),W(1) | |
21 | C | |
22 | C CALCULTE SUMS | |
23 | IF(L.LE.1) GO TO 1 | |
24 | W2=0. | |
25 | W2X=0. | |
26 | W2Y=0. | |
27 | W2XY=0. | |
28 | W2X2=0. | |
29 | W2Y2=0. | |
30 | ICNT=0 | |
31 | DO 2 J=1,L | |
32 | IF(Y(J).EQ.0..AND.KEY.EQ.0) GO TO 2 | |
33 | WW=W(J)*W(J) | |
34 | W2=WW+W2 | |
35 | WWF=WW*X(J) | |
36 | W2X=WWF+W2X | |
37 | W2X2=WWF*X(J)+W2X2 | |
38 | W2XY=WWF*Y(J)+W2XY | |
39 | WWFI=WW*Y(J) | |
40 | W2Y=WWFI+W2Y | |
41 | W2Y2=WWFI*Y(J)+W2Y2 | |
42 | ICNT=ICNT+1 | |
43 | 2 CONTINUE | |
44 | C | |
45 | C FIT PARAMETERS | |
46 | A=(W2XY-W2X*W2Y/W2)/(W2X2-W2X**2/W2) | |
47 | B=(W2Y-A*W2X)/W2 | |
48 | IF(ICNT.LE.2) GO TO 3 | |
49 | E=(W2Y2-W2Y**2/W2-(W2XY-W2X*W2Y/W2)**2/(W2X2-W2X**2/W2))/(ICNT-2) | |
50 | GO TO 4 | |
51 | C | |
52 | C ISUFFICIENT POINTS | |
53 | 1 A=0. | |
54 | B=0. | |
55 | 3 E=0. | |
56 | 4 RETURN | |
57 | END |