File LESQ.CO

Directory of image this file is from
This file as a plain text file

	DOCUMENTATION LESQ

A)	INTRODUCTION
	LESQ ALLOWS FOR A FLEXIBLE WAY TO DO LEAST SQUARES
	CURVEFITTING TO ANALYTICAL DATA
	THE USER INPUTS THE FUNCTION TO BE USED TOGETHER WITH
	THE PARTS OF THE MAIN PROGRAM AND THE PROGRAM DOES THE REST
	LESQ WILL CALCULATE ALL THE NESSICARY DERIVATAS BY NUMERIC
	METHODS
THE FOLLOWING POINTS SHOULD BE UNDERSTOOD:
	A)AS LESQ IS A VERY GENERALISED PROGRAM IT MIGHT IN SOME
	CASES BE A BIT MORE DIFFICULT TO HANDLE THAN SPECIFIC
	PROGRAMS FOR THE VARIOUS FUNCTIONS
	THE ADVANTAGES ARE HOWEVER:
	LARGE CAPACITIES<UP TO 6 CONSTANTS UP TO 30 DATA POINTS>
	FAST  MORE THAN 100 TIMES FASTER THAN THE CORRESPONDING
		FOCAL RUTINES
	ALL FUNCTIONS ARE HANDLED BY THE SAME PROGRAM IE
		THE METHODS TO USE THE MATERIAL ARE VERY STANDARDIZED
		AND ONLY HAVE TO BE LEARNED ONCE
B)THE PROGRAM OPERATES ON A DATA FILE IN OUTLAY FORMAT
	<SEE THIS>IT WILL READ INTO CORE 1 TO 5 OF THE GROUPS IN
	THE DATA FILE
C)AS ALL NON-LINEAR CURVEFITTING THE PROGRAM WORKS BY TAKING INITIAL
	ESTIMATES OF THE KONSTANTS TO BE FITTED AND STEPWISE REFINING
	THEM TOWARDS BETTER VALUES
	TO GIVE A CRITERIA AS TO HOW THE PROCESS IS GOING
	THE PROGRAM CALCULATES AND PRINTS THE %CHANGE THAT WAS
	PERFORMED IN THE LAST STEP.
	THE FOLLOWING LIMITS ARE IN PROGRAM <MAX IS THE LARGEST
	% CHANGE>
	MAX<0.1		VALUES ALWAYS ACCEPTED <NO OPTION TO CONTINUE>
	MAX > 50	WILL NOT ITERATE AUTOMATICALLY ONLY 1 ITERATION
			PER REQUEST
	MAX > 110% OF MAX IN LAST ITERATION  AS ABOVE

B)IMPLEMENTATION THE MAIN PARTS OF THE PROGRAM ARE ON THE DISC UNDER THE NAMES LSQ1,LSQ2,LSQ3 THE FUNCTIONS AVAILABLE ARE IN THE APPENDIX<NEW FUNCTIONS WILL BE ADDED ON REQUEST> THESE FUNCTIONS ARE AVAILABLE ON DECTAPE 89<MARKED LESQ> C)FILES ONLY ONE FILE IS USED UNIT 6 CONTAINS THE INPUT DATA FILE AS <NORMALLY>CREATED BY OUTLAY RESULTS NORMALLY GO TO THE LINE PRINTER BUT CAN BE TRANSFERRED BY REASIGNING UNIT NO 3
E)RUNNING LESQ 1)MOUNT LESQ TAPE ON SAY DTA0 2)TYPE: . R LOAD *TEMP<LSQ1,LSQ2,LSQ3,DTA1:FUNC/G # *DATAFILE.DA/6$ #1 PROGRAM STARTS # FUNC IS THE FUNCTION YOU WANT #1 DATAFILE IS THE NAME OF YOUR DATA FILE POSSIBLY DTA1:NAME $ IS TYPED AS AN ANSWER TO YOUR TYPING ALTMODE RESTARTING IS DONE BY .R FRTS *TEMP *DATAFILE/6$ IN THE PROGRAM YOU HAVE THE FOLLOWING INPUT:<SEE ALSO UNDER SPECIAL FEATURES> 1)THE PROGRAM PRINTS KTGGG... INPUT K<ONE FIGURE>NUMBER OF CONSTANTS TO BE MINIMIZED T 0=ABSOLUTE DEVIATIONS 1=RELATIVE GGG... THE DATA GROUPS TO BE USED FROM THE FILE UP TO 5 GROUPS CAN BE USED SEPERATED BY COMMA SPECIAL VARIANTS OF INPUT: 1)K>0 G=0 RETAIN PRESENT DATA BUT CHANGE K 2)K=0 SEE SPECIAL FEATURES 2)THE PROGRAM PRINTS: INPUT N KONSTANTS INPUT THE STARTING VALUES OF THE CONSTANTS SEPERATING THEM BY , IN EITHER CASE INCLUDE THE DECIMAL POINT IN THE INPUT EVEN IF IT IS EG 34. THE PROGRAM NOW ITERATES EITHER TILL IT HAS TRIED 5 TIMES OR ONE OF THE CRITERIA ABOVE HAVE BEEN FULLFILLED IF IT REACHES MAX<0.1 IT PRINTS THE RESULTS IN EITHER CASE IT PRINTS:OPTION NO ANSWER CAN BE IN THE FORM 1 OR 1,2 WHERE 1 IS THE OPTION AND 2 THE NUMBER OF TIMES TO ATTEMPT ITERATION THE OPTIONS ARE 0 QUIT 1 CARRY ON ITERATIONS 1 ONLY IF NOT OTHERWAYS REQUESTED 2 GOT TO END RUTINE IE ACCEPT THE RESULTS 3 READ NEW STARTING VALUES 4 READ NEW DATA FROM SAME FILE TO USE ANOTHER FILE YOU MUST EXIT PROGRAM <OPTION 0> AND RESTART USE THE TEMP CREATED ON PROGRAM START 5 EQUIVALENT TO 1,5
PROGRAM OUTPUT: THE OUTPUT FROM THE PROGRAM IS AS FOLLOWS A)THE FINAL CONSTANTS B)THE ERROR VARIANCES 1)THE ERROR SUM SQUARE FROM THE MINIMIZATION 2)THE ERROR SUM SQUARE FROM DIRECT CALCULATION 3)THE ERROR VARIANCE =SS/(NX-NK-1) 1 AND 2 SHOULD BE EQUAL FOR THE ERROR CALCULATIONS TO BE VALID <THIS ONLY APPLIES TO ABSOLUTE ERROR MINIMISATION> C)THE VARIANCE COVARIANCE MATRIX THE ELEMENTS IN THE DIAGONAL ARE THE VARIANCES OF THE CONSTANTS =SD**2 AND THE OFF-DIAGONAL ELEMENTS THE CO VARIANCES ALSO THE STANDARD ERRORS FOR THE CONSTANTS <I.E. THE SQUARE ROOTS OF THE DIAGONAL ELEMENTS ARE PRINTED> 4)FINALY A TABLE OF MEASURED AND CALCULATED VALUES IS PRINTED
E1)SPECIAL FEATURES TO ALLOW FOR ALL THE VARIOUS FUNCTIONS THAT USE LESQ THE PROGRAM PROVIDES THE FOLLOWING FEATURES: A)ENTERING K=0 CALLS THE FUNCTION.THIS IS USED BY EG.PROFIX TO SUPPY REQUIRED PARAMETERS B)IF MORE CONSTANTS ARE ENTERED IN RESPONCE TO INPUT N CONSTANTS THAN ARE TO BE MINIMISED THE FUNCTION CAN ACCESS THE REMAINING PARAMETERS.IN THIS WAY IT IS POSSIBLE E.G. TO GIVE A VALUE TO DT IN TWCOM1 IF K IS SET TO 3 THE ARGUMENT VECTOR IS 10 POSITIONS LONG C)THE PROGRAM PROVIDES THE POSSIBILITY FOR PASSING A SECOND SET OF X VALUSE TO THE FUNCTIOON. SE PROINH
F)CAPACITIES 6 CONSTANTS 30 X/Y/X2 PAIRS<TRIPLETS> 5 GROUPS MAY BE USED IN THE INPUT FILE G)ERROR HANDLING A)EXXEDING SIZES 1)NK>6 RETYPE KTGGG... 2)MORE THAN 30 DATA EXESS IGNORED 3)MORE THEN 5 GROUPS STATED REST IGNORED A)NUMERIC ERRORS ON DETECTING NUMERIC ERRORS THE PROGRAM PRINTS: ERRORS I J WITH I AND J BEING ERROR CODES: I J MEANING -1 - DERIVATA =0 1 ERRORS FROM THE MEAN SQUARE CALCULATION -1 ZERO DERIVATA MATRIX IS NK=0 OR ALL CONST=0? 1-NK-1 ONLY THE GIVEN NUMBER OF CONSTANTS ARE MEANINGFUL TO THE MINIMIZATION DID YOU FORGET TO ENTER A CONSTANT WITH THE RESULT THAT THE RUTINE SET IT TO 0 NEVER ENTER A CONSTANT AS EXACTLY 0 USE EG 0.00001 THESE LAST ERROR CODES CAN ALSO OCCUR IF THE NUMERIC DIFFERENCE BETWEEN CONSTANTS IS VERY LARGE (>10**7) IN THIS CASE THE RUTINE CANNOT SOLVE YOUR EQUATIOON
H)COMPILATION AND LOADING THE RUTINE REQUIRES: LESQ A STANDARD F4 PROGRAM MINV,LLSQ FROM THE SSP LIBRARY THESE ARE LSQ2,LSQ3 AND YOUR ROUTINE THE FUNCTION MUST FOLLOW THE FOLLOWING RULES: 1)IT MUST BE IN THE FORM FUNCTION FUNCT (ARG,X,Y) DIMENSION ARG(1) 2)IT CAN REACH : IFEL THE ERROR VARIABLE IX CURRENT INDEX TO X NK NO OF CONSTANTS NX NO OF X VALUES AND X2 THE EXTRA X VECTOR BY COMMON THE COMMON STATEMENT IS: COMMON IFEL,IX,NK,NX,DUMMY(60),X2(30) 3)IF THE ERROR VARAIBLE IS CHANGED TO A NONZERO VALUE THE ITERATIONS STOP AND THE ERRORS ARE PRINTED THE FUNCTION MAY BE CALLED SEVERAL TIMES BEFORE THE ERROR TEST 4)THE FUNCTION IS CALLED FOR INITIALIZATION IF NK=0 5)THE ARG VECTOR IS READ IN ALL POSITIONS ON THE INPUT CONSTANTS. INPUT CALL THIS CAN BE USED TO PICK UP SPECIAL PARAMETERS PURPOSE OF THE FUNCTION GIVEN AN EXPLICIT FUNCTION: Y=F(X) OR AN IMPLICIT FUNCTION: F1(X,Y)=F2(X,Y) WE DEFINE G=Y-F(X) OR G=F1(X,Y)-F2(X,Y) THE FUNCTION SHOULD RETURN WITH FUNCT=G COMPILING AND LOADING: THE MAIN PROGRAM LESQ IS A STANDARD F4 PROGRAM TO THIS MUST BE ADDED THE SSP RUTINES: LLSQ BINARY LSQ2 DET3 BINARY LSQ3 IN THE NORMAL VERSION NO OVERLAYING IS USED BUT WITH A LARGE FUNCTION IT MIGHT BE REQUIRED FUNC,LSQ2,AND LSQ3 MAY BE BY OVERLAYED EACH OTHER



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search