(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.2' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 32938, 687]*) (*NotebookOutlinePosition[ 34106, 721]*) (* CellTagsIndexPosition[ 34062, 717]*) (*WindowFrame->Normal*) Notebook[{ Cell[GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHgR000`400?l00000o`00003oooooool9 ooooo`00ooooool9ooooo`001ooooolE0?ooo`0?0>[/m@2a]mX0Phg305m//`11D:@0;CjJ01l`U00K ;I807BnC02/kV@0nCJ80FFJ`07j8`@2`]]T0k>gf0=@0oooo2Oooool000Oooooo4P3oool0103Gfn`0 Qi76041?X`0A8hd=00lRS004010SS@0nCZ<0RI;60=gPkm40oooo2Oooool000Oooooo3`3oool00`3Y jo@0SIK803Y9X00D00lRS004010RS012DJD0YjkE0?_koAL0oooo00D0g=o_0;VogP2i_mh0k^og0=gP k`020:F/e0060>o`m`3oool0oooo0?ooo`39cND0h>?`0`3oool00`37bn@0YJcD0:Z`eP020?ooo`04 0>?UlP2i_mh0^KoN0>GWl`<0oooo00<0g=o^0;VogP2i_mh0102i_mh01@37c>D0oooo00?ooo`030?oOg`3o f=P0ooOg00H0oooo00<0on3P0?ooo`3oool00P3oool01P3oknl0oooo0?ooo`3oool0ooWi0?ogm`@0 oooo00<0on3P0?ooo`3oool00`3oool01P3oh>00oooo0?ooo`3oool0onSX0?ogm`@0oooo00<0on3P 0?ogm`3oool00P3oool00`3omoL0on3P0?ooo`020?ooo`030?oXj03omoL0oooo00<0oooo00<0ooWi 0?oPh03oool0103oool00`3oj>P0ooOg0?ooo`040?ooo`030?oPh03of=P0ono_00D0oooo0P3omoL3 0?ooo`030?ogm`3oj>P0oooo01d0oooo2Oooool000Oooooo3@3oool00`3cm?T0Q8k401T[T@0I00lR S00302hnV`3;cnH0oooo01D0oooo00D0Qi7600lRS00?8X`0`lSR0<76h@0200lRS0060;Nmg@3oool0 oooo0?gmoP0W>9P0KgZj0`3oool00`1EHjh03b:<02loV`020?ooo`0409nWd@0?8X`03b:<0:F/e0<0 oooo00<0Qi7600lRS00?8X`0100?8X`01@0oCZ<0oooo03M7W`0?8X`0M00<0oooo00D0];[K00lR S00?8X`04BB=0;c2g`020?ooo`040?ogm`3nEU80oSPd0?oWiP`0oooo00@0oY2=0?hY9@3n;RX0oWAa 0P3nJfL0203of]T0oooo0?ooo`3oool0okFc0?hG4P3nCd/0om[I0P3oool01`3n:RD0oS<^0?ooo`3o ool0olW80?hG4P3nQX@00P3oool0103odM00oQLB0?i5@@3odM020?ooo`080?nIU`3n5a80oUEA0?of mP3oool0oRXU0?hY9@3o]K<30?ooo`030?hP6`3n:BD0okFc0080oooo00P0oVYW0?hG4P3nF5@0on?S 0?ooo`3nAD40oRTU0?ne/`<0oooo00@0oWAa0?hG4P3nAD40olO60`3oool00`3n:RD0oRTU0?nRX002 0?ooo`070?ogm`3nF5@0oQLB0?hY9@3n?3P0oVYW0?oPh0030?ooo`030?o7aP3n5a80oX>10080oooo 00@0oWej0?hG4P3nHEh0ong/703oool9ooooo`001oooool<0?ooo`030:fcf00V=iL03b:<01/03b:< 00<072jB080jnce00803b:<00L0U9c<0?ooo`3o ool0adZQ00lRS01;FJT00P3oool0102OYm403b:<00lRS02U [=@30?ooo`0308NAaP0?8X`03b:<00@03b:<00D0?djS0?ooo`0gAil03b:<03=3W@020?ooo`050?Gf nP0^?i/03b:<00lRS01oRL800P3oool01P3onOT0oUIB0?hG4P3n5a80oSPd0?oWiP/0oooo00<0oUQD 0?n6Q03oool00P3oool00`3om_H0oTE10?o7aP020?ooo`090?nn_@3n5a80oTE10?idL@3o/[00oooo 0?iQGP3n5a80om[I0080oooo01<0oRXU0?hc;P3oool0oooo0?o/k03n5a80oRhZ0?imNP3nVIL0oooo 0?nIU`3n5a80oeeI0?imNP3om_H0oTE10?hG4P3nQX@0ojZX0080oooo0P3n5a801@3nOGX0oi>@0?oo o`3nAD40oQLB0080oV5N00D0onSW0?i5@@3n5a80ohJ40?j6Q0020?ooo`050?iTH@3n5a80ogej0?iZ I`3nOGX00P3oool03@3n`0ooKf0P3oool01@3oRhT0oQLB0?nn_@3oool0ong/0080oooo00P0oV5N0?hG 4P3odM00ooKf0?ooo`3oRhT0oQLB0?idL@<0oooo00<0oRhZ0?hl>03oool00P3oool02@3nF5@0oQlJ 0?ooo`3oool0olO60?hG4P3nF5@0oooo0?ogm`0K0?ooo`Wooooo0007ooooo`T0oooo00<0f=_/02`l VP0?8X`0800?8X`00`0H:Y00a03n5a80onc/0080oooo00<0om7@0?hG4P3nAD400P3oool00`3oZjX0oQLB0?j6Q0020?ooo`03 0?j6Q03n5a80on?S00<0oooo00L0oR0K0?i=B@3oool0om[I0?i?B`3n5a80oj^Z00<0oooo00<0oV]W 0?hG4P3odM000P3oool0203nQX@0oQLB0?imNP3oool0olW80?i[I`3n5a80okjm0`3oool00`3o^KP0 oQLB0?n@S@040?ooo`030?nIU`3n5a80oi2=0080oooo00<0oi>@0?hG4P3nM7400`3oool00`3nK6T0 oQLB0?ne/`020?ooo`030?n@S@3n5a80okFc0080oooo00<0oR0K0?hZ9@3oool0703oool9ooooo`00 1oooool80?ooo`030=KIj`0V=iL03b:<02803b:<00<072jB0=CGjP3oool04@3oool02P27TLH03b:< 00lRS033b>80oooo07Ao_00?8X`09CNG0?ooo`31a^4200lRS004010SS00I:i40m?Gj0=SKk0803b:< 00@0W:C@0?ooo`3oool0WjOA0P0?8X`01@2U[=@0oooo0?ooo`3oool0Qi7600803b:<00<0^KoN0?oo o`3oool00`3oool0200gAil03b:<03=3W@3WjO@08S>E00lRS00@8h`0^;gM0P3oool00`3nOGX0oQLB 0?hG4P060?hG4P030?iFDP3omoL0oooo00`0oooo00@0om7@0?hc;P3n5a80oh^90P3oool00`3nOGX0 oQLB0?ne/`030?ooo`0<0?hP6`3n`0oooo0?nn_@3n5a80 oj:P0`3oool01`3nHEh0oQlJ0?ooo`3oool0oWej0?hG4P3nJfL00`3oool00`3oVIL0oQLB0?nRX002 0?ooo`030?nn_@3n5a80oS`h0080oooo00<0oVYW0?hG4P3nQX@00`3oool00`3oh=l0oQLB0?iQGP04 0?ooo`030?oJf@3n5a80oUQD0080oooo00<0okVh0?hG4P3nCd/00`3oool00`3oTi00oQLB0?i[I`02 0?ooo`030?o7aP3n5a80oUQD0080oooo00<0oUQD0?hG4P3of]T0703oool9ooooo`001oooool70?oo o`030;_0g`0M;i<03b:<02@03b:<00<09cRH0=CGjP3oool0403oool01P27TLH03b:<00lRS033b>80 oooo0:2XdP803b:<00P0k^og06Ue]`0?8X`0:cbJ05m//`0?8X`0WJC@0;Vng@803b:<00@0^l3N0?oo o`3oool0WjOA0P0?8X`01@2U[=@0oooo0?ooo`3oool0Qi7600803b:<00X0UYk=07Sl@3oool0=dNO00lRS00]?IX0AUFV0P0?8X`0101fPKd0oooo0?oin@3nK6T:0?hG4P030?i;B03o jnX0oooo00P0oooo00<0olG40?idL@3n;RX00`3n5a801P3oZjX0oooo0?ooo`3o^KP0oQLB0?idL@<0 oooo00P0oTe90?h^:P3nRhT0onGU0?ooo`3n;RX0oUEA0?n3P@80ooOg00<0oQhI0?iMF@3oool00P3o ool01`3oXZ00oQLB0?o1`03oool0onSW0?hG4P3n;RX00`3oool00`3of=P0oQLB0?iTH@030?ooo`07 0?hf00oQLB0?iED@040?ooo`030?hV8P3n;RX0oooo00@0oooo00D0oRhZ 0?hO6P3omoL0oooo0?oblP020?hO6P060?ogm`3oool0oooo0?nb/03n5a80oTE10`3oool01`3n91l0 ofaY0?nRX03oool0oiZH0?hG4P3oTi00703oool9ooooo`001oooool60?ooo`030;g2g`0E:8l03b:< 02H03b:<00<072jB0<_?iP3oool03`3oool01P27TLH03b:<00lRS033b>80oooo0TZQ09bTc`803b:<00@0fMc]0?ooo`3oool0WjOA0P0?8X`0 1@2U[=@0oooo0?ooo`3oool0Qi7600H03b:<00<0KgZj0?ooo`0gAil0100?8X`0100iBJ00n?Sl0?oo o`3nIF8<0?hG4P030?hl=`3oool0oooo00H0oooo00<0okFc0?hG4P3n5a800P3n5a805`3n81/0oWej 0?ooo`3ok>`0oi2=0?ofmP3n5a80oRXU0?ooo`3o]K<0om[I0?idL@3n5a80on?S0?ilN@3okN`0oV5N 0?hP6`3ohn<0oVYW0?ofmP3n?SX0oR0K0080oooo00@0oi2=0?oSh`3n5a80oXJ40P3oool00`3nF5@0 oQLB0?oPg`030?ooo`030?hZ9@3nd07BnC00lRS00X00lRS003 01h`T`3@e>T0oooo00h0oooo0100Qi7600lRS00?8X`0`lSR0?ooo`3dmOX042>=00lRS01CHJ`03b:< 010SS@3Ri?40l_?i01DXS`0?8X`0DUn/0P0?8X`0103emOX0oooo0?ooo`2OYm4200lRS0050:F/e03o ool0oooo0?ooo`27TLH01P0?8X`01@1_N[X0oooo03M7W`0?8X`04bF>00803b:<00D0JGFg0?ooo`3o ool0om;A0?hW8`0:0?hG4P030?hJ5P3o/:h0oooo00L0oooo00H0oUQD0?hG4P3n:BD0oXJ40?nn_@3o m_H30?ooo`0I0?oAd03nF5@0oQLB0?hG4P3oh=l0oooo0?j@S@3n:BD0oQLB0?ne/`3oj>L0oUQD0?hP 6`3n5a80om[I0?oSh`3nCT/0oQlJ0?hG4P3odM00oooo0?oJf@3nCd/0oQLB0?i?B`020?ooo`030?n@ S@3n5a80oj:P00<0oooo00<0oUQD0?hG4P3ol>l00`3oool03@3odM00oS`h0?nb/03o_[d0oTE10?hG 4P3o_[d0oooo0?oSh`3oXZ00oUQD0?hG4P3oM7400P3oXZ001@3omoL0oWej0?hY9@3n5a80oWej00<0 oooo0140oiVG0?hl>03of]T0ooKf0?iMF@3n5a80oiVG0?ooo`3om_H0oXJ40?hV8P3n:RD0oooo0?o7 aP3n?3P0oQLB0?hP6`0L0?ooo`Wooooo0007ooooo`@0oooo00<0m_Ok03Q8X00?8X`0:P0?8X`00`0P A0?i>B`3ok>`00P3oool00`3om_H0oX>10?idL@020?ooo`030?oJf@3nOGX0oiZH00<0 oooo00<0oi2=0?hG4P3o`L00103oool0303om_H0oWai0?i5@@3nHEh0oiVG0?ne/`3oool0ooKf0?o1 `03nM740oQLB0?hl>080oWAa00D0oo3_0?ooo`3oalH0oV5N0?jIU`040?ooo`050?oJf@3nOGX0oTE1 0?iED@3oVIL0103oool01`3o/[00oTi;0?ooo`3oool0on?S0?iZI`3nHEh0703oool9ooooo`001ooo ool40?ooo`0307N2_P0?8X`03b:<02/03b:<00<083:D0=OJk03oool0303oool01027TLH03b:<00lR S033b>820?ooo`0504YHZ00?8X`03b:<00lRS02U[=@00P3oool01@2`]mT03b:<00lRS00?8X`0A5>U 00<0oooo00@0WjOA00lRS00?8X`0YJcD0`3oool01027TLH03b:<00lRS02i_mh50?ooo`0803M7W`0? 8X`0M0?CenP0b@Yd03b:<01laU03Ri?420?ooo`030?oBd@3n9b<0oQLB00D0oQLB00<0oQXE0?n` [P3oool02@3oool00`3nM740oShj0?ooo`040?ooo`030?nj^03oool0oooo0200oooo00<0okjm0?hG 4P3oViP03@3oool00`3ok>`0oQLB0?i?B`0g0?ooo`Wooooo0007ooooo`<0oooo00<0bloV014TS@0? 8X`0;@0?8X`00`0QE0?Kgn`020?ooo`050?Wjo00T=IH03b:<00lRS01YM;L00`3oool0102OYm403b:<00lR S02U[=@30?ooo`0408NAaP0?8X`03b:<0;VogPD0oooo00T0=dNO00lRS00c@id0oooo0=SKk00O<9<0 3b:<03A4WP3Xj_@00P3oool00`3ofMP0oS8]0?hG4P030?hG4P030?hJ5@3oZjT0oooo00X0oooo00<0 on3P0?ha;@3oj>L00`3oool00`3omoL0oW5^0?ooo`020?ooo`030?oPh03nK6T0ok:`01`0oooo00<0 ooOg0?hG4P3nI6403P3oool00`3nAD40oQLB0?o`k`040?ooo`030?n;R@3nM740oo3_02l0oooo2Ooo ool000Oooooo0`3oool00`1AGj`03b:<00lRS00^00lRS00305]X/03oool0oooo00X0oooo00@0Qi76 00lRS00?8X`0`lSR0P3oool0102EWL`03b:<00lRS01jQ;l40?ooo`0507b7`00?8X`03b:<08bFb03< d>L00P0c@id0100U=YH03b:<00lRS00V=iL203=3W@050>3Sl027TLH03b:<00lRS00Y>IP00`0c@id0 1@1LJK40oooo03M7W`0?8X`0M0080oooo00D0^KkN010SS00?8X`0?DfR0?GfnP020?ooo`060?oI f@3n9b<0oQLB0?hG4P3n6QH0ok2^3@3oool01`3odM00oTE10?ne/`3odM00okFc0?i5@@3nEE400`3o ool00`3oZjX0oQLB0?hn>P0K0?ooo`040?o]k03odM00oQLB0?hfM00<0oooo00@0Ig>f00lRS00?8X`0GV^b0`3oool0103od]40oRLS0?hJ 5P3o/:h?0?ooo`060?ofmP3oZjX0oWAa0?idL@3oVIL0oo3_0`3oool00`3om_H0oXJ40?nb/00K0?oo o`050?oJf@3nOGX0oUQD0?hO6P3ok>`0503oool00`3o]K<0oWej0?o/k00_0?ooo`Wooooo0007oooo o`80oooo00<0Ig>f00lRS00?8X`0<00?8X`00`2KXll0oooo0?ooo`090?ooo`040;6gfP1SKk@0Hfnd 0=WLk@80oooo00<0hnGb06mj^P20R/801P3oool0101lQ/00KgZj0=kQk`3Hfn`806=_]0030>SYm02a ]mX0Hfnd00D0Hfnd00D0PXc30?ooo`1mQl40Hfnd07^5`0030?ooo`050>[/m@1TL;D0Hfnd06=_]03: c^H00`3oool00`3od]40ok:a0?ooo`0i0?ooo`030?o`k`3oool0oooo04D0oooo2Oooool000Oooooo 00<0oooo0>g^mP0F:8l0=0>W[m03oool0`03oool9ooooo`001oooool00`3oool0AE>V00lRS00K 00lRS00301`^TP0?8X`03b:<00/03b:<00<052J>00lRS00?8X`01`0?8X`00`2NYM00oooo0?ooo`2o 0?ooo`Wooooo0007ooooo`030>W[m@0@8hd03b:<01X03b:<00<0D5j[0?7bn01GI:l02`0?8X`00`16 E:H0h^Ca03i=XP0800lRS00305]X/03oool0oooo0;l0oooo2Oooool000Oooooo00<0/KOJ00lRS00? 8X`06@0?8X`01@1@GZ/0moSk0?ooo`3inO`0EfB_00T03b:<00D0AUBV0?;cn@3oool0k_3g03I6W`07 00lRS00302HgU`3oool0oooo0;l0oooo2Oooool000Oooooo00<0P8[200lRS00?8X`0600?8X`00`15 E:H0moSk0?ooo`020?ooo`030?Wio01GI:l03b:<00H03b:<00<0AUBV0?;cn@3oool00P3oool00`3N hNl09CJF00lRS00600lRS0030>c]mP3oool0oooo0;h0oooo2Oooool000Oooooo00<0F6F_00lRS00? 8X`05`0?8X`00`0a@Y`0j^ce0?ooo`040?ooo`030?Wio01;FJT03b:<00@03b:<00<0?DbR0?;cn@3o ool0103oool00`3Gfn`09CJF00lRS00400lRS003051NZ`3hn?`0oooo0;l0oooo2Oooool000Oooooo 00<0>DRP00lRS00?8X`05P0?8X`00`15E:H0j^ce0?ooo`060?ooo`030?3an01;FJT03b:<00803b:< 00<0?DbR0>SZm03oool01P3oool00`3NhNl0=TJO00lRS00200lRS00306Mc]P3inO`0oooo0<00oooo 2Oooool000Oooooo00<083:D00lRS00?8X`05@0?8X`00`1@GZ/0moSk0?ooo`080?ooo`050?Wio01G I:l03b:<04IDYP3bloT02@3oool0103^l?L0?TfR00lRS01WLkK30?ooo`Wooooo0007ooooo`0301@W S`0?8X`03b:<01@03b:<00<0@e:U0?Ohn`3oool02P3oool00`3inO`0PWfd0?;cn@0;0?ooo`030>k` m`1[MkP0nOWl00`0oooo00<0no_m0?ooo`3oool0]03oool9ooooo`001ooooolG00lRS00301PZT030 aN40oooo00X0oooo00<0ol;10?hV8@3o^KP02`3oool00`2]]=P08cFF0=SKk@0;0?ooo`030:fdf018 EjL0moSk0;D0oooo2Oooool000Oooooo00<05bV@00lRS00?8X`05@0?8X`00`0H:Y00`00lRS00`@I`0jN_e00T0oooo 00D0[KCH01T0oooo0080oooo00<0PH_300lRS00?8X`01P0?8X`00`0a@Y`0i^Sc0?ooo`2` 0?ooo`Wooooo0007ooooo`0308VCa`0?8X`03b:<01T03b:<00D062Z@0<35h@3oool0ol;10?hP6`09 0?hG4P050?hM603o^KP0oooo0:fdf00B9Hh02@0?8X`0100P00/03b:<00<083:D07^6`00?8X`02`0?8X`00`15E:H0nOWl0?oo o`2^0?ooo`Wooooo0007ooooo`030?7bn00C9Hh03b:<01X03b:<00<0AUBV0?;/l@3nEU802`3n5a80 0`3nA400jM_T03M7W`0;00lRS00305MT[`2n`n005BR?00/03b:<00<0Ig>f0?ooo`3oool0[P3oool9 ooooo`001oooool00`3oool0D5j[00lRS00I00lRS00505aX/@3emOX0oooo0?oin@3nK6T02@3n5a80 1@3nFED0oo;a0?ooo`3]k_H0@E2T00T03b:<00D0KWZj0?[jo@3oool0`lSR024cU@0900lRS00306Mc ]P3jn_d0oooo0:l0oooo2Oooool000Oooooo00<0oooo0:J]e@0?8X`0600?8X`00`1LJK40oOgn0?oo o`030?ooo`030?imNP3n5a80oQLB00D0oQLB00<0oVIS0?oln`3oool00P3oool00`3]k_L0=dNO00lR S00600lRS003086;``3oool0oooo0080oooo00<0em_/02DfUP0?8X`01P0?8X`00`1hPkh0oooo0?oo o`2`0?ooo`Wooooo0007ooooo`030?ooo`3dmOX06bfB01L03b:<00<0AUBV0?GenP3oool01@3oool0 0`3nK6T0oQLB0?hG4P030?hG4P030?iIE@3oo?/0oooo00@0oooo00<0jN_e03M7W`0?8X`0100?8X`0 0`21Rl<0oooo0?ooo`040?ooo`030=OKk00U=YH03b:<00@03b:<00<0N8>n0?ooo`3oool0/@3oool9 ooooo`001oooool20?ooo`0307Ao_@0?8X`03b:<01@03b:<00<0AUBV0?;cn@3oool01P3oool00`3o nOT0oUIB0?hG4P020?hG4P030?i4@03ol_40oooo00H0oooo00<0jN_e03M7W`0?8X`00P0?8X`00`21 Rl<0oooo0?ooo`060?ooo`030=OKk00U=YH03b:<00803b:<00<0N8>n0?ooo`3oool0/P3oool9oooo o`001oooool20?ooo`030=oQl00B9Hh03b:<01<03b:<00<0AUBV0?;cn@3oool0203oool01@3omoL0 oUIB0?hG4P3nA400ono^00T0oooo00@0jN_e03M7W`0?8X`0KWZj2P3oool0103Gfn`09CJF00lRS01h Pkje0?ooo`Wooooo0007ooooo`<0oooo00<0Gf^b00lRS00?8X`04@0?8X`00`0`@9`0l_?i0?ooo`0: 0?ooo`030?ogm`3gMGD0ono^00/0oooo00<0jN_e07M]Z03jn_d02`3oool00`3Gfn`0N8:n0?ooo`0; 0?ooo`030?gmoP3hn?`0oooo0:L0oooo2Oooool000Oooooo0`3oool00`3Gf^`052N>00lRS00A00lR S003010RS022S<<0o_kn00X0oooo00<0^l3O02DfUP2Z/=H02`3oool00`3oTY00oQdI0?nc/@0H0?oo o`040?Kgn`1LJ;40AEBV0>[/mJL0oooo2Oooool000Oooooo103oool00`28TLH03b:<00lRS00B00lR S00306]g^03moOh0oooo00L0oooo00D0[KCH01<09RQcP090?ooo`050?imNP3n5a80 oQLB0?hL5`3o^KP05P3oool01P3moOh0G6Va00lRS00?8X`0KXljH0oooo2Oooool000Oooooo 103oool00`3jnod0@U6T00lRS00C00lRS00306]g^03no_h0oooo00D0oooo00<0^l3O01E00lRS00C00lRS00308:<``3oool0oooo00<0oooo00<0d=CY01d_T`0?8X`0100? 8X`00`0G:I00`E00lRS00C00lRS00304eLZP0C9Hh0 3b:<00X03b:<00<042><09QFPP3n5a80303n5a800`3oclh0oooo0?ooo`0;0?ooo`0305]X/00?8X`0 3b:<00X03b:<00<0=dNO0?cloP3oool0X03oool9ooooo`001oooool90?ooo`030=7Dj@0S=IH03b:< 02003b:<00<072jB0>ETK03n5a802P3n5a800`3oQH<0oooo0?ooo`0<0?ooo`030=OKk00U=YH03b:< 00T03b:<00<05BR?0;Nmg03oool0X@3oool9ooooo`001oooool:0?ooo`030>GWlP19EjP03b:<01h0 3b:<00@0=DFN0=OJk03oool0oVaY2@3n5a800`3oQH<0oooo0?ooo`0>0?ooo`030=OKk00U=YH03b:< 00L03b:<00<052N>0;Nmg03oool0XP3oool9ooooo`001oooool;0?ooo`030?gmoP2BVl/06B^A01/0 3b:<00<042>=07=n_03em_X00P3oool00`3onOT0oUIB0?hG4P060?hG4P030?n5P`3oool0oooo0100 oooo00<0em_/02DfUP0?8X`01P0?8X`00`2PZ=40oooo0?ooo`2R0?ooo`Wooooo0007ooooo`d0oooo 00<0hnKb06Ea]@0A8hd0600?8X`00`0hB:00bG:X0Z[7F0?[ko@L0oooo 00H0ooWi0?i/J@3n5a80oQLB0?hJ5@3oVYLF0?ooo`060=kQk`0`@9`03b:<00lRS00G:I00YJcDYP3o ool9ooooo`001ooooolA0?ooo`040?Wjo02b^=X0HVjd01l`U0d03b:<00@042>=041?X`2?VKb 303oool00`3nOGX0oQLB0?nJU`0H0?ooo`040=kQk`0U=YH062Z@0<35hJL0oooo2Oooool000Oooooo 503oool03`3lo?h0bU02`lVP0L;Y804RB=01LZT00RKXl`0@0?ooo`030?nk^@3oool0oooo01P0oooo00<0em_/0<;7hP3oool0Y`3oool9ooooo`00 ooooool9ooooo`00\ \>"], "Graphics", ShowCellBracket->False, CellMargins->{{0, 0}, {Inherited, 0}}, Evaluatable->False, GeneratedCell->False, CellAutoOverwrite->False, ImageSize->{264, 58.75}, ImageMargins->{{0, 0}, {3, 4}}, ImageRegion->{{0, 1}, {0, 1}}, Background->GrayLevel[1]], Cell[TextData[ButtonBox["Visit the mor4ansys web page", ButtonData:>{ URL[ "http://www.imtek.uni-freiburg.de/simulation/mor4ansys"], None}, Active->True, ButtonStyle->"Hyperlink"]], "Text"], Cell[TextData[{ "Author: Evgenii Rudnyi", ", ", ButtonBox["http://Evgenii.Rudnyi.Ru/", ButtonData:>{ URL[ "http://Evgenii.Rudnyi.Ru/"], None}, ButtonStyle->"Hyperlink"] }], "Text"], Cell[CellGroupData[{ Cell["Imtek`Slicot`", "Section", CellDingbat->"\[FilledSquare]"], Cell[TextData[{ "The package contains an interface to model reduction routines of the ", ButtonBox["Control and Systems Library SLICOT", ButtonData:>{ URL[ "http://www.slicot.de"], None}, Active->True, ButtonStyle->"Hyperlink"], ":\nBalance & Truncate model reduction (BTA) ", ButtonBox["AB09AD", ButtonData:>{ URL[ "ftp://wgs.esat.kuleuven.ac.be/pub/WGS/SLICOT/doc/AB09AD.html"], None}, Active->True, ButtonStyle->"Hyperlink", ButtonNote-> "ftp://wgs.esat.kuleuven.ac.be/pub/WGS/SLICOT/doc/AB09AD.html"], ";\nSingular perturbation approximation based model reduction (SPA) ", ButtonBox["AB09BD", ButtonData:>{ URL[ "ftp://wgs.esat.kuleuven.ac.be/pub/WGS/SLICOT/doc/AB09BD.html"], None}, Active->True, ButtonStyle->"Hyperlink", ButtonNote-> "ftp://wgs.esat.kuleuven.ac.be/pub/WGS/SLICOT/doc/AB09BD.html"], ";\nHankel norm approximation based model reduction(HNA) ", ButtonBox["AB09CD", ButtonData:>{ URL[ "ftp://wgs.esat.kuleuven.ac.be/pub/WGS/SLICOT/doc/AB09CD.html"], None}, Active->True, ButtonStyle->"Hyperlink", ButtonNote-> "ftp://wgs.esat.kuleuven.ac.be/pub/WGS/SLICOT/doc/AB09CD.html"], ". \nThe library is interfaced via Mathlink and you need to compile a \ Mathlink interface binary to use it. First section describes how to compile \ binary, second how to use it from within ", StyleBox["Mathematica", FontSlant->"Italic"], ", third section gives the formal description of the package, and finally \ the fourth section gives an example on how to use it." }], "Text"], Cell[CellGroupData[{ Cell["How to compile the interface", "SubsectionIcon"], Cell["\<\ 1) Compile SLICOT or find a pre-compiled library (some are \ available at the SLICOT site, http://www.slicot.de/). 2) Compile BLAS and LAPACK (SLICOT uses them) or find pre-compiled libraries \ (some are available at Netlib, http://www.netlib.org). Performance highly \ depends on using optimized BLAS. Use ATLAS if you do not have the optimized \ BLAS for your platform (some pre-compiled libraries are at the ATLAS site). 3) Change makefile as appropriate: specify correct location of Mathlink's \ library and header, specify correct location of SLICOT, LAPACK and BLAS. 4) Run make (ignore warnings). \ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["How to use the interface", "SubsectionIcon"], Cell["\<\ There are two ways to use the interface binary. The simplest is \ when you have a binary for your local system\ \>", "Text"], Cell[BoxData[ StyleBox[\(lnk\ = Install["\"]\), "Input"]], "Input"], Cell["\<\ Another option is to run the application in the application on \ another system and to connect to it from your system via the network. These \ two systems may have different OS.\ \>", "Text"], Cell["\<\ In the latter case, the installation is a two-step procedure. 1) Run a Mathlink application by itself at the target system. 2) Connect to the application from your computer (you may need to choose the \ right protocol).\ \>", "Text"], Cell[BoxData[ \(lnk = Install["\", LinkMode \[Rule] Connect, \ LinkProtocol -> "\"]\)], "Input"], Cell["If everything went okay", "Text"], Cell[BoxData[ \(LinkPatterns[lnk]\)], "Input"], Cell["gives a list of availalbe functions over the interface. ", "Text"], Cell["At the end of your work, uninstall the application.", "Text"], Cell[BoxData[ \(Uninstall[lnk]\)], "Input"], Cell["\<\ A Mathlink interface for Slicot will install a package \ Imtek`Slicot`LowLevel` with three low-level functions: RunBTA, RunSPA, and \ RunHNA. They almost match the Slicot functions one-to-one. You access them \ via a high-level interface in the Imtek`Slicot` package.\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Imtek`Slicot` description", "SubsectionIcon"], Cell[BoxData[ StyleBox[GridBox[{ { StyleBox[\(CallSlicot[sys, dim, ops]\), "DefinitionBox", FontVariations->{"CompatibilityType"->0}], StyleBox[\(gives\ a\ reduced\ system\ of\ dimension\ dim\ \ specified\ as\ \(\(Integer\)\(.\)\)\), "DefinitionBox"]}, {\(CallSlicot[sys, precision, ops]\), \(gives\ a\ reduced\ system\ with\ given\ precision\ \ specified\ as\ \(\(Real\)\(.\)\(\ \)\)\)} }, GridFrame->True], "DefinitionBox"]], "Text"], Cell[TextData[{ "sys must be DynamicSystem for the explicit system of first order. Use \ ToExplicitSystem if necessary.\nBoth functions return a list of three object: \ {DynamicSystem for the reduced system, Hankel singular values of the original \ system, info}. info is a list of at least two numbers. The first and second \ numbers are used and optimal setting for TemporaryStorage. In the case of SPA \ and HNA, the third number is the dimension of the minimal realization of the \ original system.\nIf there was a failure, an exception is thrown.\nOptions:\n\ ", Cell[BoxData[ StyleBox[GridBox[{ { StyleBox["Method", "DefinitionBox", FontVariations->{ "CompatibilityType"-> 0}], \(specifies\ the\ model\ reduction\ \(method : \ BTA\), \ SPA, \ HNA . \ By\ default, \ Method \[Rule] \(\(BTA\)\(.\)\)\)}, { "BalancingSquareRoot", \(specifies\ whether\ to\ use\ the\ \ square - root\ \((True)\)\ or\ balancing - free\ square - root\ \((False)\)\ method . \ This\ option\ is\ in\ effect\ for\ BTA\ and\ SPA . \ By\ default, \ BalancingSquareRoot \[Rule] \(\(True\)\(.\)\)\)}, {"Equlibration", \(specifies\ whether\ to\ preliminarily\n equilibrate\ the\ original\ system\ \((True\ of\ False)\) . \ By\ default, \ Equlibration \[Rule] \(\(False\)\(.\)\)\)}, { "TemporaryStorage", \(specifies\ the\ amount\ of\ memory\ to\ \ allocate\ for\ temporary\ storage\ in\ the\ Mathlink\ application . \ The\ second\ number\ in\ info\ gives\ an\ optimal\ setting \ . \ By\ default, \ the\ minimal\ amount\ of\ memory\ is\ \(\(chosen\)\(.\)\)\)} }, GridFrame->True], "DefinitionBox"]]] }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Examples", "SubsectionIcon"], Cell[TextData[{ StyleBox["Assumptions:\n1) You have ", FontVariations->{"CompatibilityType"->0}], ButtonBox["Imtek`Post4MOR`", ButtonData:>{ URL[ "http://evgenii.rudnyi.ru/soft/Post4MOR/"], None}, ButtonStyle->"Hyperlink"], StyleBox[" loaded;\n2) You already have started Slicot interface \ (Imtek`Slicot`LowLevel`).", FontVariations->{"CompatibilityType"->0}] }], "Text", CellDingbat->None], Cell["To load Imtek`Post4MOR` (on Windows << path\\\\Post4MOR.m)", "Text"], Cell[BoxData[ \(<< path/Post4MOR.m\)], "Input"], Cell["To install the interface locally: you need to change this.", "Text"], Cell[BoxData[ \(lnk\ = Install["\"]\)], "Input", CellLabel->"In[1]:="], Cell["\<\ To install interface from a server: 1) Run on a server(change a port number, say to your phone number) path/runServer 5555 2) then\ \>", "Text"], Cell[BoxData[ \(lnk = Install["\<5555@serverName\>", LinkMode \[Rule] Connect, \ LinkProtocol -> "\"]\)], "Input", CellLabel->"In[1]:="], Cell[TextData[StyleBox["Loading the high-level package (depends on two \ packages above): you need to change this.", FontVariations->{"CompatibilityType"->0}]], "Text"], Cell[BoxData[ \(Get["\"]\)], "Input", CellLabel->"In[2]:="], Cell["Path to examples from Post4MOR (you may need to modify it)", "Text"], Cell[BoxData[ StyleBox[\(filePath\ = \ ToFileName[{"\"\ }];\), "Input"]], "Input", CellLabel->"In[3]:="], Cell[CellGroupData[{ Cell["Microthruster: First-Order System", "SubsubsectionIcon"], Cell["Reading the system of dimension 25", "Text"], Cell[BoxData[ \(sys1\ = \ ReadSystem[filePath <> "\"]\)], "Input", CellLabel->"In[4]:="], Cell["Converting to the explicit form", "Text"], Cell[BoxData[ \(expl\ = \ ToExplicitSystem[sys1]\)], "Input", CellLabel->"In[5]:="], Cell["Making model reduction with given precision", "Text"], Cell[BoxData[{ \(\({red1, \ hsv, \ info}\ = \ CallSlicot[expl, \ 0.1];\)\), "\[IndentingNewLine]", \(red1\)}], "Input", CellLabel->"In[6]:="], Cell["Plotting Hankel Singular Values", "Text"], Cell[BoxData[ \(ListPlot[Log[10, hsv]]\)], "Input", CellLabel->"In[8]:="], Cell["Making a reduced model of dimension 5", "Text"], Cell[BoxData[{ \(\({red2, \ hsv, \ info}\ = \ CallSlicot[expl, \ 5];\)\), "\[IndentingNewLine]", \(red2\)}], "Input", CellLabel->"In[9]:="], Cell["Making transient simulation and plotting results", "Text"], Cell[BoxData[{ \(\(time\ = \ Table[t, {t, 0. , 1. , 0.01}];\)\), "\[IndentingNewLine]", \(\(full\ = \ TransientSolution[time, \ sys1, Verbose -> True];\)\), "\[IndentingNewLine]", \(\(red10 = TransientSolution[time, red1, Verbose -> True];\)\), "\[IndentingNewLine]", \(\(red5 = TransientSolution[time, red2, Verbose -> True];\)\), "\[IndentingNewLine]", \(\(PlotResult[{full, red10, red5}, PlotStyle \[Rule] {RGBColor[1, 0, 0], \ RGBColor[0, 1, 0], \ RGBColor[0, 0, 1]}];\)\)}], "Input", CellLabel->"In[11]:="], Cell["Making harmonic simulation and plotting results", "Text"], Cell[BoxData[{ \(\(freq\ = \ Table[10^f, {f, \(-3\), 3. , 0.1}];\)\), "\[IndentingNewLine]", \(\(full\ = \ HarmonicSolution[freq, \ sys1];\)\), "\[IndentingNewLine]", \(\(red10 = HarmonicSolution[freq, red1];\)\), "\[IndentingNewLine]", \(\(red5 = HarmonicSolution[freq, red2];\)\), "\[IndentingNewLine]", \(\(PlotResult[{full, red10, red5}, FunctionX \[Rule] Log10, \ FunctionY \[Rule] \((Log10[Abs[#]] &)\), PlotStyle \[Rule] {RGBColor[1, 0, 0], \ RGBColor[0, 1, 0], \ RGBColor[0, 0, 1]}];\)\)}], "Input", CellLabel->"In[16]:="] }, Closed]], Cell[CellGroupData[{ Cell["Microgyroscope: Second-Order System", "SubsubsectionIcon"], Cell["Reading the system of dimension 40 and adding damping", "Text"], Cell[BoxData[ \(sys2\ = \ \ AddDamping[ReadSystem[filePath <> "\"], \ 0. , \ 1*^-6]\)], "Input", CellLabel->"In[21]:="], Cell["Converting to the explicit form", "Text"], Cell[BoxData[ \(expl\ = \ ToExplicitSystem[sys2]\)], "Input", CellLabel->"In[22]:="], Cell["Making model reduction with given precision", "Text"], Cell[BoxData[{ \(\({red1, \ hsv, \ info}\ = \ CallSlicot[expl, \ 0.00001];\)\), "\[IndentingNewLine]", \(red1\)}], "Input", CellLabel->"In[23]:="], Cell["Plotting Hankel Singular Values", "Text"], Cell[BoxData[ \(ListPlot[Log[10, hsv]]\)], "Input", CellLabel->"In[25]:="], Cell["Making a reduced model of dimension 5", "Text"], Cell[BoxData[{ \(\({red2, \ hsv, \ info}\ = \ CallSlicot[expl, \ 5];\)\), "\[IndentingNewLine]", \(red2\)}], "Input", CellLabel->"In[26]:="], Cell["Making transient simulation and plotting results", "Text"], Cell[BoxData[{ \(\(time\ = \ Table[t, {t, 0. , 0.003, 0.00001}];\)\), "\[IndentingNewLine]", \(\(full\ = \ TransientSolution[time, \ expl, Verbose -> True];\)\), "\[IndentingNewLine]", \(\(red16 = TransientSolution[time, red1, Verbose -> True];\)\), "\[IndentingNewLine]", \(\(red5 = TransientSolution[time, red2, Verbose -> True];\)\), "\[IndentingNewLine]", \(\(PlotResult[{full, red16, red5}, PlotStyle \[Rule] {RGBColor[1, 0, 0], \ RGBColor[0, 1, 0], \ RGBColor[0, 0, 1]}];\)\)}], "Input", CellLabel->"In[28]:="], Cell["Making harmonic simulation and plotting results", "Text"], Cell[BoxData[{ \(\(freq\ = \ Table[10^f, {f, 2, 6. , 0.01}];\)\), "\[IndentingNewLine]", \(\(full\ = \ HarmonicSolution[freq, \ sys2];\)\), "\[IndentingNewLine]", \(\(red10 = HarmonicSolution[freq, red1];\)\), "\[IndentingNewLine]", \(\(red5 = HarmonicSolution[freq, red2];\)\), "\[IndentingNewLine]", \(\(PlotResult[{full, red10, red5}, FunctionX \[Rule] Log10, \ FunctionY \[Rule] \((Log10[Abs[#]] &)\), PlotStyle \[Rule] {RGBColor[1, 0, 0], \ RGBColor[0, 1, 0], \ RGBColor[0, 0, 1]}];\)\)}], "Input", CellLabel->"In[33]:="] }, Closed]], Cell[CellGroupData[{ Cell["Cleanup", "SubsubsectionIcon"], Cell[BoxData[ \(Uninstall[lnk]\)], "Input", CellLabel->"In[38]:="] }, Open ]] }, Open ]] }, Open ]] }, FrontEndVersion->"5.2 for Macintosh", ScreenRectangle->{{0, 1024}, {0, 702}}, WindowSize->{652, 622}, WindowMargins->{{113, Automatic}, {Automatic, 0}}, PrintingCopies->1, PrintingPageRange->{1, Automatic}, PageHeaders->{{Inherited, Inherited, Cell[ TextData[ {"slicot interface"}], "PageHeader"]}, {Cell[ TextData[ {"slicot interface"}], "PageHeader"], Inherited, Inherited}}, PageFooters->{{Inherited, Cell[ TextData[ {"Evgenii Rudnyi. All rights reserved."}], "PageFooter"], Inherited}, {Inherited, Cell[ TextData[ {"Evgenii Rudnyi. All rights reserved."}], "PageFooter"], Inherited}}, StyleDefinitions -> "HelpBrowser.nb" ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[1754, 51, 17665, 225, 88, 17402, 216, "GraphicsData", "Bitmap", \ "Graphics", Evaluatable->False], Cell[19422, 278, 199, 4, 27, "Text"], Cell[19624, 284, 200, 7, 27, "Text"], Cell[CellGroupData[{ Cell[19849, 295, 66, 1, 75, "Section"], Cell[19918, 298, 1626, 41, 195, "Text"], Cell[CellGroupData[{ Cell[21569, 343, 54, 0, 44, "SubsectionIcon"], Cell[21626, 345, 628, 11, 212, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[22291, 361, 50, 0, 30, "SubsectionIcon"], Cell[22344, 363, 134, 3, 44, "Text"], Cell[22481, 368, 89, 2, 31, "Input"], Cell[22573, 372, 201, 4, 44, "Text"], Cell[22777, 378, 245, 5, 94, "Text"], Cell[23025, 385, 148, 3, 50, "Input"], Cell[23176, 390, 39, 0, 27, "Text"], Cell[23218, 392, 50, 1, 31, "Input"], Cell[23271, 395, 72, 0, 27, "Text"], Cell[23346, 397, 67, 0, 27, "Text"], Cell[23416, 399, 47, 1, 31, "Input"], Cell[23466, 402, 291, 5, 78, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[23794, 412, 51, 0, 30, "SubsectionIcon"], Cell[23848, 414, 578, 15, 102, "Text"], Cell[24429, 431, 1971, 39, 602, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[26437, 475, 34, 0, 30, "SubsectionIcon"], Cell[26474, 477, 421, 11, 77, "Text"], Cell[26898, 490, 74, 0, 27, "Text"], Cell[26975, 492, 51, 1, 31, "Input"], Cell[27029, 495, 74, 0, 27, "Text"], Cell[27106, 497, 91, 2, 31, "Input"], Cell[27200, 501, 154, 5, 102, "Text"], Cell[27357, 508, 164, 4, 50, "Input"], Cell[27524, 514, 170, 2, 44, "Text"], Cell[27697, 518, 81, 2, 31, "Input"], Cell[27781, 522, 74, 0, 27, "Text"], Cell[27858, 524, 122, 3, 31, "Input"], Cell[CellGroupData[{ Cell[28005, 531, 62, 0, 27, "SubsubsectionIcon"], Cell[28070, 533, 50, 0, 27, "Text"], Cell[28123, 535, 106, 2, 31, "Input"], Cell[28232, 539, 47, 0, 27, "Text"], Cell[28282, 541, 90, 2, 31, "Input"], Cell[28375, 545, 59, 0, 27, "Text"], Cell[28437, 547, 162, 4, 50, "Input"], Cell[28602, 553, 47, 0, 27, "Text"], Cell[28652, 555, 79, 2, 31, "Input"], Cell[28734, 559, 53, 0, 27, "Text"], Cell[28790, 561, 160, 4, 50, "Input"], Cell[28953, 567, 64, 0, 27, "Text"], Cell[29020, 569, 630, 15, 145, "Input"], Cell[29653, 586, 63, 0, 27, "Text"], Cell[29719, 588, 607, 11, 164, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[30363, 604, 64, 0, 21, "SubsubsectionIcon"], Cell[30430, 606, 69, 0, 27, "Text"], Cell[30502, 608, 142, 3, 50, "Input"], Cell[30647, 613, 47, 0, 27, "Text"], Cell[30697, 615, 91, 2, 31, "Input"], Cell[30791, 619, 59, 0, 27, "Text"], Cell[30853, 621, 167, 4, 50, "Input"], Cell[31023, 627, 47, 0, 27, "Text"], Cell[31073, 629, 80, 2, 31, "Input"], Cell[31156, 633, 53, 0, 27, "Text"], Cell[31212, 635, 161, 4, 50, "Input"], Cell[31376, 641, 64, 0, 27, "Text"], Cell[31443, 643, 635, 15, 145, "Input"], Cell[32081, 660, 63, 0, 27, "Text"], Cell[32147, 662, 603, 11, 164, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[32787, 678, 36, 0, 21, "SubsubsectionIcon"], Cell[32826, 680, 72, 2, 31, "Input"] }, Open ]] }, Open ]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)