home *** CD-ROM | disk | FTP | other *** search
- %----------------------------------------------------------------------------
- % DEMONSTRATION ROUTINE ML_DEMO1.M
- % FOR MMLE.M MAXIMUM LIKELIHOOD IDENTIFICATION FUNCTION
- % Uses TESTCASE1 from Maine and Iliff , NASA TP 1690
- % results identical to Table 2, p573 of reference
- % SIAM J. APPL MATH Vol 41 No. 3 Dec 81, pp558,579.
- %----------------------------------------------------------------------------
-
- %----------------- SEE ML_DEMO3.M FOR A SELF-CONTAINED TUTORIAL EXAMPLE.
- format compact
-
- load ml_demo1,clc % ml_dem1g.m GENERATES THIS IN 16 MIN. (ATT 6300)
- % MMLE3 IGNORES FIRST SAMPLE. DO LIKEWISE TO GET EXACT TESTCASE1 RESULT
- le=size(uydata);le=le(1);uydata=uydata(2:le,:);
-
- diary ml_demo1.log
-
- clear xnonoise;clear xnosig;clear statnoise;clear measnoise;
- % ABOVE ARRAYS ARE UNNECESSARY. THEY CAN REMAIN IF DESIRED.
-
- '-----------------------------------------------------------------------------';
- rule=ans;disp(ans)
- disp(' MMLE DEMONSTRATION No 1')
- disp(' TESTCASE 1 FROM NASA TP 1690')
- gg0=.5;
- pidq=[2]; % ID INPUT MATRIX
- pidm=[1 2 5]; % ID DYNAMICS MATRIX, INPUT MATRIX, PROCESS COVARIANCE
- pidf=[1 2 5];
- p2snam='ml_p2ss1';
- pert=.001;
- p0=[-.5 0 1 0 3 0 .01];
- opt=[1 0 5 5 0 .001 .001 1];% GIVES RESULTS IN TABLE 2 OF ABOVE PAPER.
- % CLEARING OPT GIVES THE DEFAULT OPTION FOR OPT.
- p=p0;% WHICH GIVES QUICKER CONVERGENCE.
-
- % =========================================================================
- % DEMO OF A-PRIORI WEIGHTING OPTION
- %
- % TO DEMONSTRATE THE A-PRIORI OPTION, CREATE aprioridemo BEFORE RUNNING THIS.
- %
- % SINCE ONLY THE PRODUCTS, p(2)p(3) AND p(3)p(5) ARE IDENTIFIABLE, AN
- % IDENTIFIABILITY PROBLEM WILL OCCUR IF MORE THAN ONE ELEMENT IN THE
- % PRODUCTS IS IDENTIFIED. INTRODUCING A-PRIORI WEIGHTING ON p(3) SOLVES
- % THE IDENTIFIABILITY PROBLEM. pref(3) IS SET TO .5, AND WITH THE HIGH
- % WEIGHTING, p(3) CONVERGES TO IT. p(2) AND p(5) DOUBLE TO KEEP THE
- % PRODUCT CORRECT, DEMONSTRATING THE RISK IN FALSE A-PRIORI WEIGHTINGS.
-
- if exist('aprioridemo')==1,% ONLY DO LOOP IF aprioridemo EXISTS
- rms0=ones(p0)*1e9;rms0(3)=.1;% HUGE A-PRIORI RMS ERRORS ON ALL BUT p3
- pref=p0;pref(3)=.5;% FALSELY SET pref(3) TO .5 OF ITS CORRECT VALUE
- pidm=[1 2 3 5];pidf=pidm;% INCLUDE p(3) IN THE ID LIST
- end% apr
- %==========================================================================
- disp(rule)
-
- mmle % DO THE IDENTIFICATION
-
- diary off
- ml_dem1p % RUN THE PLOT ROUTINE
- 'To test the a-priori option, make aprioridemo = 1, and then rerun mmle.m';
- disp(ans),
- disp('Run ml_tut1.m to illustrate uncertainty ellipsoid facts')
- shg
- %------------------------------------------------------------ end ml_demo1.m
-