Home

User`s Manual

image

Contents

1. 95 4 12 3 NCComposelaVerySpecialList o 97 4 12 4 NCDecomposelexpr listofsymbols 0 o 97 ATS Utilities AA O O 97 4 13 1 SaveRules expression optional tag message 97 4 13 2 SaveRulesQ cia a e Bus Ban a ne a 98 4 13 3 FunctionOnRules Rules Function1 Function2 optional On 98 4 14 Deprecated Commands 2 5 treo Er E Be dio AR Ue Boe a ee ose 98 4 14 1 RandomMatrix m n min max options ren eat eat 99 ATA A A O A E 99 Pretty Output and Tex Commands 101 Sb Propuso tool E ls A E SA se 101 5 1 1 NCSetOutput optionlist oc ook SoS oe de ri 101 5 2 TEX Typesetting with NCTEX Form a Gok pe oe Da eS 102 A o ONES ae bas EA nce paver a 6k RB Ok ele ot a Rated 103 5 3 Simple Tex Commands with NEIEX 2er ae Hee mare 103 NOD hs amp ds nase es iio e BS me an 104 5 4 Deprecated Commands 2 2 2 a a a a 104 5 4 1 SeeTeX or SeeTeXlanInteger 222 220 104 54 2 ls are AAA A ee att i 105 o Sn a ki et ee ee Bee 105 5 4 4 See aListOfIntegers ns ae Bear ein 106 5 4 5 Keep anInteger A ERBE 106 NCAlgebra 7 5460 K lllanfnteser sa ee er IE Bee 107 5 4 7 LookAtMatrix aMatrix sn is ls ren 107 5 4 8 LookAtLongExpressionlanExpression 2 222222 000 107 6 Aliases 109 II NONCOMMUTATIVE CONTROL SYSTEM PROFESSIONAL 113 7 State Space Systems Constructions 117 7 1 Systemi Interconnections Li a ti ley IN ane ee ee 118 7 1 1 SeriesConne
2. NC isCatching is reserved to attempt to do Mathematica exception handling via the Mathe matica commands Catch and Throw This is not implemented and is held for future development 33 5 2 NCGB NC Variables The NC variables which are presently part of NCGB are those that are part of NCAlgebra see section 33 5 1 and the following variables NC Loaded NCGB NC LongLoadTime NC Binary Dir NC Binary Name NC Loaded NCGBS is used to ensure that NCGB m is not loaded twice Every NC Loaded file will be used to avoid duplicate file Get s This is similar to the ifndef define endif scheme used in C The NC LongLoadTime variable is True by default which means that all of NCAlgebra m will be read in when NCGB m is read in If one sets it to False before loading either NCAlgebra m or NCGB m then only part of NCAlgebra m will be read in 279 The variables NC Binary Dir and NC Binary Name are used to specify which C ex ecutable file one is using If one does not assign a value to either variable then the value will be set in accordance with the variable NCDir which is set in the file SetNCPath m The file SetNCPath m was modified appropriately during installation 33 6 How to set up if someone else compiled the code UNIX It is easy to bum off of a friend who is running NC on the same system 33 6 1 When your system administrator installed the code When your system administrator installed the code
3. 13 A collection of equations in these knowns and unknowns 14 A number of iterations The knowns Il are set using the SetKnowns command The unknowns 12 are set using the SetUnknowns command For example SetKnowns A B C sets A B and C known and SetUnknowns z y z sets x y and z unknown Also in this case the algorithms sets the highest prioirity on eliminating z then y and then x Some readers might recall this is exactly the information needed as input to NCMakeGB The output of the NCProcess commands is a list of expressions which are mathemat ically equivalent to the equations which are input in step 13 That is the output equations and input equations have exactly the same set of solutions as the input equations When using NCProcessl this equivelent list hopefully has solved for some unknowns The output is presented to the user as O1 Unknowns which have been solved for and equations which yield these unknowns O2 Equations involving no unknowns O3 Equations selected or created by the user For example in the context of S1 below one would want to select the equation E 7 There are also times during a strategy when one wants to introduce new variables and equations This is illustrated in Chapter 14 O4 Equations involving only one unknown O5 Equations involving only 2 unknowns etc We say that an equation which is in the output of an NCProcess command is digested if it occurs in items O1 O2 or O3
4. gt Inv E12 E11 B1 Tp b Inv E12 Tp A E11 Inv E21 gt Inv E12 Tp C1 C1 Inv E21 Inv E12 E11 B1 gt Tp B1 E11 Inv E21 In 5 cpoly RuleToPoly result1 3 1 Out 5 Tp c c E21 B2 c Tplc Tp B2 E12 gt E21 A Inv E21 E22 E21 B1 Tp B1 E12 E22 Inv E12 Tp A E12 E22 Inv E12 Tp C1 c Tp c C1 Inv E21 E22 E22 Inv E12 E11 B2 c Tp c Tp B2 E11 Inv E21 E22 E21 B1 Tp B1 E11 Inv E21 E22 E22 Inv E12 E11 A Inv E21 E22 E22 Inv E12 E11 B1 Tp B1 E12 E22 Inv E12 Tp A E11 Inv E21 E22 E22 Inv E12 Tp C1 C1 Inv E21 E22 E22 Inv E12 E11 B1 Tp B1 E11 Inv E21 E22 In 6 In 7 VVVVVVVV Vv bpoly Tp gt tp cpoly Tp gt tp bpoly cpoly Observe that the polynomials Out 4 is quadratic in b We could complete the square and get to put the polynomial in the form b u u where u and v are expressions involving Cj CF B BT A AT Ex Ej and Ej Since there are many unknowns in the problem there is probably excess freedom Let us investigate what happens when we take b u 0 NCAlgebra is very good with quadratics so this is easy to execute but since this is not a general NC Algebra tutorial we shall not describe how this is
5. Comments Limitations Not well documented 4 1 4 NCCollectSymmetric expr Aliases NCCSym Description None Arguments expr is an algebraic expression Comments Limitations None 49 4 1 5 NCTermsOfDegree expr aListOfVariables indices Aliases None Description NCTermsO f Degreelexpr aListO f Variables indices returns an expression such that each term is homogeneous of degree given by the indices in the variables of aListO fVariables For example NCTermsO f Degree x xy U 0 x Y 0 E xx xw Lx y indices returns x x xg xy a x xy xx if indices 2 1 return x xw if indices 1 0 return x x xx if indices 2 0 and returns 0 otherwise This is like Mathematica s Coefficient command but for the noncommuting case However it actually gives the terms and not the coefficients of the terms Arguments expr is an algebraic expression aListO fVariables is a list of variables and indices is a list of positive integers which is the same length as aList Comments Limitations Not available before NCAlgebra 1 0 4 1 6 NCSolvelexpr1 expr2 var Aliases None Description NC Solvelexprl expr2 var solves some simple equations which are linear in the unknown var Note that in the noncommutative case many equations such as Lyapunov equations cannot be solved for an unknown This obviously is a limitation on the NCSolve command Arguments exprl and expr2 are Mathematica expressions var is
6. foolx___ 0 In 27 NCReconstructFromTermArray foo Out 27 x z Zz k x x KK W X KK Z Z x KK y W 97 4 12 3 NCComposelaVerySpecialList Aliases NCCom Description NCCompose NC Decompose poly a will reproduce poly For example NCCompose NC De will reconstruct the elements of poly which are of order 1 in a and of order 0 in b Arguments Not documented yet Comments Limitations Called within NCCollect The average user would never use this 4 12 4 NCDecomposelexpr listofsymbols Aliases NCDec Description NCDecompose poly a or NCDecompose poly a b c will produce a list of elements of poly in which elements of the same order of a or the same order of a b c are collected together Arguments Not documented yet Comments Limitations Called within NCCollect The average user would never use this 4 13 Utilities Most of these utilities are for saving things They probably do not work nor will you wish to use them in the Notebook environment 4 13 1 SaveRules expression optional tag message Aliases SaveR Description Its main purpose is to control the Rules temp file which records the rules used any time a Substitute command is used Arguments SaveRules On turns on the Rules temp for continuous recording of rules SaveRules Of fl turns off the continuous record feature of Substitute commands but any Substitute command can make a re
7. B2 inv el tp D12 C1 tp C1 D12 inv e1 tp B2 XX tp C1 D12 inv e1 tp D12 C1 In 27 NCE DGX Out 27 0 In 28 NCE IAYI x rulinearall Out 28 tp x inv YY A x tplx tp A tplx inv YY tp x tp C1 C1 x tp x tp C2 inv e2 C2 x tp x inv YY B1 tp B1 tp x inv YY tp x inv YY B1 tp D21 inv e2 C2 x tp x tp C2 inv e2 D21 tp B1 tplx inv YY tp x inv YY B1 tp D21 inv e2 D21 tp B1 tp x 333 inv YY In 29 Sub x gt 1 Out 29 inv YY A tp A inv YY tp C1 C1 tp C2 inv e2 C2 inv YY B1 tp B1 inv YY inv YY B1 tp D21 inv e2 C2 tp C2 invle2 D21 tp B1 inv YY inv YY B1 tp D21 inv e2 D21 tp B1 inv YY In 30 NCELYY YY DGY Out 32 O In 34 Quit 334 Chapter 46 References AV B D O Anderson and S Vongpanitlerd Network Analysis and Synthesis Prentice Hall Englewood Cliffs 1973 BHW J A Ball J W Helton and M L Walker IEEE Trans Aut Contrl April 1993 originally the computer file SYSHinfTAC m included here BH5 J A Ball and J W Helton Nonlinear H control theory for stable plants Math Control Signals Systems 5 1992 pp 233 261 DGKF J C Doyle K Glover P P Khargonekar and B A Francis Stat
8. e o 136 10 4 1 Saving time when typing relations involving inverses NCMakeRelations 136 10 4 2 Saving time working in algebras with involution NCAddTranspose NC Ada OM Loss Sea wh a hee Shag Dada eee we le 137 10 4 3 Saving time when setting orders NCAutomaticOrder 187 11 Demo on NCGB Matrix Computation 139 11 1 The Partially Prescribed Inverse Problem 139 12 To Run NCGB Template nb 145 12 1 Making a Groebner basis and NCProcess template 145 13 NCProcess What It Does 147 13 1 NCProcess Input and Output y e AA ee hey A 147 13 1 1 When to stop AAA ek Bo ci ES 149 13 2 8 hano np Variables y os Sr hod la o ake kit Ge Ble ee 149 14 NCProcess An Example 151 Ad Backroli sat reset a as es Janae ie cas Sek Joe as a Jae a Sed 151 14 2 The Problem jy 2 a2 A ZR oe el ee AEA 152 14 3 Solution via a Prestrategy taa are Oh ee eee ee ee 192 14 4 The end ame ti ea aaa Haan Marz Marl 156 14 4 1 Concluding Remarks 4 4 a inde ek Soke a e at da 157 15 NCProcess The Commands 159 15 1 SetKnowns and SetUnknowns 3046 4 ws oa ee we art 159 T52 NOPrOCESS da en e te ls Din des th nie a en e A 160 15 2 1 NCProcess aListOfPolynomials iterations fileName Options 160 122 Examples a DA ae ee ea 161 15 3 Commonly Used NCProcess Options and Commands 162 15 3 1 UserSelect aListOfPolynomials 162 15 3 2 DegreeCap gt aNumberl and DegreeSumCap gt aNu
9. 0 1 ReleaseNotes NCAlgebra ReleaseNotes NCAlgebra 4 0 January 2010 Code has been cleaned up and improved Basic functionality is supported without changes ReleaseNotes NCAlgebra 3 7 Sept 2002 Convexity We changed some defaults and fixed some bugs in NCConvexityRegion and NCMatrixOfQuadratic Now it runs quickly on fairly big problems Path Setting Paths were set to make NC Algebra more path independent CSP Our support for Control System Professional was updated to accomodate the second 2002 version of CSP ReleaseNotes NCAlgebra 3 5 Sept 2001 Basic Changes You no longer have to set every variable to be noncommutative We have a command NCGuts which has an option called NCSetNC When set to True all letters are automatically noncommutative unless SetCommutative makes them commutative A further option of NCGuts allows one to use to multiply matrices with noncom mutative entries the more cumbersome MatMult command is no longer needed While this option seems dangerous to Bill it makes many computations prettier and easier to type If you don t trust the answer then don t use the option Commands For Matricies With Noncommuting Entries We now have an LDU decomposition for matricies with noncommuting entries Also there is a command for com puting the inverse of such matrices however this only works under strong assumptions NCMatrixOfQuadratic gives a vector matrix factorization of a symmetric quadratic non com
10. 1 2 3 4 5 6 7 8 9 10 11 In 15 ColumnForm WhatIsHistory Out 14 Out 15 11 x x gt a 10 0 0 12 x y gt a 0 0 3 x y gt b 0 0 0 4 x x x gt b 0 0 5 x a gt a x 1 1 16 a y gt a x 1 2 5 17 x b gt a x 1 3 6 18 a x gt b 1 4 9 a a gt b 1 4 1 7 8 10 b x gt b 4 1 1 9 11 b gt a 2 3 03 We now describe what the above output means Notice that each line is a number followed by a replacement rule followed by a pair of numbers followed by a list of zero or more numbers The 254 tuples mean relation number relation the 2 parents of thr relation which rules relations were applied to the S polynomial For example we say that x xx a is the first replacement rule x xy a is the second replacement rule etc The third entry is the two parents of rule There are two cases Case the third component is the pair 0 0 When the pair 0 0 appears as the third compo nent of list the relations was provided as input to the NCMakeGB In this case the fourth list is always empty Case the third component is the pair a b and a and b are positive When the pair a b appears as the third component of list then the first step in constructing this rule comes from taking the S polynomial of the ath and bth replacement rules The last list of numb
11. 3 4 The call to RemoveRedundent is In 8 RemoveRedundent 7 4 Out 12 Out 8 a x gt b x x gt a 30 6 Smaller Bases and the Spreadsheet command Here is a session which does roughly what the spreadsheet command does For more detail see Chapter 15 In 11 NCMakeGB FAC 2 In 11 SmallBasisByCategory RemoveRedundant The next command tries to see if any of the undigested relations can be made simpler using the digested relations In 12 NCSimplifyAll 11 DigestedRelations 11 Finally we output the result to the file SecondOutputForDemo In 13 RegularOutput 12 SecondOutputForDemo Now we return to the strategy demos of Chapter 15 Inserting the command RemoveRedundant inside of small basis may change the answer but it yields the same answer as SmallBasis would have given with one particular order on the set of relations given as input All this assumes that the number of iterations is large Inserting RemoveRedundant saves much computer time Chapter 31 NCXFindChangeOfVariables The Long Description The main purpose of NCXFindChangeOfVariables is to take some list of polynomials probably the result running NCProcess on some possibly large problem and to find a motivated unknown which simplifies the problem A motivated unknown M is a polynomial which when substituted into some polynomial which motivates it produces a polynomial in only one unknown namely
12. A mi B CO m1 mi leftmi A mi mi leftmi B CO B CO mi gt A xx A mi A B CO m1 B CO A mi B CO B CO mi m1 leftmi A A mi mi leftmi A B CO mi mi leftmi B CO A mi VVVVWV Chapter 37 Example of Hypothesis Selection in Discovering Example 37 1 Suppose you are working with matrices a b c etc If an NC Process command discovers that ab bc and at that point you realize that it is reasonable to pesume that no eigenvalue of a is an eigenvalue of c then b must be zero from an analytic argument Therefore one can add the polynomial equation b 0 to the collection of polynomial equations and continue As research progressed one would add more and more analytic observations at the points where it became clear what those observations were The syllogism corresponding to the above type of argument would go as follow Fact 37 2 If whatever hypothesis then ab bc Fact 37 3 Ifa b and c are matrices no eigenvalue of a is an eigenvalue of c and ab bc then Fact 37 4 If whatever hypothesis and b 0 then desired conclusion Conclusion 37 5 If whatever hypothesis then desired conclusion Fact 37 2 would be seen by using the algorithms in this paper Fact 37 3 is an observation from analysis Fact 37 4 would be seen by using the algorithms in this paper Conclusion 37 5 is a tautological conclusi
13. Comments Limitations Must have loaded the file Extra TeXForm 108 Chapter 6 Aliases The following is a list of aliases For example NCC x y is equivalent to but easier to type than NCCollect x y NCDec gt NCDecompose NCCom gt NCCompose NCC gt NCCollect NCSC gt NCStrongCollect NCSym gt NCCollectSymmetric CAR gt ComplexAlgebraRules RCAR gt ReverseComplexAlgebraRules DirD gt DirectionalD DirDP gt DirectionalDPolynomial Cri gt CriticalPoint Crit gt CriticalPoint GradPoly gt Grad ExprToTeXFile gt ExpressionToTeXFile NCForward gt NCInverseForward NCBackward gt NCInverseBackward NCF gt NCInverseForward NCB gt NCInverseBackward NCEI gt NCExpandInverse NCETP gt NCExpandTranspose 109 110 MM gt MatMult NCMTMM gt NCMToMatMult tpM gt tpMat GauE gt GaussElimination NCExpand gt ExpandNonCommutativeMultiply ENCM gt ExpandNonCommutativeMultiply NCE gt ExpandNonCommutativeMultiply TTNCM gt TimesToNCM CE gt CommuteEverything CQ gt CommutativeQ SNC gt SetNonCommutative NCM gt NonCommutativeMultiply SetNC gt SetNonCommutative NCSR gt NCSimplifyRational NCSOR gt NCSimplifyORational NCS1R gt NCSimplify1Rational NCS2R gt NCSimplify2Rational NCIE gt NCInvExtractor MSR gt MakeSimplifyingRule NCSolve gt NNCSolveLinear1 Sub gt Substitute SubR gt SubstituteReverse SubRev
14. D12 z tp XX z B2 z invleilz eilx invleilz tp B2 z XX z tp D12 z1 C1 z tp GEx x z B1 x tp D21 x inv e2 x C2 x 2 C2 z 2 D21 x tp B1 x GEx x z 4 D21 z tp B1 z1 XX z1 2 In 10 qpart NCE 19 19 q x z gt 0 Dut 10 qlx z C2 x 2 qlx z C2 z 2 tp C2 x tplqalx z 2 tp C2 z tplalx z11 2 qalx z e2 x tplqlx z 4 glx z D21 x tp B1 x GEx x z 4 qalx z D21 z tp B1 z 1 XX z 2 tp GEx x z B1 x tp D21 x1 tplqlx z 1 4 tp XX z Bilz tp D21 z tplalx z 2 In 11 tplqlx z gt 0 Out 11 qlx z C2 x 2 qlx z C2 z 2 glx z D21 x tp B1 x GEx x z 4 glx z D21 z tp B1 z XX z1 2 In 12 L qlx z gt 1 Out 12 C2 x 2 C2 z 2 D21 x tp B1 x GEx x z 4 D21 z tp B1 z1 XX z1 2 In 13 Q e2 x 4 Out 13 e2 x 4 In 14 bterm qlx z tp L inv Q Out 14 4 tp GEx x z B1 x tp D21 x 4 tp XX z Bilz tp D21 z 2 tp C2 x 2 tp C2 z11 2 inv e2 x q x z In 15 Sub NCE 19 bterm Q tp bterm K rue Dut 15 O In 16 Quit 45 3 Specializing to less general systems 45 3 1 Specializing to linear systems To specialize to the linear case just apply e rulinearsys to make the systems linear e rulinearEB to make the ene
15. If aCharString is Digested then all of the digested relations are returned 1 2 3 If aCharString is Unknowns then all of the undigested relations are returned 4 If aCharString is Knowns then all of the relations involving just knowns are returned 5 If aCharString is digestedLabels then is returned 6 If aCharString is digestedRules then all of the digested relations are returned 7 If aCharString is userSelectsRules then all of the user selected relations are returned 8 If aCharString is userSelectsLabels then all of the user selected labels are returned 9 If aCharString is knownsLabels then is returned 10 If aCharString is knownsRules then all of the relations involving just knowns are returned 11 If aCharString is singleRules then all of the relations which solve directly for unknowns are returned 12 If aCharString is singleVars then all of the unknowns which have been solved for directly are returned Otherwise NCPAns aCharString is returned Arguments aCharString is a character string NCPAns is a symbol Comments Limitations 23 0 7 Clear NCPAns Aliases None Description Clear aName clears whatever info is stored in aName Arguments Clear NCPAns clears NCPAns which might matter to you if you run shaorty of memory Comments Limitations 227 23 1 Example Suppose we are in
16. In 7 Sub ruhomog 326 Out 7 tp A x GEx x 0 2 tp C1 x C1 x tp GEx x 0 Alx 2 tp C2 x tp b 0 GEz x 01 2 tp GEz x 01 b 0 C2 x 2 tp GEx x 0 B1 x tp B1 x GEx x 0 4 tp GEx x 0 B1 x tp D21 x tp b 0 GEz x 0 4 tp GEz x 01 b O D21 x tp B1 x GEx x 0 4 tp GEz x 01 b 0 e2 x tp b 01 GEz x 01 4 In 8 Sub ruXXYYI NOTE ruXXYYI GEz x_ x_ gt 0 GEx x_ x_ gt 2 XX x GEx x_ 0 gt 2 YYI x Out 8 tp A x1 YYI x tp C1 x C1 x tp YYI x A x tp Cc2 x tp b 0 GEz x 01 2 tp GEz x 01 b O C2 x 2 tp YYI x1 B1 x tp B1 x YYI x tp GEz x 0 b 0 D21 x tp B1 x YYI x 2 tp GEz x 0 b 0 e2 x tp b 0 GEz x 0 4 tp YYI x B1 x tp D21 x tp b 0 GEz x 01 2 In 9 SubSym rugb NOTE rugb tp b z_ GEz x_ z_ gt qlx z Out 9 tp A x1 YYI x tp C1 x C1 x tp C2 x q x 01 2 tp YYI x Alx tplqalx 01 C2 x 2 tplqlx 07 e2 x qlx 0 4 tp YYI x B1 x tp B1 x YYI x tp YYI x B1 x tp D21 x q x 01 2 tp q x 0 D21 x tp B1 x YYI x 2 In 10 Crit q x 0 Out 10 qlx 0 gt 2 invle2 x C2 x 2 inv e2 x D21 x tp B1 x YYI x In 11 Sub Out 11 2 tp c2
17. SetMonomialOrder y x b al and do the same NCMakeGB as above In 21 NCMakeGB b x x y a x boxx a a x xa 1 a x 1 4 In 22 PolyToRule In 23 ColumnForm Out 23 a x gt 1 xx a gt 1 x b k a gt x K y b k Xx KK X b a k a gt y a a rk b x b X KK X X gt X KK b X y X a b x x gt y b K a x k box b a gt gt x b eK y X k y KK b kk X KK x b k x KK x HK DKK x X b a k b x a gt gt Dee u ee ee Dee eee x x b xk b a gt gt x DAR b eK y x b kk y KK b HK x KK x gt X eK y b k k X KK X KK DKK X KK X gt b k k X k k x k k b KK X KK X KK D KK X KK X b a k brxxr b a gt gt y b Y b a b y y b b a gt y XX x KX DKK a k y KK b kk KKK x gt a xk x KK b kxk x kk x KK DKK x KK X In this case it turns out that it produced the rule a b x x xz y bx xa which shows that the order is not set up to solve for y in terms of the other variables in the sense that y is not on the left hand side of this rule but a human could easily solve for y using this rule Also the algorithm created a number of other relations which involved y If one uses the lex order a lt lt b lt lt y lt lt x the NCMakeGB call above generates 12 polynomials of high total degree which do not solve for y See CoxLittleOShea 18 2 Graded lex or
18. SetNonCommutative a b c d w x y Z Inv a Inv b Inv c Inv d Then we define the relations we are interested in The two relations oneway otherway set our block matrices as inverses of each other The relations inverses invoke the assumption that a b c and d are invertible by defining their inverses 139 140 In 2 first a x y b second w c d z y Out 2 a x y b Out 3 w c d z In 4 oneway MatMult first second IdentityMatrix 2 otherway MatMult second first IdentityMatrix 2 Out 4 1t a wtx d ak ctx z b dty w L b zty c Out 5 1 c yt wk ea ck btwkex L dx a z y 1 d x tz xb In 6 inverses 1 a Inv a 1 Invla x x a 1 b Inv b 1 Inv b b 1 c Inv c 1 Invlc c 1 d Inv d 1 Inv d d allRelations Join Flatten oneway otherway inverses Out 6 1 a Inv a 1 Inv a a 1 b Inv b 1 Inv b b 1 c Invl c 1 Inv c c 1 d Inv d 1 Inv d d Out 7 L 1 ax wtxx d ax ctxxkz Dixd y kw 1 b z y C Ltckxyt wkea ckkb Wkrx dekatzexy Lt d xt z b ita x Inv a 1 Inv a a 1 b Inv b 1 Inv b b 1 c Invl c 1 Inv c c 1 d Inv d 1 Inv d d Specify to NCAlgebra which variables are known and which are unknown To GB fans this sets the monomial order indicated around the middle of the first page of the output In 8 SetKnown
19. THE NCAlgebra SUITE NCAlgebra 4 0 Mathematica s Control System Professional Noncommutative support 1 0 NCGB NonCommutative Groebner Bases 4 0 SYStems ON THE WEB http math ucsd edu ncalg Download the software and Register there for updates January 7 2010 NCAlgebra Contents Table of Contents Preface I NCAlgebra 0 1 ReleaseNotes NCAlgebra 24 ner race 1 A Short Tutorial on NCAlgebra 1 1 Installing NCAlgebra 2 5 aaa re ER pe LIA Downloading zen dan Barren et 1 1 2 Un packs ay dile het Eee PILS Installing ue Su EE en a ed 12 Rune NCAlsehr 4 woe o se we RARA 13 gt Assbort Tutorial sseni Ac A AAN AA ARO a 1 4 Where to Find More Examples 4 e wand ce a ete oe hse wee 4 a SPIEL OQ tp t s ei Ake lod act he UN ae ti A Se Sites os ee AN oe tt 2 A More Sophisticated Demo 3 Helpful Tricks 2 4 Erpandineuwcset sa Sa oh ase Sa ao i as As ie ein 3 2 Simplifying Expressions ae sa os e dr oe Oo ee a ai 3 23 pi ales a le E Y eee oe ees Ee oe ee 332 Orders tate dred Atay Cf om Aone He ay Ar er ee aay was ee ase i 3 2 3 Automatic generation of rules ooa a 3 3 Edit For those without Notebooks 04 BP ACOnVEnt Ions a Kae Lt ee A ee een 4 NC Commands 4 1 Manipulating an expression 2 CHE nn 4 1 1 ExpandNonCommutativeMultiply expr 4 1 2 NCCollectlexpr aListOfVariables lt 4 13 NCStrongCollect expr aListOfV
20. anlnteger aString Options 269 NCXMultiplyByMonomials aVerySpecialList 270 NCXPossibleChangeOfVariables aListofPolyno mials Options 270 NCXRepresent aListOfExpressions aListOfVari ables aListOfDims aListOfFunctions aL istOfExtraRules 274 loTeX 105 NumbersFromHistory aPolynomial history 252 Z Overridelnverse 77 ParallelConnect System1 System2 118 PartialBasis aNumber Untested in 1999 211 PolyToRule 132 Poly ToRule aPolynomial 214 PolyToRule RuleToPoly r r 136 343 PolyToRule a x 1 b x 192 SetNonCommutativeMultiply Antihomomorphism Print MonomialOrder 196 Functions 94 PrintScreenOutput True 202 SetProjection Symbols 89 PrintScreenOutput False 203 SetRecordHistory False 212 213 PrintSreenOutput False 244 SetRecordHistory True 213 ProjectionQ S 90 SetSelfAdjoint Symbols 87 SetSesquilinear Functions 91 RandomMatrix m n min max options 99 SetSignature Symbols 90 Redheffer P 67 SetUnitary Symbols 89 Reduction aListOfPolynomials aListOfRules 214SetUnknowns aListOfIndeterminates 195 Reduction 136 SetUnKnowns aListOf Variables 195 RegularOutput aListOfPolynomials file Name 228etUnknowns X Y Z 201 ReinstateOrder 213 ShrinkBasis aListOfPolynomials iterations 218 RemoveRedundant 258 ShrinkOutput aListOfPolynomials fileName 217 RemoveRedundant aListOfPolynomials history 2WenatureQ Symbol 90 RemoveRe
21. lt lt NC 27 If this fails your installation has problems check out previous section If your installation is succesful you will see a message like You are using the version of NCAlgebra which is found in your_home_directory NC You can now use lt lt NCAlgebra to load NCAlgebra or lt lt NCGB to load NCGB Just type lt lt NCAlgebra to load NC Algebra or lt lt NCGB to load NCAlgebra and NCGB Your screen will be filled with lots of information as NCAL gerba or NCGB loads 1 3 A Short Tutorial NCAlgebra is a Mathematica package which allows one to do noncommutative algebraic computations We will begin by presenting some calculations done with our package which should give some idea of what may be accomplished with NCAlgebra We suggest that the reader later do these computations for himself with our package when it has been properly installed since it will provide a tutorial as well as an illustration To begin start Mathematica and load NCAlgebra m or NCGB m as shown in Section 1 2 In 1 lt lt NC In 2 lt lt NCAlgebra The following examples are independent of each other however they may be executed in one continuous session At present single letter lower case variables are noncommutative by default and all others are commutative by default In our package denotes noncommuta tive multiply In 3 a b b a Out 3 a b b a In 4 A B B A
22. x In 7 F x_ W_ A x B xx W In 8 Glx_ W_ C x D ox W In 9 tp XX XX In 10 plx_ tp Grad e x x Grad limited Grad gives correct answers only for a limited class of functions Out 10 2 tp x XX These definitions are associated with the system diagram in Figure 2 1 where d er F x W Ac BW out G x W Cr DW Now recall definition of Energy Hamiltonian H p F p F 2 H out out YWTW 4 35 36 W out F x W G x W Figure 2 1 System Diagram where e x x Xz p x Ve x 2 4 X 7 Our goal is to prove the following Lemma Lemma 1 Assume y DTD exists Then the linear system described above is i finite gain dissipative with gain bounded by y ii the energy function is x Xx if and only if XX is a positive semi definite solution to the Riccati inequality XA ATX CTC XB C7TD Y DTD BTX DTC lt 0 Here we do a proof by computation First compute H In 11 SetCommutative gamma In 12 H tplG x W G x W gamma 2 tp W W plx F x W tp F x W tp p x 2 Out 12 tp W tp D tp x tp C C x D W 2 gt gamma tp W W 2 tp W tp B tp x tp A X x gt 2 tplx X A x B W 2 We perform some initial simplification on H using NCExpand and NCCollect in its symmetric version 37 In
23. 17 3 2 decomposes as p q 41 49 17 3 187 where q b Ejs CT E 7 Ex B and qo is asymmetric polynomial which does not involve b This forces us to say that the proof of the necessary side of Theorem 17 2 was done with a 2 strategy A more aggressive way of selecting knowns and unknowns allows us to obtain this same result with a symmetrized 1 strategy In particular one would set a b and c to be the only unknowns to obtain a first spreadsheet The first spreadsheet contains key equations like 17 3 which is a symmetric 1 decomposition because gz does not contain a b or c Once we have solved for a b and c we turn to the next spreadsheet by declaring the variables involving Ey e g Eu Ej to be unknown At this point the computer run is the same as Steps 2 3 and 4 above 188 Part VI NCGB LISTS OF COMMANDS AND OTHER DETAILS 189 Chapter 18 Ordering on variables and monomials As was mentioned above Section 10 4 1 one needs to declare a monomial order before mak ing a Gr bner Basis There are various monomial orders which can be used when computing Gr bner Basis The most common are called lexicographic and graded lexicographic orders In the previous section we used only graded lexicographic orders See Section 18 1 for a discussion of lexicographic orders We will be considering lexicographic graded lexicographic and multi graded lexicographic orders Lexicographic and multi graded lexicograph
24. 2 Arguments u is a block m x n matrix Comments Limitations None 4 4 5 NCMToMatMult expr Aliases None Description Sometimes one develops an expression in which occurs between matrices This command takes all and converts them to MatMult The Mathematica code executed is expr NonCommutativeMultiply MatMult Arguments expr is an algebraic expression This and its inverse TimesToNCM are important in manipulating block matrices One can use expr NonCommutativeMultiply MatMult instead of this command since that is all that this command amounts to Comments Limitations None 4 4 6 TimesToNCM expr Aliases TTNCM Description The Mathematica code executed is expr Times gt NonCommutativeM ultiply Arguments expr is an algebraic expression Comments Limitations It changes commutative multiplication Times to NonCommu tative multiplication 61 4 4 7 Special Operations with Block Matrices In 1999 we produced commands for LU decomposition and Cholesky decomposition of an inversion of matrices with noncommutative entries These replace older commands GaussE limination X and invMat2fmat for 2 x 2 block matrices which are no longer documented The next 6 commands do that 4 4 8 NCLDUDecomposition aMatrix Options Aliases None Description NCLDUDecomposition X yields the LDU decomposition for a square matrix X It returns a list of four elements namely L D U and P such th
25. False Stop2by2Pivoting False If permutation ma trices are to be given they should be provided as Permutation h la In where each I is a list of integers see the command NCPermutationMatrix If CheckDecomposition is set to True the function checks if PX PT is identical to LDU Where P P P P and each P is the permutation matrix associated with each li Often a prospective pivot will appear to be nonzero in Mathematica even though it reduces to zero To ensure we are not pivoting with a convoluted form of zero we simplify the pivot at each step By default NCLDUDecomposition converts the pivot from non commutative to commutative and then simplifies the expression If the com mutative form of the pivot simplifies to zero Mathematica scrolls down the diagonal looking for a pivot which does not simplify to zero If all the diagonal entries simplify to zero utilizing the CommuteEverything command the process is repeated using NCSimplifyRational This strategy is incorporated for two main reasons One is that for large matrices it is much faster Secondly NCSimplifyRational does not always completely simplify com plicated expressions Setting NCSimplifyPivots True bypasses CommuteEverything 63 and immediately applies NCSimplifyRational to each pivot NCLDUDecomposition will automatically pivot if the current pivot at a particular iteration is zero If the user utilized the Permutation option then the
26. PROOF Using the notation above suppose c is a degree non zero divisor Let Cn be the vector space complement of V AI inv SoC V V AN I Note that the sequence V V NI 2 gives a filtration of AJI Now Ca A c 0 as Ca NI 0 So Cn D Che O O Che C VOY and the are valid as act bc i lt j implies a be 0 and c a left non zero divisor then gives a be 0 so a e N Cn which implies a 0 So dim V 0 D gt n dim C dim V V NJ Thus H1 GK A I 1 lim sup ee log n log n dim C lim sup no log n log n no log n si log dim V D an log dim V un log dim C GK A The computation of the GK dimension is in general difficult Since the sequence whose limit is the GK dimension converges very slowly the only hope is to compute some of the coefficients of the Hilbert series and then guess a generating formula for them Then the GK dimension can be computed by taking the limit of this sequence This may sound a bit ad hoc but it has been implemented for several interesting algebras an example of which follows The algebra we consider is the algebra on two variables generated by the relations that say that any two degree 2 monomials commute with each other The commands used here are explained in the section on Commands We use the input file as follows 232 lt lt NCHilbertCoefficient m SNC x y SetMonomialOrde
27. X definitions we use are in the file NCTeX Form m also TeXUtilities m see the section on TeX There is one place in the Mma s TeX setting in which explicit facts about the operating system are used Elusive file notebook sty must be in your TeX path Here is how you find notebook sty and get it in your path 1 Type in math then type Path and determine where your system administrator installed your copy of mathematica When I did this I got the output as shown below and I determined that mathematica was installed in the directory opt mathematica euler 190 home ncalg NC NCAlgebra math Mathematica 3 0 for Solaris Copyright 1988 96 Wolfram Research Inc 281 Terminal graphics initialized In 1 Path Out 1 home ncalg Mathematica 3 0 Kernel home ncalg gt opt mathematica AddOns StandardPackages gt opt mathematica AddOns StandardPackages StartUp gt opt mathematica AddOns Applications gt opt mathematica AddOns ExtraPackages gt opt mathematica SystemFiles Graphics Packages home osiris ncalg NCDir 2 Now move into that directory Ityped cd opt mathematica 3 Now find the file notebook sty I did this by typing find name notebook sty print When I did this I got SystemFiles IncludeFiles notebook sty 4 Now I changed my cshrc file to add an entry to my TEXINPUTS UNIX environment variable My cshrc file has the line setenv TEXINPUTS opt mathematica SystemFile
28. aListO fV ariables collects terms of expression expr accord ing to the elements of aListO fVariables and attempts to combine them using a par ticular list of rules called rulesCollect NCCollect is weaker than NCStrongCollect 47 48 in that first order and second order terms are not collected together NCCollect uses NCDecompose and then NCStrongCollect and then NCCompose Arguments expr is an algebraic expression aListO fVariables is a list of variables Comments Limitations While NCCollectlexpr x always returns mathematically correct expressions it may not collect x from as many terms as it should If expr has been expanded in the previous step the problem does not arise If not the pattern match behind NCCollect may not get entirely inside of every factor where x appears 4 1 3 NCStrongCollect expr aListOfVariables Aliases NCSC Description It collects terms of expression expr according to the elements of aListO f Variables and attempts to combine them using the particular list of rules called rulesCollect In the noncommutative case the Taylor expansion and hence the collect function is not uniquely specified This collect function often collects too much and while mathemat ically correct is often stronger than you want For example x will factor out of terms where it appears both linearly a quadratically thus mixing orders Arguments expr is an algebraic expression aListO fV ariables is a list of variables
29. aj 5 5 aj 2 3 I 2 31 aj a aj a aj a b ajla aj b aj 6 x 6 ajlx aj aj a a In 40 Out 40 In 41 Out 41 In 42 Out 42 In 43 Out 43 In 44 Out 44 In 45 Out 45 In 46 Out 46 In 47 Out 47 In 48 Out 48 More extensive simplification can be obtained with NCSimplify Rational In 49 inv S a b inv d c b inv d c inv S a b inv d c b inv d c inv a b inv b invla inv a a 1 a inv a 1 a b inv b a invLla a 1 a invR a 1 a invL a a invL a invRla a invRla a f1 1 invld c inv S a b inv d c inv S a b In 50 NCSimplifyRational f1 Out 50 1 31 32 In 51 2 inv 1 2 a a In 52 NCSimplifyRational f2 1 invli 2 a Out 52 2 2 NCSR is the alias for NCSimplifyRational In 53 3 a invl1 al In 54 NCSR f3 Out 54 1 inv i al In 55 4 inv i b a invla In 56 NCSR f4 Out 56 inv a b inv 1 a b There is also a very limited NCSolve Please consider using NCGB for serious equation solving In 57 NCSolvela x b x Out 57 x gt invla b Note NCSolve applies to some linear equations in only one unknown 1 4
30. b EL Ez B BT EI E bb El Ex b BI El The math problem we address is HGRAIL Let A B Ba Cy Co be matrices of compatible size be given Solve Hya 0 Ha 0 Haz 0 and Hy 0 for a b c and for Ey Ey2 Eo and E29 When can they be solved If these equations can be solved find formulas for the solution 17 2 The key relations executable form The first step is to assemble all of the key relations in executable form The properties of E We make the strong assumption that each E is invertible While this turns out to be valid making it at this point is cheating Ironically we recommend strongly that the user make heavy invertibility assumptions at the outset of a session Later after the main ideas have been discovered the user can selectively relax them and thereby obtain more general results Also the 2 x 2 matrix E 1 lt i j lt 2 is symmetric Creating an input file It is a good idea to create an input file for the strategy session before starting Mathematica There are several preliminary steps which may have to be done several times before the 177 desired results are obtained Setting the monomial order setting variables noncommutative and defining the starting equations can all be done beforehand This way if the user wants to try the same run with a slightly different ordering he only needs to edit the input file and load it again In this case the input file is called entrl Notic
31. b c 74 UnitaryQ aSymbol 89 Set ConjugateLinear Functions 92 UniversalBasis aListOfPolynomials NumberOf SetIdempotent Functions 93 Iterations 302 SetInvla b c 86 UserSelect Distinguishing important rela SetIsometry Symbols 87 tions 209 SetKnowns A B 201 SetLinear Functions 92 What AreGBNumbers 251 Set MonomialOrder aListOfIndeterminants n 197 What AreNumbers 252 Set MonomialOrder aListOfListsOfIndeterminates WhatlsHistory aListOflIntegers 253 194 WhatlIsKludgeHistory aListOfIntegers 253 SetMonomialOrder A B a b f 193 WhatIlsMultiplicityOfGrading 197 SetNonCommutative A B C 73 WhatlIsPartialGB 210 344 WhatlIsPartialGB aListOfIntegers 252 WhatlsSetOfIndeterminants n 197
32. e b f rightml rightm2 a dummy b leftmi b gt leftm1 B dummy c mi c gt CO mi dummy f leftm2 f gt leftm2 B dummy g m2 g gt CO m2 dummy leftm1 mi leftm1 m1 gt 1 mi leftmi B CO mi gt A mi B CO mi mi leftmi A mi mi leftmi B CO B CO mi gt 294 A xx A xx m1 A Box CO mi B CO A mi B CO B CO mi m1 leftmi A A mi mi leftml A B CO mi mi leftmi B CO A mi dummy leftm1 m2 leftm1 m2 gt 0 leftml A m2 gt 0 dummy leftm1 rightmi rightm1 gt leftm1 dummy leftm2 mi leftm2 mi gt 0 leftm2 B CO mi gt leftm2 A mi dummy leftm2 m2 leftm2 m2 gt 1 dummy leftm2 rightm2 rightm2 gt leftm2 dummy a leftmi mi a gt leftml A mi dummy e leftm2 m2 fe gt leftm2 A m2 dummy leftm1 leftm2 m1 m2 m2 leftm2 gt 1 mi leftmi dummy _ One can pick of categories one by one in Mathematica by using the GetCategories command In 5 GetCategories leftm2 m1 dummy Out 5 leftm2 mi gt 0 leftm2 B CO m1 gt leftm2 A mi In 6 GetCategories dummy Out 6 In 7 GetCategories leftm1 m1 dummy Out 7 leftmi mi gt 1 mi leftml B CO mi gt gt
33. gt 1 4 3 The expressions with unknown variables E E11 E21 E12 and knowns X t Er Ey En gt E X In the spreadsheet we use conventional X Y notation rather than discovered nota tion so that our arguments will be familiar to experts in the field of control theory 186 Now we use the above spreadsheet to verify the proposed converse To do this we assume that matrices A B Ba Ci Co X and Y exist that X and Y are invertible that X and Y are self adjoint that Y X is invertible and that the DGKF X and Y equations hold That is the two following polynomial equations hold Y AB Co YT A ATY CT Ci CF Co CI BTY X BB X XA ATX X B 0 CT BT X XB BTX We wish to assign values for the matrices Eis E21 E22 E11 a b and c such that each of the equations on the above spreadsheet hold If we can do this then each of the equations from the starting polynomial equations from 817 1 will hold and the proposed converse will follow 1 Note that all of the equations in the Category of the above spreadsheet hold since X and Y solve the DGKF equations and are both invertible 2 Set Ej equal to the inverse of Y This assignment is dictated by the user selects Note that E11 El follows since Y is self adjoint 3 Let Ej2 and Ez be any invertible matrices such that El E For example one could choose Ej2 and E2 to both be the identity matrix 4 Note that there is there is
34. inv A x xinv Id A B Arguments expr is an algebraic expression Comments Limitations None 4 1 15 NCForward expr Aliases NCF Description It applies the rules B x xinv Id A x xB gt inv Id B x xA x xB inv B x xinv Id BxxA gt inv Id B x xA x xinv A Arguments expr is an algebraic expression Comments Limitations None 93 4 1 16 NCMonomial expr Aliases None Description NCMonomail changes the look of an expression by replacing nth integer powers of the NonCommutative variable x with the product of n copies of x For example NCMonomial 21 5x evaluates to 2r xx 5ar x x0 x0 and NCMonomiall x xz xk xx evaluates to ex X xz x KD Arguments Any noncommutative expression Comments Limitations The program greatly eases the task of typing in polynomials For example instead of typing CH kk 20 gt gt 20 KKL A 2 2 KL KL KL KL KAY KELL one can type x NCM ono x yx x NCMono expands only integer exponents This program will be or has been depending on the version of code which you have superseded by NCMonomial and NCUnMonomial NCMonomial implements the same functionality as NCMonomial and NCUnMonomial reverses the process Caution Mathematica treats x y as 1 y and so to have Mathematica acknowledge x y then input x y exactly This has nothing to do with NCAlgebra or NCMonomial 4 1 17 NCUnMonomiallexpr Aliases None Description NCUnM
35. nj 197 ClearUserSelect 209 colexpr 78 ColsometryQ aSymbol 88 coMat u 59 CommutativeAllQlexpr 75 CommutativeQ X 75 CommuteEverythinglexpr 73 ComplexCoordinates expr 72 ComplexD expr aVariable 73 ComplexRules 72 ConjugateLinearQ aFunction 93 ContinuousTimeQ System1 119 CreateCategories aListOfPolynomials aName 22 TterationN CriticalPoint expr aVariable 57 DegreeCapSB aNumber1 200 DegreeSumCapSB gt aNumber2 200 Deselect DISABLED 210 Diag aMatrix 66 DilationHalmoslx 67 DirD 56 DirectionalD expr aVariable h 56 DiscreteTimeQ System1 119 Dual System1 120 EquivalenceClasses aListOfPolynomials or Equiv alenceClasses aListOfPolynomials Sim pler 301 Expand NonCommutativeMultiply expr 47 ExpandQ inv 76 ExpandQ tp 77 FeedbackConnect System1 System2 118 FinishedComputingBasisQ Untested in 1999 210 FunctionOnRules Rules Functionl Function2 optional On 98 GBTEST 243 Get Category aCharString NCPAns 226 GetCategory aListOfVariables NCPAns 225 GrabIndeterminants aListOfPolynomialsOrRules 51 GrabVariables aListOfPolynomialsOrRules 52 Grad expr aVariable 56 GroebnerCutOffFlag n Integer 302 GroebnerCutOffMin n Integer 302 GroebnerCutOffSum n_Integer 302 History Off 212 IdempotentQ aFunction 93 IntegerOverflow 130 inv x 75 InverseSystem System1 120 invL x 76 invQ x 76 invR x
36. tp B2 z GEz x z 2 tp D12 x C1 x tp B2 z XX z1 2 tp D12 z C1 z 2 tp B2 z XX z 2 tp D12 z C1 z 2 329 tp B2 z1 XX z tp C1 z1 D12 z invleilz tp D12 x D12 x invleilz tp D12 z C1 z tp XX z B2 z invleilz tp D12 x D12 x invleilz tp B2 z XX z tp XX z B2 z invleilz tp D12 x D12 x invleilz tp D12 z C1 z In 6 SubSym rue NOTE rue tp D12 x_ D12 x_ gt eilx D21 x_ tp D21 x_ gt e2 x Out 6 q x z C2 x1 2 qlx z C2 z 2 tp A x GEx x z 2 tplAlz GEz x z 2 tp C1 x C1 x tp C2 x tplalx z 2 tp C2 z11 tplalx z11 2 tp GEx x z Alx 2 tp GEz x z A z 2 glx z e2 x tplalx z11 4 glx z D21 x tp B1 x GEx x z 4 glx z D21 z tp B1 z XX z1 2 tp GEx x z B1 x tp Bilx GEx x z 4 tp GEx x z B1 x tp D21 x tplqlx z 4 tp GEz x z B1 z tp B1 z XX z 2 tp XX z Bilz tp B1 z GEz x z 2 tp XX z B1 z tp D21 z1 tp q x z 2 tp C1 x D12 x invleilz tp B2 z XX z tp C1 x D12 x invleilz tp D12 z Cilz tp C1 z D12 z invleilz tp B2 x GEx x z 2 tp C1 z D12 z invleilz tp B2 z GEz x z 2
37. tp GEz x z blz C2 x 2 tp C1 z D12 z tp XX z B2 z invleilz tp B2 x GEx x z 2 tp C1 z D12 z tp XX z B2 z inv e1 z tp D12 x C1 x tp C1 x D12 x invleilz tp B2 z XX z tp D12 z C1 z tp GEx x z B1 x tp B1 x GEx x z 4 tp GEx x z B2 x invleilz tp B2 z XX z tp D12 z C1 z 2 tp GEx x z B1 x tp D21 x tp b z GEz x z 4 tp GEz x z blz D21 x tp B1 x GEx x z 4 tp C1 z1 D12 z tp XX z B2 z invleilz tp D12 x D12 x invleilz tp B2 z XX z tp D12 z C1 z tp GEz x z blz D21 x tp D21 x tp b z GEz x z 4 In 4 NCE SubSym rua NOTE rua alz_ gt Alz B2 z invleilz tp B2 z XX z tp D12 z C1 z plz C2 z B1 z blz D21 z tp B1 z XX z Out 4 tp A x1 GEx x z 2 tp Al z GEz x z 2 tp C1 x C1 x tp GEx x z A x 2 tp GEz x z Alz 2 tp C2 x tp b z GEz x z 2 tp C2 z tplb z GEz x z 2 tp GEz x z blz C2 x 2 tp GEz x z blz C2 z 2 328 tp GEx x tp GEz x tp XX z tp C1 x tp C1 x tp ci z tp ci z1 tp C1 z tp GEx x tp GEx x tp GEx x tp GEz x tp GEz x tp GEz x tp GEz x tp XX z tp XX z tp XX z tp XX z tp
38. was executed previ ously See SetSel f Adjoint Arguments aSymbol is a symbol Comments Limitations None 4 10 4 SetIsometry Symbols Aliases None Description SetIsometryla b will set a b to be isometries If set the rules tpfa a Id tp b b Id and ajla a Id aj b b Id will be automatically applied See IsometryQ Arguments Symbols is one or more symbols separated by commas Comments Limitations If one does not set x to be an isometry before the first use of aj x then NCAlgebra may not make the substitution from aj x x to 1 automatically Similarly for tp 88 4 10 5 IsometryQ aSymbol Aliases None Description IsometryQ x will return True if SetIsometry x was executed previously See SetIsometry Arguments aSymbol is a symbol Comments Limitations None 4 10 6 SetColsometry Symbols Aliases None Description SetColsometryla b will set a b to be co isometries The rules a tpla Id b tp b Id and a ajla Id b aj b Id will be automatically applied See Col sometryQ Arguments Symbols is one or more symbols separated by commas Comments Limitations If one does not set x to be a coisometry before the first use of aj x then NCAlgebra may not make the substitution from xx x aj w to 1 automatically 4 10 7 ColsometryQ aSymbol Aliases None Description ColsometryQ 1 will return True if
39. 1 lt j lt ki equals the set of solutions to the collection of polynomial equations q 0 1 lt j lt k2 This canonical form greatly simplifies the task of solving collections of polynomial equations by facilitating backsolving for x in terms of x1 2 The user who is not acquainted at all with Grobner Basis should still be able to read and use most of the material which is contained within this document In FMora c f TMora F Mora described a version of the Gr bner basis algorithm which applies to noncommutative free algebras We refer to this algorithm as Mora s algo rithm and as the Gr bner Basis Algorithm This strategy also puts collections of equations into a canonical form which we believe has considerable possibilities in the noncommuta tive case How to read this document To learn how to install the program or use someone else s installation read Chapter or Chapter The first thing you should do is read Part 1 to see examples of the basic commands If you are interested in simplification of expressions you should read Chapter 9 Simpli fication is discussed in the papers HW and ASW If you are interested in proving theorems and want to understand the ideas you should read Chapter 16 If you are interested in proving theorems and want to see examples you should read Chapter 14 and Chapter 17 to see examples of the software in action If you want to understand the commands which were
40. 18 DilationHalmos x Aliases None Description DilationHalmoslx gives block 2 x 2 matrix which is the Halmos dilation of x Arguments x is a symbol Comments Limitations u DilationHalmos x has the property u is unitary that is MatMultlu tpMat u IdentityMatria 2 and MatMult tpMatlu u IdentityMatri l2 4 4 19 SchurComplementTop M Aliases None Description SchurComplementTop M returns the Shur Complement of the top diagonal entry of a block 2 x 2 matrix M Arguments M is a block 2 x 2 matrix Comments Limitations Assumes invertibility of a diagonal entry 4 4 20 SchurComplementBtm M Aliases None Description SchurComplementBtm M returns the ShurComplement of the bottom diag onal entry of a block 2 x 2 matrix M Arguments M is a block 2 x 2 matrix Comments Limitations Assumes invertibility of a diagonal entry 68 4 5 Complex Analysis 4 5 1 A tutorial The package in the file ComplexRules m defines three objects e ComplexRules transformation rules e ComplexCoordinates a function that applies rules to an expression e ComplexD takes complex derivatives The ComplexRules package is for handling complex algebra and differentiation The algebra part of ComplexRules has been pretty much superceeded by the standard Mathe matica command ComplexExpand so we advise using that Our complex differentiation is still quite useful ComplexRules m may not work well with Relm m see the war
41. 2 2 or 26 2 3 26 2 1 The Z file The next thing to do is uncompress the file To do this type uncompress NCGB 2 14 96 tar Z The next thing to do is to create a directory for the files and tar xf the file by typing Y mkdir NCGB cd NCGB mv NCGB 2 14 96 tar tar xf NCGB 2 14 96 tar Proceed to 26 2 4 Here date represents the month date and year that the file was put on anonymous ftp for example 2 14 96 means that the the file was put on anonymous ftp on Febuary 14 1996 240 26 2 2 The gz file The next thing to do is uncompress the file To do this type 7 gunzip NCGB 2 14 96 tar gz The next thing to do is to create a directory for the files and tar xf the file by typing mkdir NCGB cd NCGB mv NCGB 2 14 96 tar tar xf NCGB 2 14 96 tar Proceed to 26 2 4 26 2 3 The zip file The next thing to do is uncompress the file To do this type unzip NCGB 2 14 96 tar zip Proceed to 26 2 4 26 2 4 Look at the document So that we are able to inform them that new versions of the code are available etc PLEASE send us a email message so that we know that you are using the program The documentation for NCAlgebra is contained in the file NC DOCUMENTATION NCDOCUMENT dvi or ps or html Maybe we shall have a PDF file soon too Printing out this file to a printer is the best first step This can be done via a variety of programs including dvi2ps pageview
42. 20 2 5 FinishedComputingBasisQ Untested in 1999 Aliases None Description FinishedComputingBasisQ returns 0 or 1 If it returns 1 then NCMakeRules stopped because it obtained a Gr bner Basis If it returns 0 then NCMakeRules stopped because it ran the maximal number of iterations and did not find a Grobner Basis Arguments None Comments Limitations Not available before NCAlgebra 1 2 20 2 6 WhatlsPartialGB Aliases None Description Since we do not require GB algorithm to run until it obtains a Gr bner Basis the output of the algorithm need not be a Gr bner Basis We call the output of the algorithm a partial basis WhatIsPartialGB returns a list of all of the elements in the partial groebner basis See PartialBasisfn Arguments None Comments Limitations Not available before NCAlgebra 1 2 See also 29 1 3 211 20 2 7 NCGBSetlIntegerOverflow False Aliases None Description An MakeNCGB and NCProcess command which if set True permits large integers to be handled carelessly by C This is dangerous since it causes mistakes when you see large integers at about 2 billion watch out The code runs faster with this setting but still for saftey sake the default is NCGBSetIntegerOverflow False Arguments None Comments Limitations 20 2 8 PartialBasis aNumber Untested in 1999 Aliases None Description PartialBasisfaNumber where aNumber is a positive integer returns a char acter str
43. 267 This option needs to be hcanged so that lists can be multiplied through solely on the left or solely on the right In order to turn this on give the option MultiplyByMonomials gt True 31 1 7 Run the Grobner basis algorithm We now can step through out list and try each to see if the candidate is in fact a good motivated unknown Given a pair P C we run NCProcess on the union of the P polynomials with 2 terms these we shall think of as important polynomials since they include relations defining inverses and symmetry and the rules C gt motUnknown and CT motUnknown If it finds a motivated unknown that works i e eliminates all other unknowns then it stops and returns the pair P C 31 1 8 Options Most of these steps can be eliminated by setting the appropriate option See manual for details in setting options 31 2 Finding Coefficients of Variables in a Polynomial 31 2 1 NCCoefficientList Expression aListOfIndeterminants Aliases None Description This generalizes the Mathematica command CoefficientList Expression aListOfIndeterminants to noncommutative algebras There are many legitimate general izations to the noncommuting case and we picked one here The user can experiment to see if it is what he wants Arguments Comments Limitations 31 3 Main Change Of Variables Command The main command is NCXFindChange0f Variables The general purpose of these commands is to produce 1 strategies from
44. 9 2 Conjugate w Conjugatele Conjugate w Conjugate z 2 2 gt Conjugate w e wz Conjugatele Conjugate w gt Conjugate z Finally we point out that it is possible that applying ComplexRules to an expression and applying ComplexCoordinates to it may yield different output the same mathematically of course Reason ComplexCoordinates applies ComplexRules to the expression in addition to a rule for transforming Abslz into Sqrt z Conjugate z Example In 10 Abs z 2 1 2 ComplexRules 22 Out 10 Abs 1 z In 11 ComplexCoordinates 2 2 Out 11 1 z 1 Conjugatelz ComplexD handles Abs etc In 12 ComplexD Abs z 2 1 2 z 71 2 Out 12 2 z 1 Conjugatelz ComplexD also handles Abs but the answer does not look as pretty In 13 ComplexD Abs z 2 1 z 2 z 1 Conjugatelz Out 13 Sqrt 1 z 1 Conjugatelz WARNING The standard Mathematica package Relm m sets things so that expressions of complex variables z are rewritten in terms of Relz Im z for example Compare this to the output of functions in the package ComplexRules m where the expressions of complex variables z are given in terms of z Conjugatelz You may load both Relm m and ComplexRules m but keep in mind that the objectives of the packages conflict Furthermore programs that need ComplexRules to run
45. A x tp m In the next line A is noncommutative and x represents a column vector Grad tp x x tp x A x m x x WARNING Grad is trustworthy only on certain quadratics Rules can be used to modify expressions In 23 Out 23 x c Substitutelx a b a b gt c In 24 Substitute tp b a b a b a gt p Out 24 p tpla tp b In 25 SubstituteSymmetric tp b tplal w a b a b gt c Out 25 c w tp c WARNING The Mathematica substitute commands and gt are not reliable in NCAlgebra so you must use our Substitute command The multiplicative identity is denoted Id in the program At the present time Id is set to 1 A element A may have an inverse which will be denoted by inv A of it may have a left or right inverse denoted inv A and invR A respectively In 26 MatMult a b c d Ha 2 tes 3 Out 26 a d b e 2a 3 b c d d e 2c 3dh In 27 tp a b Out 27 tp b tp a 30 In 28 Out 28 In 29 Out 29 In 301 Out 30 In 31 Out 31 In 32 Out 32 In 33 Out 33 In 34 Out 34 In 35 Out 35 1In 36 Out 36 In 37 Out 37 1n 38 Out 38 In 39 Out 39 tp 5 5 tp 2 3 1 2 3 1 tplal tplal tpla b tpla tplb tp 6 x 6 tplx tp tp a a
46. B X x T 2 T 1 T gt 4x X B 2 gamma 2D D D D 2 T 1 T gt 2 gamma 2D D D C x T T 2 T 1 T gt 4x C D 2 gamma 2D D D D 2 T 1 T gt 2 gamma 2 D D B X x T T 2 T 1 T gt 4x C D 2 gamma 2D D D D 2 T 1 T gt 2 gamma 2D D u DO a Ge ge Be and try to simplify the expression using NCSimplifyRational In 20 Hw3 NCSimplifyRational Hw2 E T T T T D D 1 Out 20 x X A x x A X x x C 1 39 40 and NCCollectSymmetric In 21 Hw4 NCCollectSymmetric Hw3 x T T T T De D Out 21 x Oe eee RSE 1 C 2 gamma T T D D i T T D D 1 Kan Br sr Oise essa B X X B D Cr C 2 2 gamma gamma 41 gamma gamma gamma The last output is mathematically equivalent to the well known Riccati inequality which proves the Theorem although this may be hard to see in this form We will further strengthen this claim when we revisit this example using NCGB Nor for better visualization we plug in z 1 and y 1 In 22 Hw5 Hw4 gamma gt 1 x gt 1 T T T 1 Out 22 LX A A X C SD C T T 1 T 1 T gt X B D D D C X B D D B X T T 1 T gt C D SDD SB wok and for extra simplicify set D 0 In 23 Hw6 Hw5 D gt 0 T T T Out 23 X A A X C C X B B X 42 Chapter 3 Helpful Tricks 3 1 Expanding NCExpand is the most common command applied to expressions Often you must do it to achieve
47. BELOW AND INSTALL NCAlgebra or NCGB AS AN OFFICIAL MATHEMATICA PACKAGE ONCE THIS IS DONE EVERYONE USING THE COMPUTER MAY USE NCAlgebra or NCGB ftp osiris ucsd edu or ftp 132 239 145 6 Connected to 132 239 145 6 220 osiris FTP server Sun0S 4 0 ready Name 132 239 145 6 joejones anonymous 331 Guest login ok send ident as password Password Anything will do but please type your e mail address 230 Guest login ok access restrictions apply 239 ftp gt binary 200 Type set to I ftp gt cd pub ncalg 250 CWD command successful ftp gt ls At this point you will see a list of filenames Some of them should look like NCGB date tar Z NCGB date tar gz and NCGB date zip The Z indicates the the file was compressed using the UNIX utility compress and the gz indicates that the file was compressed using the GNU utility gzip The tar indicates that the tar program was used tar is a UNIX standard is available for other platforms such as PCs The zip is a zipped file and is appropriate for PCs One can choose either of the three versions Obviously you should pick the most recent version of the code and the one which is most appropriate to your computer system To be concrete in the following material we assume that you are interested in the file NCGB date tar Z ftp gt get NCGB date tar Z ftp gt bye 221 Goodbye Now you want to read ONE of the sections 26 2 1 26
48. Chapter 22 Help in Typing Relations 22 0 1 NCMakeRelationslaSpecialList aSpecialList Aliases None Description This command allows the user to easily generate certain lists of polynomials which can be used as input to NCMakeRules We begin with some examples and then explain the command in the third paragraph of this subsection Suppose that z1 22 z3 and 24 have been set to be noncommutative if not just type SetNonCommuta tive 21 22 23 24 If one types lt lt NCMakeRelations m NCMakeRelations Inv a b c SelfAdjoint x y z1 z2 z3 z4 then this function returns the list a x Inv a 1 Inv a x xa 1 b x Inv b 1 Inv b x xb 1 c Inv c 1 Inv c x xe 1 x ajlx 0 y ajly 0 21 aj 21 0 z2 aj 23 0 23 aj 22 0 24 aj z4 0 NCMakeRelations takes any number of arguments and each of its arguments is a List For each list the first word describes the type of relations and the other elements can be either simple expressions like x y 1 y xx 1 x x xy etc or square matrices with symbolic entries such as in the example above or any mixture of these two types of data We now list the allowed types of relations Some of the relations are stated in terms of the hereditary functional calculus of Jim Agler see HereditaryCalculus m 1 Isometry i e T such that T T 1 0 2 Colsometry i e T such that TT 1 0
49. ConjugateLinearQ x will return True if SetConjugateLinear x was exe cuted previously See SetConjugateLinear Arguments aFunction is a symbol Comments Limitations None 4 11 9 SetIdempotent Functions Aliases None Description SetIdempotent b c d sets b c d to be functions of one variable such that for example b b z_ z Common examples are inverse transpose and adjoint See IdempotentQ Arguments Functions is one or more symbols separated by commas Comments Limitations None 4 11 10 IdempotentQlaFunction Aliases None Description dempotentQ x will return True if SetIdempotent x was executed previously and False otherwise See SetIdempotent Arguments aFunction is a symbol Comments Limitations None 4 11 11 SetCommutingFunctions aFunction anotherFunction Aliases None 94 Description SetCommutingFunctions takes exactly two parameters SetCommutingFunc tions b c will implement the definitions b c z__ clblz Not LeftQ b cl and clblz___ ble z LeftQ b c Common examples are the adjoint commuting with the transpose Note The above implementation will NOT lead to infinite loops WARNING If one says SetCommutingFunctions b c and then sets only LeftQ c b then neither of the above rules will be executed Therefore one must remember the order of the two parameters in the statement One obvious helpful habit would be to use alphabetical order i e s
50. Description Convert an expression to a Mathematica string which is a series of HTML image tags These tags call gif images which are made from the latex version of the symbols in expression If the proper gif does not already exist then ToHTMLString will try to create it and put it in the directory specified by the Mathematica variable GifDirectory If the gif is created then ToHTMLString will record the HTML tag in a file so that it will not have to be created again ToHTMLString can be used to create a large assortment of symbols which can be used over and over Arguments expression can be almost any Mathematica expression like a symbol list rule or polynomial Comments Limitations If the user does not have write access to the GifDirectory then the resulting gifs can not be saved The HTMLHardWired m file should be in the current working directory in order to save the new HTML tags so that the gifs do not need to be created again ToHTMLString uses the following external programs to create the gifs Latex dvips pstogif and giftrans 40 0 5 MakeGiflfile expression Aliases None Description Creates a gif image which is the latex version of expression Unlike TOHTMLString MakeGif only produces one gif file No attempt is made to save the HTML tag in a seperate reference file Arguments file is a string which will be the name of the gif file expression can be almost any Mathematica expression like a symbol list rule or pol
51. GB was generated and it just extracts key ancestors That is why the list history is included to tell the routine how the various polynomials were generated History must have been recorded using the WhatIsHistory command from the run of GB algorithm which produced aListOfPolynomials Arguments history is an output from the WhatIsHistory command aListOfPolynomials is a list of polynomials 259 Comments Limitations WARNING The history one gets from the WhatIsHistory command comes from the last run of the NCMakeGB command The NCMakeGB command is called by several other commands such as NCProcess subsection 15 2 1 and SmallBasis and its variants 21 1 1 30 1 4 RemoveRedundentByCategory Aliases None Description RemoveRedundentByCategory calls RemoveRedundentByCategory aListOfPolynomials history with the default correct choices for aListOfPolynomials and history Arguments None Comments Limitations It is wise to execute WhatIsHistory to set history right after you call NCMakeGB WARNING This command executes on the last NCMakeGB run which was executed Some commands call NCMakeGB as they run like SpreadSheet subsection 15 2 1 30 1 5 RemoveRedundentByCategory aListOfPolynomials history Aliases None Description RemoveRedundentByCategory aListOfPolynomials history generates a subset P of aListOfPolynomials which generates the same ideal as aListOfPolynomials It is best thought of in the context of RegularOutp
52. Gr bner Basis Package available from http math ucsd edu ncalg TMora T Mora An introduction to commutative and noncommutative Gr bner Bases The oretical Computer Science Nov 7 1994 vol 134 N1 131 173 247 248 Part VII DETAILS AND OLD OR NEW COMMANDS ONLY ON THE WEB 249 Chapter 29 History of the Production of a GB and Playing By Numbers This chapter contains two advanced topics whose relationship is more technical than conceptual 29 1 Play By Numbers The Mathematica code and the C code both attach numbers to the polynomials which occur in the running of the GB algorithm While these numbers are not externally visible at least in the commands described so far they can be accessed by the user and are quite useful One feature is that they can save typing time for the user who chooses to select or deselect relations in later runs of NCMakeGB Also if one is running the C version of the code this will save considerable computer time because the C version of the code only has to send a number rather than the full polynomial to the Mathematica session This time can be very significant when the polynomial has a large number of terms See also section 29 2 Recall the Option ReturnRelationsToMma False for NCMakeGB stops the partial GB calculated by the C program from transferring the answer back to Mathematica This is the typical prelude to a play by numbers session Recall the option R
53. NCSimplifyRational to verify our suspicions Setting NCSimplifyDiagonal True will bypass the commute everything step Note Either way the unsimplified form of the pivot is returned unless it is equal to zero The option AllPermutation tells NCConvexityRegion which of NCLDUDecomposition or NCAllPermutationLDU to use Setting AllPermutation to True will use NCA11PermutationLDU while False uses NCLDUDecomposition The default value is AllPermutation False The following pertains to the case where AllPermutation is set to True If you decide to do this then you should also set DiagonalSelection to the permutations you would like NCA11PermutationLDU to use Since different per mutations return different diagonals some diagonals are simpler to work with than others On the other hand if AllPermutation is set to False which it defaults to then NCConvexityRegion calls NCLDUDecomposition and what follows does not apply as no permutations are used Different permutations return different diagonals Some diagonals are simpler to work with than others Because of this we allow the user to select a sampling of different permutations The total number of permutations will not be known until M is computed After M is computed the total number of possible permutations will be printed on the screen DiagonalSelection n returns the diagonals resulting from the first n permutations DiagonalSelection k n re turns the diagonals resulting from
54. Out 4 O 28 In 5 A b b a Out 5 A b b a In 6 CommuteEverythingla b b a Out 6 0 In 7 SetNonCommutative A B Out 7 False False In 8 A B B A Out 8 A B B A In 9 SetNonCommutative A In 10 SetCommutative B In 11 A B B A Out 11 0 SNC is an alias for SetNonCommutative So SNC can be typed rather than the longer SetNonCommutative In 12 SNC A In 13 A a a A Dut 13 a A A a In 14 SetCommutativelv In 15 v b Dut 15 bv Here is how to use NC Algebra to manipulate and simplify expressions tp x denotes the transpose of an element x and aj x denotes the adjoint of an element x Note that the properties of transposes and adjoints that everyone constantly uses are built in In 16 NCCollectla x b x x Dut 16 a b x In 17 NCExpand a b x Dut 17 a x b x 29 In 18 Out 18 NCCollect tp x a x tp x b x z x tp x z tplx a b x You can compute directional derivatives and gradients In 19 DirectionalD x x x h Dut 19 h x x h In 20 DirectionalD tp x x tplx A x m x x h Out 20 m h tp h x tp x h tp h A x tp x A h In 21 In 22 Grad limited Grad gives correct answers only for a limited class of functions Out 22 2 x A x tp
55. SetNonCommutative command The new file would look like Second version of the file 305 Get NCGB m SetNonCommutativela x y Inv x Inv 1 y start x x a Inv Ly y 1 y Inv y 1 1 x Inv 1i x 1 3 Inv 1 x Inv 1 x 1 start NCExpand start Print start start After restarting Mathematica and running this command we find that start is what we expect it to be We can then remove the Print statement and add more code 306 Part X THE PACKAGE SYStems ONLY ON THE WEB 307 309 SY Stems Version 0 1 J William Helton Math Dept UCSD Michael L Walker General Atomic Corp La Jolla California 92093 Copyright by Helton and Walker in Feb 1994 all rights reserved This document provides an overview of the NCAlgebra tools which are provided for studying engineering systems At present what is well developed are files for doing H control and with a slight modification of language differential games This includes expressions and rules useful when using the Hamiltonian point of view We hope others will contribute packages for doing basic systems theory or for doing research on more specialized subjects Many topics in linear systems could EASILY be programmed into this setting This work was partially supported by the AFOSR and the NSF 310 Chapter 41 Preface To what extent can we make our A B C D linear systems and operator calculations easier with computer assist
56. The expressions with unknown variables n2 n1 ma m and knowns mana gt 1 lm Ny The above spreadsheet indicates that the unknowns a b c e f and g are solved for and states their values The following are facts about the output 1 there are no equations in 1 unknown 2 there are 4 categories of equations in 2 unknowns and 3 there is one category of equations in 4 unknowns A user must observe that the first equation which we marked with lt becomes an equation in the unknown quantity m n when multiplied on the right by n This motivates the creation of a new variable P defined by setting P m n 14 3 The user may notice at this point that the second equation marked with lt is an equation in only one unknown quantity mana once the above assignment has been made and P is considered known These observations lead us to select see footnote corresponding to O2 in 815 2 the equations m n P and ma na 1 m n Since we selected an equation in m n and an equation in mana it is reasonable to select the the equations n m 1 and na ma 1 because they have exactly the same unknowns While useless at this point we illustrate the command GetCategory with the following examples In 10 GetCategory n1 m1 NCPAns Out 10 nixx m1 1 In 11 GetCategory n1 m1 n2 m2 NCPAns Out 11 m2 n2 mixx n1 1 Run NCProcess1 again with 14 3 added and P
57. Tp C2 Tp b E21 Tp E12 2 E12 Tp E21 b C2 2 E11 B1 Tp b E21 Tp E12 2 E11 Bi Tp B1 Tp E11 E12 Tp E21 b Tp b E21 Tp E12 4 E12 Tp E21 b Tp B1 Tp E11 2 178 Hxz E21 A Tpla E21 Tp E12 2 Tplc C1 E22 b C2 Tp c Tp B2 Tp E11 E21 B1 Tp b E21 Tp E12 2 E21 B1 Tp B1 Tp E11 E22 b Tp b E21 Tp E12 2 E22 b Tp B1 Tp E11 Hzx Tp A Tp E21 Tp C1 c E12 Tp E21 a 2 E11 B2 c Tp C2 Tp b Tp E22 E11 Bi Tp b Tp E22 E11 B1 Tp B1 Tp E21 E12 Tp E21 b Tp b Tp E22 2 E12 Tp E21 b Tp B1 Tp E21 2 Hzz E22 a Tpla Tp E22 Tp c c E21 B2 c Tp c Tp B2 Tp E21 E21 B1 Tp b Tp E22 E21 B1 Tp B1 Tp E21 E22 b Tp b Tp E22 E22 b Tp B1 Tp E21 Hameq Hxx Hxz Hzx Hzz Set the knowns and the order of the unknowns SetKnowns A Tp A B1 Tp B1 B2 Tp B2 C1 Tp C1 C2 Tp c2 SetUnknowns E12 Tp E12 E21 Tp E21 E22 Tp E22 E11 Tp E11 Inv E12 Tp Inv E12 Inv E21 Tp Inv E21 Inv E22 Tp Inv E22 Inv E11 Tp Inv E11 b Tp b c Tp c a Tplal startingrels Union transE inverseE Hameq resulti NCProcessi startingrels 2 cntrlansi Now when we load this file we will be
58. V and may as we go backwards along it in time leave V then come back etc Let v P denote the earliest node of P in V It belongs to R Indeed R v P for all maximal connected forward flowing paths ending in V For example if some path P ends in v and the node immediately before v is not in V then v is in R Now we give more formal statements and about how the RemoveRedundent algorithm works Let p1 Pn K t1 tn Let T be a tree on the nodes 1 n We say that the tree represents the development of pj Pn if it is the case that for every j 1 n either 1 7 is a leaf of the tree OR 2 there exists a S polynomial s coming from pa and pp and k kr 1 n such that a a b k ka k is the set of children of j in the tree T and b there exist polynomials q1 qy such that s Pr qy P 2 Pkr qu pj OR 3 there exist a and k1 kr such that a k k are the children of j and there exist polynomials qi q such that pa reduces to q by applying the rule associated to the polynomial pr q reduces to q2 by applying the rule associated to the polynomial pz Qp 1 reduces to qr by applying the rule associated to the polynomial pz such that Pa py Y Pka ar pp Ir Pj Now suppose that T is a tree on 1 n and it represents the development of pj Pn If j is the root of the tree and k k are the leafs of T then p lies in the ideal generated by
59. WT W p Fla W Flax W p 2 is nonpositive where p V e x That is 0 gt H for all W and all x in the set of states reachable from O by the system Theorem 44 1 see W HM Let e be a given differentiable function Then a system is e dissipative if and only if e is a storage function for the system In this case the system is dissipative Using this background we may study dissipativeness of systems by examining the non positiveness of Hamiltonians Replacing the dual variables p by p Vre This substitution converts H to sHW out out WT W Vz e Fz W Flax W V2 e 2 Often one finds that sHWo max sHW W x 317 318 the Hamiltonian in state space variables which has been optimized in W is well behaved and is the first max taken in many approaches to solving the problem of checking if sHW lt 0 for all z sHWo can be computed concretely for systems see e g files SYSDeflA m and SYSDefWIA m by taking the gradient of sHW in W and setting it to 0 to find the critical point CritW Substitute this back into sHW to get sHWo In our language CritW can be computed by ruCritW Crit H W Calculate critical value for Hw r t W HWo Sub H ruCritw Substitute critical W back in H sHWo Sub HWo ruxz Convert to state space coordinates since p is independent of W Some examples are given later to illustrate What we have done so far is explain the very simplest case Whenever one has a Hamiltonian wh
60. Where to Find More Examples At this point looking at demos is very helpful We recommend working thru the NC Algebra demos which accompany this document Some of them are pdf files and can be read and can be found in the directory NC DOCUMENTATION All demos can be found in the NC DEMOS directory The NCAlgebra website http math ucsd edu ncalg also contains some demos As of August 2009 the following is a subset of the demos which are available DemoBRL nb DemoGBM nbx DmGBG1 nb NCPalette nb DemoGB1 nb DemoSimplify nb DmGBG2 nb PaletteSource nb SingPert nb 33 1 5 Pretty Output Beautifying NCAlgebra WARNING The command SetOutput is now deprecated Please use NCSetOutput instead In 104 NCSetOutput All gt True In 105 inv tp k T 1 Out 105 k In 106 NCSetOutput All gt True In 107 rt x invly ajlz tplx T 1 1 2 Out 107 x x y z In 108 NCSetOutput All gt True inv gt False In 109 inv 1 tp 1 x1 T inv 2 x Out 109 TEX Output WARNING The TEX commands in this version of NCAlgebra have been updated to use the new package NCTeX Please see Section for more details In 110 mat a tpl b aj c inv d e Out 110 fa tpl b ajlel tinvldl e In 111 NCTeX mat The above command takes the Mathematica matrix mat converts it to TEX outputs the string and surrounding BTFX to a file KTEXs the file and dis
61. a b c e f and g such that the following polynomials is zero Am m a mafc Ama Mae B m b mof c Cm FAC nym 1 Nama 1 n Ma nam 9 Cma min mana 1 Each of these expressions must equal 0 Here A B and C are known The problem is to solve these equations That is we want a constructive theorem which says when and how they can be solved 14 3 Solution via a Prestrategy We now apply a strategy to see how one might discover this theorem The formalities of what a strategy is are not important here This chapter is designed to illustrate NCProcess and allied commands For a description of the formalities of a strategy see HS or for a sketch see Chapter 16 Before running NCProcess1 we must declare A B and C to be knowns and the remaining variables to be unknowns The below denotes matrix multiplication In 1 Get NCGB m In 2 SetNonCommuative A B CO m1 m2 n1 n2 In 3 SetKnowns A B C In 4 SetUnknowns m1 m2 n1 n2 a b c e f g We now set the variable FAC equal to the list of polynomials in 14 2 In 5 FAC A m1 mixx a m2x x fx x c Ax m2 m2 e B mixxb m2 f c CO m1 g CO m2 nix mi 1 n1 m2 n2 m1 153 n2 m2 1 mi n1 m2 n2 1 The commands above and below will be explained in Chapter 15 The command which produces the output in the file Spreadsheet1 dvi is the following In 6 result NCProcess1 FAC
62. a commutative expression only works for numbers S in version 0 2 of NCAlgebra The following list of rules are applied 0 inv 1 a inv 1 a 1 inv 1 a a b inv 1 b gt inv 1 a inv 1 b 2 inv 1 ab inv b inv 1 ba a invlb 3 inv 1 ab ab inv 1 ab 1 4 abinv 1 ab inv 1 ab 1 5 inv c inv 1 cb inv 1 be inv c 6 b inv 1 ab inv 1 bald The command NCS2R increases the range of expressions to include inv poly but the reductions for each of these inverses is considerably less powerful than for the case of inv 1 ab An example if expr a x xinvla b inv c a x a c invle d x x c d e then the first reduction using the list of rules in NCSR gives a xinv a b inv c d xeinvla x a b inv b and the second reduction gives inv b inv a which is the output from NCSRlexpr NCSimplifyORational is an old attempt at simplification We do not use it much 4 2 1 NCSimplifyRational expr NCSimplify1Rational expr and NCSimplify2Rational expr Aliases NCSR Description The objective is to simplify expressions which include polynomials and inverses of very simple polynomials These work by appling a collection of rela tions implemented as rules to expr The core of NCSimplifyRational is NCSim plifylRational and NCSimplify2Rational indeed roughly NCSimplify
63. a NCProcess session which produced the output on page 154 and we really like the category whose unknowns are n and m To bring that category into our session so you can manipulate these equations with Mathematica use the command In 17 GetCategories n1 m1 NCPAns Out 17 ni mi 1 In 18 GetCategories singleVars NCPAns Out 18 a b c e f g 23 2 Creating Categories This is the command which is used inside NCProcess to instruct the C code to make categories It takes aName to be NCPAns Before using this commands one must use SetMonomialOrder 23 2 1 CreateCategories aListOfPolynomials aName Aliases None Description CreateCategoriesfaListOfPolynomials aName sorts aListOfPolynomials into categories Each category and its label is stored in the array associated to the sym bol aName and it is accessible by aNamellabel using the GetCategory command aListO f Polynomials is a list of polynomials aName is a symbol which has not been used previously Arguments aListOfPolynomials is a list of polynomials aName is a Mathematica symbol Comments Limitations Not available before NCAlgebra 1 2 See GetCategory This is the command which is used inside NCProcess to instruct the C code to make categories It takes aName to be NCPAns 23 3 RegularOutputlaListOfPolynomials fileName 23 3 1 RegularOutput aListOfPolynomials fileName Aliases None 228 Description RegularOutp
64. a given list of relations That is we would like to find a motivated unknown that eliminates all other unknowns from some equation in a nontrivial way By nontrivial we mean that the motivated unknown is not the entire given expression E or aE b where a and b are numbers 268 31 3 1 NCXFindChangeOfVariables aListofPolynomials anInte ger aString Options Aliases None Description This command needs the monomial order to already be set It then uses the ambient order in NCGB NCXFindChange0OfVariables aListOfPolynomials anInteger aString Options takes a list of relations aListOfPolynomials finds the candidates for motivated unknowns and then tries each one in NCProcess until it finds that all unknowns except the candidate have been eliminated and hence would make a good motivated unknown If it finds a motivated unknown which absorbs all other unknowns then it returns a list E M where M is the motivated unknown and E is the expression which motivated it Otherwise it returns False It can also be made to return a list of outputs from the calls to NCProcess Arguments aListofPolynomials is a list of polynomials aString is a string for the beginning of the tex files produced by NCProcess and anlnteger is the number of iterations for NCProcess The options are IncludeTranspose False This option adds the transpose of the candidate to the set of relations The default False is not to add the tra
65. a user select Ey Es E21 Ey X and that Ey E21 are invertible Since Y 7 X is invertible and E Y E X are invertible Therefore we set Es Es Eu X Ez Since EL Ea El Ey and XT X it follows that E is invertible and self adjoint 5 Since E has been set for i j 1 2 we can set a b and c according to their formulas at the top of the spreadsheet With the assignments of Eis E21 Ez E11 a b and c as above it is easy to verify by inspection that every polynomial equation on the spreadsheet above holds We have proven the proposed converse and therefore have proven the following approx imation to the classical DGKF theorem Theorem 17 2 If HGRAIL has a solution with invertible Ei and b and c are given by the formulas Out 8 and Out 9 in 17 3 2 then the DGKF X and Y equations have solutions X and Y which are symmetric matrices with X Y and Y X invertible The DGKF X and Y equations have solutions X and Y which are symmetric matrices with X Y and Y X invertible then HGRAIL has a solution with invertible Fij Note that we obtained this result with an equation in the one unknown X and an equation with the one unknown E Y t From the strategy point of view the first spreadsheet featured an equation in the single unknown b and its transpose and an equation in the single unknown c and its transpose and so is the most complicated For example the polynomial Out 4 in
66. and ghostview Also there are documents NC DOCUMENTATION NCGBDOCUMENT dvi or ps NC DOCUMENTATION NCOLDDOC dvi or ps NC DOCUMENTATION SYSDOC dvi or ps Also there are demos Email any questions comments or requests to ncalg0ucsd edu 26 3 The last step If all you want to do is use NCAlgebra you are now ready Enjoy For the NCGB experience under any operating system other than Solaris Linux or Windows more installation is required Compiling the C part of the code is next This is explained on the WWW NCAlgebra homepage NCDOCUMENT 241 26 4 The NC directory structure NC SetNCDir m NCAlgebra work SetNCPath m SetPathCommonFile m IT m Old Mma GB DOCUMENTATION sd oR ee DOCUMENT 1 Doncs PA NCWEBDOC dvi NCGBDOCUMENT tal WEBONEYDOE ps html NCGBDOCUMENT dvi SYSDOC dvi SYSDOC ps html The preceding figure is a bit out of date NCGB Compile Mma Source poo cpp hpp NCGBm m Bin fy Testing README p9c Test Results README Test Reference Test Problems Test Reference2 242 26 5 Directory structure of NCAlgebra alone This adds a little more detail to Section 26 1 To run NCAlgebra alone you only need part of the directory system above For NCAlgebra alone it is NC work NCAlgebra SetPath m SetNCDir m SetPathCommonFile m DOCUMENTATION Demos If you have the whole huge sets of directories and are desperate for space you can del
67. and B A Francis State space solutions to standard Hz and H control problems IEEE Trans Auto Control 34 1989 831 847 FMora F Mora Gr bner Bases for Non commutative Polynomial Rings Lecture Notes in Computer Science number 229 1986 pp 353 362 G Ed Green An introduction to noncommutative Gr bner bases Computational algebra Lecture Notes in Pure and Appl Math 151 1993 pp 167 190 GHK E L Green and L S Heath and B J Keller Opal A system for computing noncom mutative Gr bner bases Fighth International Conference on Rewriting Techniques and Applications RTA 97 LNCS 1232 Springer Verlag 1997 pp 331 334 HS J W Helton and M Stankus Computer Assistance for Discovering Formulas in System Engineering and Operator Theory Journal of Functional Analysis 161 1999 pp 289 368 HSW J W Helton M Stankus and J J Wavrik Computer simplification of formulas in linear systems theory IEEE Transactions on Automatic Control 43 1998 pp 302 314 HW J W Helton and J J Wavrik Rules for Computer Simplification of the formulas in operator model theory and linear systems Operator Theory Advances and Applications 73 1994 pp 325 354 NCA J W Helton R L Miller and M Stankus NCAlgebra A Mathematica Package for Doing Non Commuting Algebra available from http math ucsd edu ncalg NCGBDoc J W Helton and M Stankus NonCommutative
68. and NCGB notation to the Mathematica to IEX dictionary If you are content with that there is no reason to read this part of the document Also the NCProcess TFX spreadsheets are automatic and are not related to this section of the document These are very useful commands and we recommend using them You may have must do a little installation work to use our fancier TEX commands depending how T Xis installed in your system It should work out of the box on most Unix based systems Beware that some versions of Mathematica creates TFX output that uses a specific Mathematica file called a style file called notebook sty Some of the THX produced needs to know where this file is kept A description of how to inform TEX where this file is stored is found in Section 104 5 3 1 NCTeX Aliases None Description NCTeX exp creates a file that contains a KTRX version of exp that gets compiled with BTFX and converted into a PDF image file By default if you are on a notebook environment this file will be imported to the current notebook output Otherwise if it fails to be imported or if you are in text mode the output will be displayed on a pdf viewer NCTeX has many options that can be set through the standard Mathematica SetOptions command or as rules appended to the NCTeX The following are the available options and their default values Verbose gt False tells NCTex to display the details of the operations being performed DisplayPD
69. and is undigested otherwise Often in practice the digested polynomial equations are those which are well understood In future sections we will refer to two collections of equations the relation mentioned above as well as a set of user selected relations These do not exist in the first run A user selected equation is a polynomial equation which the user has selected The algorithm described in 16 3 4 treats these equations as digested This for example implies that they are given the highest priority in eliminating other equations when NCProcess runs For example equations which one knows can be solved by Matlab can be selected 149 13 1 1 When to stop Often one makes a run of NCProcess1 gets some likable equations puts them in to another run of NCProcess The digested equations those in items O1 O2 and O3 often contain the necessary conditions of the desired theorem and the main flow of the proof of the converse If the starting polynomial equations follow as algebraic consequences of the digested equations then we should stop One might run NCProcess2 at this point inorder to get few equations 13 2 Changing Variables Often to solve a problem one must change variables Our belief is that for system engineering problems the changes of variables are fairly simple The nature of a simple effective class of changes of variables is explained in HS99 and sketched in Chapter 31 The NCProcess output prompts for ch
70. b c Later we explain what this does in the context of a more compliated example where the command really matters Here any order will do We now simplify the expression ab by typing In 4 NCSimplifyAl1 ax a a b b b c a b 1 b a b 3 After messages appear on the screen which indicate that the computation is taking place you get the answer as the following Mathematica output Out 4 1 c The number 3 indicates how hard you want to try how long you can stand to wait to simplify your expression 131 9 3 Making a Groebner Basis A reader who has no explicit interest in Groebner Bases might want to skip this section Readers who lack background in Gr bner Basis may want to read CLS This section does indicate what underlies the simlification commands in Chapter 9 For more on the subject see 10 2 Before making a Gr bner Basis one must declare which variables will be used during the computation and must declare a monomial order which can be done using the commands described in Chapter 18 A user does not need to know theoretical background related to monomials orders Indeed as we shall see in Chapter 14 for many engineering problems it suffices to know which variables correspond to quantities which are known and which variables correspond to quantities which are unknown If one is solving for a variable or desires to prove that a certain quantity is zero then one would want to view tha
71. be called as a stand alone command 19 2 1 NCCollectOnVarslaListOfExpressions aListOfVariables Aliases NCCV Description This is a command which collects certain products of each variables in aListOfVariables thus it returns a collected polynomial In NCProcess when this is used via NCCV True the variables are typically chosen to be knowns The command NCCollectOnVars itself has the option LeftsAndRights True which prints out a list containing two lists Miss Ines Here l is the left side of term 1 of collected polynomial and r is the right side of term 1 of collected polynomial etc An example is NCCollectOnVars X xxAx BxxZ Y x Ax BxxZ AxxX AxxY 4 B X Y Ax BxrrZ Axx X Y with LeftsAndRights False When LeftsAndRights True the output is HARI A More detail is in 19 2 201 Arguments aListOfExpressions is a list of expressions aListOfVariables is a list of vari ables Comments Limitations Not available before NCAlgebral 2 In the example NCCollectOnVars X x Ax BxxZ Y x Ax BxxZ AxxX AxxY 4 B X Y Ax Bx xZ Ax X Y note that if we are in an environment where A and B have been set known and X Y and Z are unknowns then one may omit the list of variables A B in the call above In other words In 2 SetKnowns A B In 3 SetUnknowns Xx Y Z In 4 NCCollectOnVars X Ax Bx Z YexAxxBx Z AxxX A Y A B Out 4 X
72. command NCMakeGB is called during the run of the NCPro cess commands subsections 15 2 1 and the run of any of the variants of the SmallBasis command subsections 21 1 1 and 21 1 2 29 2 2 WhatIsKludgeHistory aListOfIntegers Aliases None Description WhatIsKludgeHistory aListOfIntegers returns the same output as WhatIsHistory aListOfIntegers except that second entry which is a polynomial in WhatIsKludgeHistory is much shorter and is not a relation in the ideal than WhatIsHistory The point is to save time Kludge History is generated inside of C and transferring it back into Mathematica takes much less time than the full history because transferring long polynomials into Mathematica takes a long time Every polynomial in KludgeHistory lies in the same category as the polynomial it replaces in history Thus RemoveRedundentUseNumbers applies to KludgeHistory returns the same relation numbers as RemoveRedundentUseNumbers applied to history if one uses the option Arguments None Comments Limitations WARNING The output to the command WhatlsHistory changes after every call to NCMakeGB The command NCMakeGB is called during the run of the Spread sheet commands subsections 15 2 1 and the run of any of the variants of the SmallBasis command subsections 21 1 1 and 21 1 2 29 2 3 More on the History of how NCMakeGB produced its an swer We now continue with the demo from Subsection In 14 Out 14 WhatAreNumbers
73. deletions and by transcribing many of the comments to TeX Everything else in the SYSDef file is loaded into your session when you type lt lt SYSDef m where represents the particular SYSDef file chosen 45 1 Bounded Real Lemma This example derives the bounded real lemma for a linear system You should see the notebook DemoBRL ps and have the joy of executing DemoBRL nb 45 2 Measurement Feedback H Control We wish to analyse the dissipativity condition on 2 port systems with a one port system in feedback The basic question is when does feedback exist which makes the full system dissipative and internally stable This example is based on the paper BHW Here is a listing of the definitions for a nonlinear system which is affine in the input It is part of our SYS file named SYSDefIA m again here are TeX transcriptions 319 320 INPUT AFFINE SYSTEM DEFINITIONS file is SYSDefIA m This file loads in basic definitions of two systems and of the energy balance relations various connections of the systems satisfy W gt Gi gt outl F U gt G2 gt Y Ben June A U lt g f lt Y as Sohn Figure 2 dx dt F x W U outi G1 x W U Y G2 x W U dz dt f z Y U glz Y An Input Affine IA one port system is SetNonCommutative f g a b c dd z f z_ Y_ alz b z Y g z_ Y_ c z dd z Y An Input Affine IA two port system is
74. f e then the order sa lt b lt ce lt d lt fx lt e and assigns them grading level n To obtain a graded lexicographic order one can use n 1 Arguments aListofIndeterminants is a list of indeterminates n is a natural number 197 Comments Limitations See Chapter 18 Not available before NC Algebra 1 2 18 5 2 ClearMonomialOrderN n Aliases None Description ClearMonomialOrderN n clears the order having level n This command is equivalent to clearing SetMonomialOrder n Arguments n is an integer or blank Comments Limitations Not available before NCAlgebra 1 2 18 5 3 ClearMonomialOrder All Aliases None Description ClearMonomialOrderAll effectively executes ClearMonomialOrderN n for all positive integers n Arguments None Comments Limitations Not available before NCAlgebra 1 2 18 5 4 WhatlsMultiplicityOfGrading Aliases None Description WhatlsMultiplicityOfGrading returns a positive integer which is the mul tiplicity of the grading If the value is 1 then one is using graded lexicographical order Arguments None Comments Limitations See Chapter 18 Not available before NCAlgebra 1 2 18 5 5 WhatIsSetOfIndeterminants n Aliases None Description WhatIsSetOfIndeterminants n gives the n th set of indeterminates Arguments None Comments Limitations See Chapter 18 Not available before NCAlgebra 1 2 198 Chapter 19 More NCProcess Options This appendix summari
75. file throws your edited expression into the Out 102 see above A truly remarkable feature is that 46 YOU CAN EDIT Mathematica FUNCTIONS INCLUDING NCAlgebra FUNCTIONS INTO EXPR APPLYING DIFFERENT FUNCTIONS TO DIFFERENT PARTS OF EXPR then these are automatically executed when you finish editing the file A tutorial example of this extremely powerful feature is Out 32 XXXY KKKZ X Y X In 33 Edit A new screen comes up and you can use your resident editor on it XX y X Z XX yx x x I usually make another copy of the expression for safety sake and make edits on one of them while commenting out the second so it does not get read by Mathematica This way if I make errors I still have the original expression to fall back on and check with This is especially useful when dealing with complicated expressions For example you could write NCCollect x y x z x x y x x x ky XKKZ XA yA RX Now quit editing and close the file e g wq for vi Out 33 x y z x y x X 3 4 Conventions The NCAlgebra files which are called by NCAlgebra m start with NC This makes moving them easier cp NC someplace where someplace is any directory of your choosing Many operations on expressions start with NC Aliases are all caps like NCC for NCCollect or NCE for NCExpand The caps corre spond exactly to the caps in the full function name Exceptions are cases like Sub or SubSym
76. four additional polynomials which can be added to the input for the next call to NCProcess1 17 3 3 Step 3 The starting relations for this step will be the output from the first NCProcess1 call which was result1 as well as the four new equations that we have just derived Just as we did in the first step we will create a file to be read in to the Mma session This is the file cntrl2 digested RuleToPoly result1 2 1 undigested RuleToPoly result1 3 relations Join digested newpolys undigested result2 NCProcess1 relations 2 cntrlans2 DegreeCap gt 6 DegreeSumCap gt 9 Now if we do not like the results we can change the DegreeCap options or the iteration count and simply read the file again without typing the entire sequence of commands again Then in the Mathematica session we simply type In 16 Get cntr12 Once again we go directly to the file which NCProcess1 created There is no need to record all of it since at this stage we shall be concerned only with the undigested relations When the file cntrlans2 dvi is displayed the undigested relations are SOME RELATIONS WHICH APPEAR BELOW iras 182 e NAY BE UNDIGESTED rr THE FOLLOWING VARIABLES HAVE NOT BEEN SOLVED FOR En Ev E22 E Ep Bo Bo 1 0 The expressions with unknown variables E and knowns A B1 C1 C2 AT BY CT CT Fy By Ca E A AT En CT Cy CEC Cl BT En 1 3 The expressions with unknown variables EP E
77. gt SubstituteReverse SubSym gt SubstituteSymmetric SubRSym gt SubstituteReverseSymmetric SubRevSym gt SubstituteReverseSymmetric SubSingleRep gt SubstituteSingleReplace SubAll gt SubstituteAll SaveR gt SaveRules SaveRQ gt SaveRulesQ FORules gt FunctionOnRules NCHDP gt NCHighestDegreePosition NCHD gt NCHighestDegree LPR gt LeftPatternRule LinDGKF gt LinearDGKF 111 112 Part Il NONCOMMUTATIVE CONTROL SYSTEM PROFESSIONAL 113 115 Mathematica Control System Professional Noncommutative Support Version 1 0 Mathematica 2 2 and 3 0 compatible J William Helton and F Dell Kronewitter Math Dept UCSD This package adds non commuting capabilities to some of the functionality of Mathematica s Control System Professional Copyright by Helton and Kronewitter on September 1999 All Rights Reserved If you would like to try the NC Algebra package or want updates go to the NCAlgebra web site http math ucsd edu ncalg or contact ncalg ucsd edu or MathSource wri com 116 Chapter 7 State Space Systems Constructions The commands in this section facilitate working with linear dynamic systems Most of the entries below require Mathematica s Control System Professional package available from Wolfram Research To change the commutative standard Control System Professional Package for use with NCAlgebra first load in the Control System Professional and then simply
78. has set the environmental variable NC LongLoadTime The default is NC LongLoadTime True To save time you can set NC LongLoadTime False before loading NCGB m 129 130 NCAliasFunctions m loaded NCAlias m loaded Starting Main LinkObject p9c 1 1 9 1 1 NCGBSetIntegerOverflow False Here is a technical point which has implications By default C stores only a small num ber of integers and if longer integers occur in a computer run it will make a mistake NCGB which you are using does not have this problem because of some potentially time consuming dynamic storage allocation If you are sure your runs have small integers between 2 billion on a Sun then you might want to override this NCGB feature to save run time There are two ways to do this One is type the command NCGBSetIntegerOverflow True before loading NCGB m The other is to edit a line in the file NCGB m to read NCGB IntegerOverflow Tr These commands actually switch which code you are using If you are in the middle of a ses sion and wish to switch to just type NCGBSetIntegerOverflow True or NCGBSetIntegerOverflow and reload NCGB m 9 2 Simplifying Expressions Suppose we want to simplify the expression ab c assuming that we know ab 1 and ba b First NCAlgebra requires us to declare the variables to be noncommutative In 2 SetNonCommutative a b c Now we must set an order on the variables a b and c In 3 SetMonomialOrder a
79. he had several choices The first thing you should try is to start Mathematica by typing math and then type lt lt SetNCPath m If there are no error messages then type lt lt NCAlgebra m Mathematica should respond with a se quence of statements indicating that various files are being loaded If Mathematica responds with Get noopen Cannot open SetNCPath m then additional steps are required as described below You need to determine where your system administrator installed NCAlgebra The easiest way to do this is to ask your system administrator If that is not easy and or convenient then you can type cd find name NCAlgebra m print and look at the result Note that this command will take some time and will access the hard drive quite a bit If this is done on our system then the result is the directory home ncalg NC NCAlgebra NCAlgebra m The location of the installation in this case is home ncalg NC Let us suppose that you know the location of the installation of NCAlgebra Let us suppose that it is located in the directory usr local NC Move into the directory where you want to use NCAlgebra or create such a directory using the mkdir command Create an init m file with your favorite editor which contains the following lines AppendTo Path usr local NC Get SetNCPath m Type math and then type lt lt NCAlgebra m Then Mathematica responds with a sequence of statements indicating that files are being lo
80. ideas The description of how NCProcess is called is given in the previous chapters and Chapter 15 We use the abbreviations GB and GBA to refer to Gr bner Basis and Gr bner Basis Algorithm respectively We begin by describing a facet of noncommutative GB s which we have not yet described GB s are very effective for eliminating or solving for variables 13 1 NCProcess Input and Output The commands which we use heavily are called NCProcess1 and NCProcess2 NCProcessl and NCProcess2 are variants on a more general command called NCProcess A person can make use of NCProcessl and NCProcess2 without knowing any of the NCProcess options The NCProcess commands are based upon a GBA and will be described in 815 2 GBA s are very effective at eliminating or solving for variables Also we have algorithms for removing Redundant equations for the output which can be turned on and off as options NCProcess2 removes them much more agressively than NCProcess1 but is much slower and it may remove an equation you really like Also we have algorithms for removing Redundant equations for the output which can be turned on and off as options A person can use this practical approach to performing computations and proving theorems without knowing anything about GBA s or the options The input to NCProcess command one needs 147 148 11 A list of knowns 12 A list of unknowns together with an order which gives you priorities for eliminating them
81. indeterminate The standard gradation on R is the sequence R of vector subspaces of R consisting of polynomials that are homogeneous of degree s This has the 229 230 nice property that R BR s gt 0 Now T may not have a gradation but in the case that I is a homogeneous ideal then T is defined similarly as in the filtration case Note that T Uo lt s lt TG Setting HT s dim 7 the Hilbert series corresponding to this gradation is S H z s gt 0 By the note above we have that Hr t Y Hs 0 lt s lt t Usually when we refer to the Hilbert series of an algebra we must be specific about the gradation or filtration we are using as there are many besides the standard ones However here we take the convention that if an algebra is graded we take the Hilbert series to mean the one with respect to the standard gradation otherwise we are using the standard filtration This should cause no confusion as we are dealing strictly with finitely generated polynomial algebras The following dimension has been around since the 1960s and has become a main tool in noncommutative algebra It was first introduced by I M Gelfand and A A Kirillov in a paper in 1966 describing work on enveloping algebras of Lie algebras References for background and proofs of theorems are at the end of this chapter Definition 24 1 The Gelfand Kirillov dimension of T is defined to be lim sup log Hr t too log t We need a little bit more
82. load in the file NCControl m lt lt NCControl m The file NC NCAlgebra NCControlSP Demo nb contains several examples which illustrate the use of CSP package with non commutative Kurz is written in Control Mathematica notation as systems The linear system StateSpacel A B C D where A B C and D are matrices made up of symbolic noncommuting indeterminates For example Series1 StateSpacel fat b c d or Series1 StateSpacel a11 a12 a21 a22 b1 b2 c1 c2 d 117 118 7 1 System Interconnections The following commands allow one to connect two systems in various ways 7 1 1 SeriesConnect System1 System2 Aliases none Description SeriesConnect sysl sys2 creates a system which is the series connection of the two linear dynamic systems sysl and sys2 Arguments System1 System2 Comments Limitations More complete documentation can be found in the Control Systems Professional manual 7 1 2 FeedbackConnect System1 System2 Aliases none Description FeedbackConnect Systeml System2 creates a system which is the feedback connection of the two linear dynamic systems Systeml and System2 Arguments System1 System2 Comments Limitations More complete documentation can be found in the Control Systems Professional manual 7 1 3 ParallelConnect System1 System2 Aliases none Description ParallelConnect System1 System2 crea
83. m we set the option ReductionMethod NCInverse for TransferFunction For systems with commutative entries one still gets a correct an swer from TransferFunction even with this option set However it may look different from that produced by CSP Thus for a commutative A B C D system one may want use the option ReductionMethod DeterminantExpansion which gives the same answer as the CSP default 7 4 Systems from Systems The following commands will return the new system associated with the argument 7 4 1 Dual System1 Aliases none Description Dual System1 returns the dual system to System1 Arguments Systeml Comments Limitations More complete documentation can be found in the Control Systems Professional manual 7 4 2 InverseSystem System1 Aliases none Description InverseSystem System1 returns the system which is the inverse of System1 Arguments System1 Comments Limitations This function does not require the Control Systems Professional manual Part Ill NONCOMMUTATIVE GR BNER BASES NCGB 121 123 NONCOMMUTATIVE GROBNER BASIS PACKAGE Version 4 0 M Stankus Math Dept UCSD J William Helton M C de Oliveira Math Dept UCSD La Jolla California 92093 Copyright by Helton and Stankus on May 1995 Sept 1997 April 1999 October 1999 and October 2001 Copyright by Helton Stankus and de Oliveira on January 2010 all rights reserved If you would like to try the NonCommut
84. matrix rightvector will be returned where matrix is not symmetric and leftvector is not necessarily the transpose of rightvector The vector matrix vector product should still be equal to the orginal quadratic expression 4 8 3 NCIndependenceCheck aListofLists variable Aliases None Description NCIndependenceCheck laListofLists variable is aimed at verifying whether or not a given set of polynomials are independent or not It analyzes each list of polyno mials in aListofLists separately There are three possible types of outputs for each list in aListofLists Two of them correspond to NCIndependenceCheck successfully deter mining whether or not the list of polynomials is independent The third type of output corresponds to an unsuccessful attempt at determining dependence or independence If a particular list is determined to be independent True will be returned If a list is determined to be dependent a list beginning with False containing a set of coefficients which demonstrate independence will be returned Finally if NCIndependenceCheck cannot determine dependence or independence it returns a list beginning with Unde termined containing other information which is illustrated below and described further in Comments Limitations Arguments aListofLists is a list containing a list of the polynomials which are suspected of being dependent The argument variable will be subscripted and used to return the coefficient dependencies
85. opt The letters opt here stand for any of the listed attributes So for example one might try the command SetOutput dot True aj True aj rt x y Arguments Options are all dot rt tp inv aj You may input a comma separated sequence of options in any order without first forming a Mathematica list Comments Limitations WARNING NCSetOutput was called SetOutput in previous versions This syntax has now been deprecated BEWARE do not use with NCSim plifyRational Also working with parts of a pretty output may not work since it changes the Head structure of the output You can turn on or off options individ ually at any time The nesting order of the final display is determined first by any NCAlgebra defined or user defined functions and then by any Mathematica specified order Only after the Out is assigned are the SetOutput options applied to the OutputForm of the expression So the internal form of the expression is NEVER al tered Nevertheless the displayed form may be unexpected for several reasons among them being 1 f g x may be defined elsewhere to always display as glf x In this case SetOutput will display the optional forms of g f x not that of the inputed f g x 2 Mathematica establishes precedences for functions and operations in order to minimize the overall use of parantheses This can have unusual but not unmanageable effects on the displayed form of an expression For examp
86. or user defined function Comments Limitations None 4 14 Deprecated Commands The following commands are no longer supported in this version of NCAlgebra 99 4 14 1 RandomMatrix m n min max options Aliases None Description RandomMatrix m n min max options returns a random matrix of size m by n with entries between the values min and max Arguments m and n are the number of rows and columns of the matrix min and max are the minimum and maximum values of the entries in the matrix The options are MatrixType and EntryType The option MatrixType has values Any Diagonal or Symmetric The default is MatrixType Any which returns an ordinary unrestricted matrix MatrixType Diagonal returns random diagonal matrices MatrixType Symmetric returns random symmetric matrices The option EntryType has values Integer or Real The default is EntryType Real which produces real floating point numbers as entries for the random matrix EntryType Integer produces integers as entries Comments Limitations Functionality provided by new RandomInteger RandomDouble etc native Mathematica commands 4 14 2 CEEP Aliases None Description The CEEP file tells Mathematica that you want to record the functions you use during the session for later use or examination It prompts you for a file name Say you respond MYSESSION CEEP records your session two different ways into two different files the f
87. output You should get test 01 True test 02 True etc The command NCGBTestCompare has created answer files and compared them to the old reference files Creating Reference Answers 246 Maybe you do not like the reference results we provided to you some people are not very grateful To create a new set of reference outputs stay in the Testing directory Make sure you have lots of test problem files in the Test Problems directory say cOl data m thru c78 data m Edit 2 lines in the file init TestReference m to put in the path to the version of NCGB that you want as a reference Copy the file init TestReferences m to the file init m Run Mathematica Load NCGBTestCreate m Run NCGBTestCreate Integer1 Integer2 This is beginning to look familiar From here on proceed as you did in creating test files This creates a collection of files in the directory TestReference Chapter 28 References BGK H Bart I Gohberg and M A Kaashoek Minimal factorization of matrix and operator functions Birkh user 1979 BW T Becker V Weispfenning Gr bner Basis A Computational Approach to Commutative Algebra Springer Verlag Graduate Texts in Mathematics v 41 1993 CLS D Cox J Little D O Shea Ideals Varieties and Algorithms An Introduction to Com putational Algebraic Geometry and Commutative Algebra Springer Verlag Undergraduate Texts in Mathematics 1992 DGKF J C Doyle K Glover P P Khargonekar
88. p p a p a p a kk a a kk a a kk a a kk a a kk a a kk a a kk a a kk a a kk a a kk a a kk a a kK a FO p xk m xk xk xk xk xk xk xk pp ppm pp m w x a P gt P a a x a a a a a K a p op pp p s a P gt p a p a p a a pl aK a a p p a kK a kK a KK a KK Qa KK QA KK a KK a KK a KK a KK a KK prp a k a kka kK a KK Qa K a KK a KK a KK a KK a k a kka k a KK Qa K a KK a KK a KK a KK a k a kka k a KK Qa K a KK a KK a KK a KK a k k a k k a k a kK Qa K a KK a KK a KK a KK In 2 SetKnowns la p In 3 p p p p a p a p Out 3 p p a p p a In 4 NCMakeGB 4 Out 4 p p p a p p xr a gt a a a kk p p a kK a KK A gt a a a kk a eK p p ka KK A gt a a a kk a eK a kK p p ka gt a a a kK a xk a KK a KK PD DP gt a akk a KK a k k a KK a KK a K gt p a a a k k a KK a kk QA HK gt a a k k a KK a KK a KK a KK a ox gt p a a k a kK a KK a kk a gt a a a KK a k k a KK a KK a ox gt p a a a k k a KK a kk a gt a a a KK a KK a KK a KK a gt p a a k a kK a KK a kk a HK gt a k a a KK a k k a KK a KK a ox gt p a a k k a HK a KK a kk QA HK gt a k a k k a KK a k k a KK a KK a K gt
89. p a a k a kK a KK a kk Q gt a a a KK a KK a KK a KK a K gt p a a k a kK a KK a KK a gt gt Ta a KF a xx a KK a KK a KK a gt gt a xx a K a p a xk gt a a K a K a K a p gt p K a K a K a a sx gt a xx a x p a xk a KK gt a a K a k a K a p gt p K a K a K a KK Q xx gt a a a p The command SmallBasis takes this or any set of relations and shrinks it down to a smaller set of relations which generate the same ideal One must have a monomial order set 219 because SmallBasis 21 1 1 calls NCMakeGB SmallBasis returns a subset of the original set of relations In the example below the SmallBasis command shows that the ideal generated by the set Out 4 equals the ideal generated by p p xp a p px xa xp 1 In 5 Out 5 SmallBasis 4 4 p p p a p p a p 21 4 Second Example As a second example after loading the files NCGB m Small Basis m and Remove Redundent m we can execute the following commands to compute a Grobner Basis for the set of relations x a x b In 3 SetKnowns la b x In 4 NCMakeGB xx x x a xx xx x b 10 Out 4 a x x b a x b x a a a b x gt a b b a a a x b b b a a a Now one might want to find a smaller generating set for the ideal specified above The following command do
90. p p p a p p a xx In 4 NCMakeGB 4 Out 4 p p gt a a gt a rk a gt a a gt a rk a gt a rk a x x gt p xx a x gt a a x gt p xx a x gt a rk a gt p x x a x gt a rk a gt p xx a x gt a a gt p xx a x gt a rk a gt p xx a x gt a a x gt p xx a x gt 7a a gt gt gt gt gt a a x P gt gt p a p p a a pt p a ek a kk a a a p p a kk a a a a p p k a a a a a KK DP p a k a kK a kK a KK a KK a k a kK a kK a KK a KK a k a kK a kK a KK a KK a k a kK a kK a KK a KK a k a kk a kK a KK a KK a k a kK a kK a KK a KK a k a kK a kK a KK a KK a k a kK a kK a KK a KK a k a kK a kK a KK a KK a k a kk a kK a KK a KK a k a kK a kK a KK a KK a k a kK a kK a KK a KK a k a kk a kK a KK a KK a k a kK a kK a KK a kK a kK a kka kK a KK a a k a kK a k a kK p a k k a k a a a k a a a kk a kK a p a a kk a a P gt xk xk xk xk xk xk xk xk xk xk xk xk xk xk xk pp pp pp pp pp pp pd xk x x m a a p p k a a p P gt a a p a a k a a p a a kk a x a KK a a p P gt 9 xk xk xk xk xk xk xk xk xk xk xk pp pp p pp pp m q m P gt p m xk xk xk xk xk xk xk xk pp pp
91. pp m w x m p a K K Rx kk K kk op opp pp mp a P gt P a a a a a a P gt p a p a p a a pl k a a p p a k a kK a eK A KK a eK A KK A KK A KK A KK a KK a KK a a a p a k a k a kK a KK a kK a KK a KK a KK a KK a KK a p a kK a k a kK a KK a KK a KK a KK a KK a KK a p a kK a k a kK a KK a KK a KK QA KK a KK a KK a kK a kK a kK a KK Qa KK a KK a KK a KK a KK 262 gt a a a p The command SmallBasis takes this or any set of relations and shrinks it down to a smaller set of relations which generate the same ideal One must have a monomial order set because SmallBasis 21 1 1 calls NCMakeGB SmallBasis returns a subset of the original set of relations In the example below the SmallBasis command shows that the ideal generated by the set Out 4 equals the ideal generated by p p xp ax xp p xa xp In 5 Out 5 SmallBasis 4 1 4 p p p a p p a p Unfortunately in larger examples SmallBasis is very slow which prompts the development of a more specialized command RemoveRedundant This can be run only after NCMakeGB has been run because it uses the history of how the GB was produced This history is equivalent to a tree which tells what relation came from what other relations RemoveRedundant uses only tree search methods so it is fas
92. reader can see which categories occur The following command creates a file junk which has a nicely formatted version of the information stored in dummy see page 293 In 6 RegularOutput 4 junk Outputting results to the stream OutputStream junk 6 Done outputting results to the stream OutputStream junk 6 In 7 junk THE ORDER IS NOW THE FOLLOWING A lt B lt CO lt D lt ACROSS lt P1 lt P2 lt lt proji lt proj2 lt lt ml lt m2 lt lt leftm lt leftm2 lt lt rightml lt rightm2 lt lt a lt b lt c lt e lt f lt g THE FOLLOWING VARIABLES HAVE BEEN SOLVED FOR c g e b f rightmi rightm2 a The corresponding rules are the following c gt CO m1 g gt CO m2 e gt leftm2 A m2 b gt leftm1 B f gt leftm2 B rightmi gt leftmi rightm2 gt leftm2 a gt leftm1 A m1 THE FOLLOWING VARIABLES HAVE NOT BEEN SOLVED FOR leftm1 leftm2 m1 m2 The expressions with unknown variables leftmi mi and knowns A B CO leftmi mi gt 1 mix leftmi B CO xm1 gt Axx ml Bxx C0 m1 mix xleftmi A m1 mi1 leftm1 B CO B r COx m1 gt A 2 rmi1 A Bxx COxx m1 B CO A m1 B COx Bx x COx x m1 mixx leftmix x A 2x x m1 mix leftm1 A B COx xml mix leftm1 B CO A m1 The expressions with unknown variables leftmi m2 and knowns A leftm1 m2 gt 0 leftm1 A m2 gt 0 The expressions with unknown variables leftm2 mi and knowns A
93. ready to begin the strategy session 17 3 Solving HGRAIL using NCProcess 17 3 1 Step 1 In 1 Get NCGB m In 2 Get cntr1 In 3 resulti We can ignore the Mathematica output Out 3 of the NCProcess1 command for now What is important is that the spreadsheet which NCProcess1 produces is in the file cntr lans1 dvi There is no need to record all of it here since the only work which we must do is on the undigested relations When the file entrlans1 dvi is displayed the undigested relations are SOME RELATIONS WHICH APPEAR BELOW ira MAY BE UNDIGESTED EEE THE FOLLOWING VARIABLES HAVE NOT BEEN SOLVED FOR b c En Ev E22 E E Eso b cT ED Big 1 3 The expressions with unknown variables E E11 179 and knowns Ei Eg gt 1 E En gt 1 1 3 The expressions with unknown variables 27 gt E12 and knowns Ei Ez 1 Ej Ej gt 1 1 3 The expressions with unknown variables F55 E22 and knowns E2 Ez 1 Ez E22 gt 1 1 5 The expressions with unknown variables Ej EL and knowns PoBo i Bo 3 8 The expressions with unknown variables 07 b Eoi Eis Ei and knowns A By C1 C2 AT BT CT CT bbT b03 ESE Ert CZ OT PES AR h Eu Bib the AT Eu Eja ES CT C Ej b Ers En B1 BT Eu E 0 4 9 The expressions with unknown variables fer C En Ern E1 E22 Er E42 and knowns A B1 B2 C1 AT BT BZ CT cc cT Bi Ez rare Eii Er Ez
94. select representatives from each of them See HSH this selects 39 0 2 AllOrderslaListofPolynomials aListofIndeterminants Aliases None Description AllOrders aList OfPolynomials aList OfIndeterminants returns A list of graded lexicographical orders of the given indeterminants Each order represented as a list is a member of an equivalence class of orders that produce the same leading terms in each of the polynomials in the list Arguments aListOf Polynomials is a list of polynomials aListofIndeterminants is a list of noncommutative indeterminants Comments Limitations Not available before NCAlgebra 1 2 39 0 3 EquivalenceClasses aListOfPolynomials or EquivalenceClasses aListC Simpler Aliases None Description EquivalenceClasses aListOfPolynomials returns a logical expression that rep resents the equivalence classes of orders that produce the same leading terms in each of the polynomials in the list If Simpler is used and it is False no additional processing is done If Simpler is used and it is True the expression will be simplified as much as possible In this case the EquivalenceClasses command will take longer than if there were no second argument Arguments aListO f Polynomials is a list of polynomials Simpler is either True or False Comments Limitations Not available before NCAlgebra 1 2 301 302 39 0 4 UniversalBasis aListOfPolynomials NumberOflterations Aliases None Description Universa
95. the kt through n permutations Since the total number of permutations is assumed to be unknown by the user if n is too high then n is replaced by the total number of permutations Also not all of the permutations are permissible Because of this NCLDUDecomposition automatically pivots if an in valid permutation is used for a particular step This means it is possible that not all the diagonals returned result from different permutations For this reason there is the option ReturnPermutation which if entered as True returns the permutations used for each resulting factorization Finally the user may wish to analyze the bor der vectors and may do so by setting ReturnBorderVector to True This will cause NCConvexityRegion to return the border vectors v from the v Mv factorization of the hessian Now vt will have the form LiH LiH wer Lik H ings Ladd Ln2 An yo EN 81 So what will actually be returned is a list of the form E Daik p e A rs This vector will be formed using a call to NCBorderVectorGather Also a call will be made to NCIndependenceCheck to determine if possible whether or not the elements of the above list are independent The results of this check will be printed to the screen Comments Limitations None 4 8 2 NCMatrixOfQuadratic O H Ha Aliases None Description NCMatrixOfQuadratic Q Hi H2 Hn gives a vector matrix fac torization of a symmetric quadratic function Q in no
96. then NoTeX then SeeTeX the program forgets that the 4 windows are there 5 4 3 KillTeX Aliases None Description KillTeX removes all of the files in the directory TeXSession See also SeeTeX 85 4 1 106 Arguments No arguments Comments Limitations Not available before NCAlgebra 2 1 5 4 4 SeelaListOfIntegers Aliases None Description See aListOfIntegers Arguments See aListOfIntegers allows one to create a TEX file which displays multiple Out statements For example See 5 14 9 creates a window with Out 5 followed by the TX form of Out 5 0ut 141 followed by the TEX form of Out 14 Out 9 followed by the TFX form of Out 9 Comments Limitations aListO fIntegers is a list of integers Not available before NC Algebra 2 1 If the See 5 14 9 command is invoked as the 19th com mand e g In 19 See 5 14 9 then the TeXed formulas Out 5 Out 14 and Out 19 will be in the file master19 tex This might help a user in writing a paper based on the session since it can be used to bring together important formulas This command requires that the SeeTeX be called before the use of See 5 4 5 KeeplanInteger Aliases None Description KeeplanInteger tells Mathematica that it should not automatically destroy the window corresponding to the anIntegerth output Arguments anInteger is an integer Comments Limitations Not available before NCAlgebra 2 1 The file masterk dvi is also ke
97. this partial GB 2 Shrink A using the RemoveRedundantProtected operation Call this shrunken set B II The main call to NCMakeGB 3 Run NCMakeGB with the input B together with start for at most n iterations In this NCMakeGB run S polynomials between two elements of the partial GB of A are not computed Let C denote this partial GB III Shrinking the partial GB 4 Shrink C using the RemoveRedundantProtected operation Call this shrunken set D 5 Let Dp be the set of polynomials in D which do not involve any unknowns Let D D D Let E be a set of the normal forms of the elements of D with respect to Dg Let E Dp U Ey 6 Let F be the union of E and the user selects Let G be a reduced form of F see the beginning of 815 5 7 Shrink G by SmallBasisByCategory using iteration parameters n 1 and n 2 Call this shrunken set H IV Attempt Decompose 8 Construct the collected forms of the polynomials in H V Displaying the results 166 9 For elements of H if the polynomial s only collected form is trivial then display the rule corresponding to the polynomial otherwise display the collected form of the polynomial This is the step in which the spreadsheets of the results of this paper are constructed VI Return a three tuple to the user for future use 10 Return the triple A Ho H to the user where A is from item 1 above Ho is the set of polynomials in H which are digested and A is
98. those which are well understood In future sections we will refer to two collections of equations the relation mentioned above as well as a set of user selected relations These do not exist in the first run A user selected equation is a polynomial equation which the user has selected The algorithm described in 16 3 4 treats these equations as digested This for example implies that they are given the highest priority in eliminating other equations when NCProcess runs For example equations which one knows can be solved by Matlab can be selected 171 16 2 Elimination Since we will not always let the GBA algorithm run until it finds a Gr bner Basis we will often be dealing with sets which are not Grobner Basis but rather an intermediate result We call such sets of relations partial GB s Commutative Gr bner Basis Algorithms can be used to systematically eliminate variables from a collection e g p 11 Un 0 1 lt j lt ki of polynomial equations so as to put it in triangular form One specifies an order on the variables 1 lt 2 lt 3 lt lt Zn 3 which corresponds to ones priorities in eliminating them Here a GBA will try hardest to eliminate x and try the least to eliminate z The output from it is a list of equations in a canonical form which is triangular q z 0 16 1 9 21 X2 0 16 2 q3 1 22 0 16 3 qa 1 T2 03 0 16 4 16 5 dilo 06 16 6 Here t
99. to the output of the GB algorithm Chapter 24 The Dimension of the Solution Set of a Set of Polynomial Equations Eric C Rowell Given a system of noncommuting polynomials S one may wish to have some sense of how large the solution set is i e the degrees of freedom There are a number of possible ap proaches none of which is perfect to answering this question and we outline one of them here This method is useful and interesting of its own right and is perhaps more valuable as an example in which the Groebner Basis algorithm can be used by pure algebraists 24 1 The Commuting Case If the polynomials S are members of a commutative affine polynomial finite number of variables ring then there is a very classical way of computing the dimension of the solution set One uses the Krull dimension or trancendance degree which are the same for affine commutative algebras Daniel Lichtblau at Mathematica has written code that will do this 24 2 Noncommutative Case Gelfand Kirillov dimen sion Let R k lt 2 n gt the polynomial ring over k in n noncommuting variables The standard filtration on R is the sequence of vector subspaces of R R consisting of all poly nomials of degree t or less If J is an ideal of R set T R I Then the standard filtration T on T is the sequence R I N R If we define Hr t dim T the Hilbert series of T corresponding to this filtration is y Hr 1 t gt 0 where z is an
100. tp D12 x tp D12 z C1 z In 5 SubSym tp GEz x z 1 b z gt q x z Out 5 qlx z C2 x 2 qlx z C2 z 2 tplAlx GEx x z1 2 tplAlz GEz x z 2 tp C1 x C1 x tp C2 x tplalx z 2 tp C2 z1 1 tplalx z11 2 tp GEx x z Alx 2 tplGEz x z A z 2 q x z D21 x tp B1 x GEx x z 4 glx z D21 x tp D21 x 1 tplqalx z 4 qalx z D21 z tp B1 z 1 XX z 2 z1 B1 x tp B1 x GEx x z 4 z1 B1 x tp D21 x tplqlx z 4 z1 B1 z tp B1 z 1 XX z 2 Bilz tp B1 z1 GEz x z 2 Bilz tp D21 z1 tplqlx z 2 tp GEx x tp GEx x tp GEz x tp XX z tp XX z tp c1 x tp C1 x tp C1 z tp C1 z tp C1 z tp GEx x tp GEx x tp GEz x tp GEz x tp XX z tp XX z tp XX z tp C1 z xk xk xk xk xk xk xk D12 x D12 x D12 z D12 z D12 z xk xk xk xk xk z B2 x z B2 x z B2 z z B2 z inv e1 z inv e1 z inv e1 z inv e1 z inv e1 z xk xk xk xk xk invleilz invleilz invleilz invleilz B2 z invleilz tp B2 x GEx x z1 2 B2 z invleilz tp B2 z GEz x z1 2 B2 z invleilz tp D12 x C1 x D12 z invleilz tp D12 x D12 x invleilz tp B2 z XX z tp D12 z C1 z tp B2 x GEx x z 2
101. will always be quadratic with respect to H A noncommutative polynomial in variables H Ha Hp is said to be quadratic if each monomial in the polynomial expression is of order two in the variables H Ha ar Ela 98 Arguments afunction is a function of the variables X1 X2 Xy The Hessian will be computed with respect to the search directions H H Hy For example suppose F x y x ax xy y xxr Then NCHessian F x h Ly k gives 2h x xk 2k xh As another example if G x y 2 invly z x xx then NCHessian G x h y k z 72 gives 2i x xh 2inv y x xk x xinv y x xk x xino y The results of NCHessian can be factored into the form uv Mv by calling NCMatrixofQuadratic see NCMatrixofQuadratic Comments Limitations None 4 4 Block Matrix Manipulation By block matrices we mean matrices with noncommuting entries The Mathematica convention for handling vectors is tricky v 1 2 4 is a 1x3 matrix or a row vector v 1 2 4 is a 3x1 matrix or a column vector v 1 2 4 is a vector but NOT A MATRIX Indeed whether it is a row or column vector depends on the context DON T USE IT Always remember to use TWO curly brackets on your vectors or there will probably be trouble As of NCAlgebra version 3 2 one can handle block matrix manipulation two different ways One is the old way as described below where you use the command MatMult A B to multiply block matrices A and
102. xB xxtp h B x xtp A x xk Bx xC x xtp h Ax xtp h B x xh C x xh Then NCBorderVectorGather List k h returns the following list A x xB Bxxtp Al B C Bx B BxxC A Note that the vectors are gather in the pattern k tp k h tp h This pattern will be the same despite the length of avarlist Comments Limitations None 4 9 NCGuts This section details the command NCGuts which expands the meaning of tp and inv 4 9 1 NCStrongProductl Aliases None Description NCStrongProduct1 is an option of NCGuts When True serves to multiply matrices as well as maintaining its original function with noncommutative entries This replaces the command MatMult For example MatMult a by Lc dy Hay y is the same as a b c d r 1u In addition tp and tpMat are the same NCStrongProduct1 False is the default Arguments None Comments Limitations None 86 4 9 2 NCStrongProduct2 Aliases None Description NCStrongProduct2 is an option of NCGuts When set to true if m is a matrix with noncommutative entries inv m returns a formula expression for the inverse of m The considerable limitations of NCInverse are still limitations in inv m NCStrong Product2 forces NCStrongProductl In other words NCGuts NCStrongProduct2 i True makes multiply matrices with noncommutative entries just as NCGuts NCStrongProduct i True does NCStrongProduct2 False i
103. you might load Click on the appropriate hyperlinks Some versions of Netscape require you to shift click to download a file 26 2 Getting NCAlgebra and NCGB through anony mous ftp It is possible to get NC Algebra through anonymous ftp Here is the standard description of how to get NCAlgebra through anonymous ftp 237 238 Gk k ak ak ak ak ak ak ak 3 2k k 2k 2K ak ak OO K 2K 2K K FK 2K 2K K 2K 2K K K 2K 2K K FK 2K 2K K 2K 2K K FK 2K 2K K FK FK K K FK FKK K 2K 2K K K aK 2K K KK KK k NCALGEBRA and NCGB Version 2 1 CRO OR CG 2K 2K K FK FK 2K K FK 2K K GK a I K K K KK KK KK Thanks you for your interest in NCAlgebra and NCGB This message contains the information necessary for you to use anonymous ftp to transfer the files from our site to yours The ONLY thing which you have to do to get the NCAlgebra or NCGB package is to follow the following sample terminal session NCAlgebra with or without NCGB is at osiris ucsd edu in the pub ncalg directory Below is a record of an actual ftp session What the user types is underlined Quoted expressions describe what should be typed e g where you see Any thing will do but please type your e mail address you may type anything you want Ignore all timing data shown below BELOW IS A SAMPLE SESSION IF YOU FOLLOW IT THEN YOU WILL BE ABLE TO GET A COPY OF THE NCAlgebra or NCGB PACKAGE YOU CAN HAVE YOUR LOCAL COMPUTER GURU FOLLOW THE BELOW INSTRUCTIONS
104. z blz D21 x 2 tp D21 x tp C2 x tp b z tplalz GEz x z 2 ar Check this against the stored formula for sHWo In 8 NCExpand sHWo Out 8 tp c z1 eilx c z tp c z tp D12 x D12 x clz tp GEz x z blz e2 x tp b z GEz x z 4 324 tp GEz x z blz D21 x tp D21 x tp b z GEz x z 4 In 9 Substitute rue NOTE rue tp D12 x_ D12 x_ gt eilx D21 x_ tp D21 x_ gt e2 x Out 9 O The output sHWo is also recorded in the file SYSDeflA m above Note that neither SHWo nor sHWoWIA depends on a or c 45 2 2 The MIN MAX in U Also useful is the optimum CritU for Hopt min max sHW min sH Wo max min sH W U W U W U For WIA systems there is not an elegant formula for CritU and possibly is not unique For IA systems one gets the concrete formula CritU x z el x B2 x Vrelz z 2 el x D12 x C1 x 45 2 3 Derivations of IAX Critc and Hopt Now we optimize sHWo in c z variable and restrict to x z to get the Doyle Glover Kargonekar Francis condition for IA systems Henceforth we abbreviate commands by their aliases In 4 In 5 lt lt SYStems m Crit sHWo c z Out 5 clz gt inv e1 x tp B2 x GEx x z 2 inv e1 x tp D12 x C1 x 9 this is ruCritU In 6 Hopt NCE Sub sHWo 5 Out 6 tplAlx GEx x z1 2 tp C1
105. 00 True test 01 True test 02 True etc This tests your version of NCGB against answers obtained from the version we have If they do not agree there is a problem possibly minor One must be very careful with NCGBTEST If paths are set wrong then it will find no files for either the reference answers or the new code you are testing and since these behaviors are identical NCGBTEST will return True True etc which is of course False False False 27 2 Turning On Screen Output There is a command which acts globally to turn output on and off NCGBMmaDiagnostics True NCGBMmaDiagnostics False also the NCProcess option PrintSreenOutput True PrintSreenOutput False turns on and off more diagnostics only inside NCProcess Default on both of these is False 27 3 More Testing for Developers DOES NOT WORK 2001 This section is for heavier testing than above say of a new version of NCGB 27 3 1 Setting the Testing Environment The file TestingEnvironment m has four commands that may require editing This file basically defines the directories where the testing is being done where the sample problems are stored where the results from the test are outputed and where the trusted reference answers are kept The command NC TestPrefix defines where the testing is being done Its default value is NC NCGB Testing and should not be monkeyed with unless you have created your own testing directory NC TestInput defi
106. 1 Bilz tp lBilz GEz x z 2 tp C1 x D12 x invleilz tp B2 z XX z tp C1 x D12 x invleilz tp D12 z C1 z tp C1 z D12 z invleilz tp B2 x GEx x z 2 tp Ci z D12 z invleilz tp B2 z GEz x z 2 tp C1 z D12 z invleilz tp D12 x C1 x tp C2 x invle2 x D21 x tp B1 x GEx x z 2 tp C2 x invle2 x D21 z tp B1 z XX z tp C2 z invle2 x D21 x tp B1 x GEx x z 2 tp C2 z invle2 x D21 z tp B1 z XX z tp GEx x z B1 x tp D21 x inv e2 x C2 x 2 tp GEx x z B1 x tp D21 x inv e2 x C2 z 2 tp GEx x z B2 x invleilz tp B2 z XX z1 2 tp GEx x z B2 x invleilz tp D12 z1 C1 z 2 tp GEz x z B2 z invleilz tp B2 z XX z 2 tp GEz x z B2 z invleilz tp D12 z C1 z 2 tp XX z1 Bilz tp D21 z invle2 x C2 x tp XX z Bilz tp D21 z invle2 x C2 z tp XX z B2 z invleilz tp B2 x GEx x z 2 tp XX z B2 z invleilz tp B2 z GEz x z 2 tp XX z1 B2 z invleilz tp D12 x C1 x tp C1 z D12 z invleilz eilx invleilz tp B2 z XX z tplcilz D12 z invleilz eilx invleilz tp D12 z C1 z tp GEx x z B1
107. 11 and knowns E E 1 E En gt 1 1 3 The expressions with unknown variables Ej5 E12 and knowns Ei Es 1 Ey Ej gt 1 1 3 The expressions with unknown variables Ey E22 and knowns Ex E gt 1 Ey Ex gt 1 1 5 The expressions with unknown variables E 7 EL and knowns Be IT E Eh 1 3 8 The expressions with unknown variables CEE Bis E11 E22 EL E12 and knowns A Bi B2 C1 AT BT BT CT Ex Ey AT Er En Eyl Ex Exp Ej Ei Ej AER Ez E22 Ery Ei ER By BT Ex En Ej E22 En Ej En El BoB ae ee Ej Ex Eso Ey CT BE Eig En ET E22 En Ey Eu EL B2C1 ET Ex 0 Once again we have two equations worth looking at The first polynomial equation is a Riccati Lyapunov equation in E Numerical meth ods for solving Riccati equations are common For this reason assuming that a Riccati equation has a solution is a socially acceptable necessary condition throughout control engi neering Thus we can consider Ej to be known We notice that the same products of unknowns appear over and over It is likely that we can factor or group this equation in such a way that we can understand it a little better 17 3 4 Step 4 We start by grabbing the relation which we want to explore Although the spreadsheet above shows the equation in factored form it is returned to Mathematica in expanded form In this case the relation we are interested in is the thirteenth el
108. 13 H1 NCExpand H 2 Out 13 gamma tp W W tp W tp B X x gt tp W tp D C x tp W tp D D W gt tp x X A x tplx X B W tp x tp A X x gt tp x tp C C x tp x tp C D W In 14 H2 NCCollectSymmetric H1 x W Out 14 tp W tp B X tp D C x 2 gt tp W gamma tp D D W gt tp x X A tp A X tp C C x gt tp x X B tp C D W The strategy here is to maximize H and see if it is lt 0 First differentiate to find the worst input W Here we use our limited commmand Grad We will do much better when we revisit this example using NCGB In 15 dH Grad H2 W Grad limited Grad gives correct answers only for a limited class of functions 2 Out 15 2 gamma W 2 tp B X x 2 tp D C x 2 tp D D W We then find the critical W using the even more limited command NCSolve Again check out the same problem under NCGB In 16 Wsol NCSolve dH 0 W NCSolveLinear1 diagnostics Since the following expression is not zero 2 tp B X x 2 lt lt 1 gt gt lt lt 3 gt gt 4 tp D D lt lt 3 gt gt x you may want to double check the result This expression can be retrieved by the command NCSolveCheck 2 Out 16 W gt 2 inv 2 gamma 2 tp D D tp B X x 2 gt 2 inv 2 gamma 2 tp
109. 2 E22 ES Eii Eb Bac Es En AT Exa Er ET E22 E ES CF c Ci Ep E22 e Cl Be E E22 Ers Ei EL AET Ex E22 Eq Ey EL Bi BT Eiz En Ey E22 0 17 3 2 Step 2 The user attacks As we can easily see from the spreadsheet above there are only two nontrivial relations left undigested by the NCProcess1 command The user can ignore the rest of the spreadsheet for now Since the leading terms of the last two polynomials above are bb and cc and the fact that the two equations are decoupled i e the bb equation does not depend on e or CT and the cc equation does not depend on b or bT further iterations of an NCProcess command would probably not help At this point we need to be more clever We begin by assigning variables to the polynomials that we are interested in We can see from Out 3 that the polynomial involving b and Tpfb is the first element of the third list in the result1 and the c rule is the last element of that list These relations are in the form of rules which need to be converted to polynomials before we can continue This is done with the command RuleToPoly The next step is to convert the Tp in these rules to tp which will be recognized as transpose by NCAlgebra Here is how this is done In 4 bpoly RuleToPoly result1 3 1 180 Out 4 b Tp b b C2 Inv E21 Inv E12 Tp C2 Tp b gt b Tp B1 E11 Inv E21 Inv E12 E11 A Inv E21
110. 2 Spreadsheet1 Here NCProcess1 is being applied to the set of relations FAC for 2 iterations The NCProcess1 command has two outputs one will be stored in result and the other will be stored in the file Spreadsheet1 dvi The Spreadsheet1 dvi file appears below and is likely to be more interesting and useful than the value of result The file created by NCProcess is a list of equations whose solution set is the same as the solution set for FAC We added the lt appearing below after the spreadsheet was created The below can be read as an equal sign THE ORDER IS NOW THE FOLLOWING A lt B lt C lt m lt m3 lt X0nm lt Xnm lt ax lt bx lt cx lt ex lt f lt yg E YO UR SESSION HAS DIGESTED mm THE FOLLOWING RELATIONS memme THE FOLLOWING VARIABLES HAVE BEEN SOLVED FOR La b c e 5 9 The corresponding rules are the following a n Am USER CREATIONS APPEAR BELOW ae A u e SOME RELATIONS WHICH APPEAR BELOW mem A NA Y BE UNDIGESTED m THE FOLLOWING VARIABLES HAVE NOT BEEN SOLVED FOR m1 M2 N1 N2 2 0 The expressions with unknown variables n1 m and knowns 4 B C nym gt 1 1 m n Am 1 1 m n BC m 0 lt 2 0 The expressions with unknown variables n ma and knowns A 154 2 0 The expressions with unknown variables na m and knowns A B C nam gt 0 na BC mi na A m 2 0 The expressions with unknown variables na ma and knowns na ma gt 1 4 0
111. 2 x W U By definition see Section I the closed loop system being e DISSIPATIVE corresponds to the energy balance function HW above being negative Note that the function HWUY contains both state and dual variables Dual variables are defined by the gradient of the energy function as follows p Vze and PP V e In the following when we impose the IA assumptions see 1 5 and 1 6 we will often specialize to a plant which satisfies D11 x D22 x 0 D12 x D12 x el x gt 0 D21 x D21 x e2 x gt 0 and a compensator with d z 0 We now write out energy balance formulas for the plant and compensator after Figure 2 under these assumptions purely in terms of state space variables x and z designated by the prefix s for state space PURE STATESPACE VARIABLES 322 STATESPACE x z While the HWUY formulas mix x s and p s the next ones are purely on statespace variables x and z Executable formulas for p V e and PP V e are inserted by the rule SNC GEx GEz ruxz p gt tp GEx x z PP gt tp GEz x z Here GEx x z GEz x z stand for column vectors VTe VTe respectively This unfortunate choice of notation is a holdover from earlier versions of the software The storage function e is homogeneous GEx 0 0 0 GEz 0 0 0 sHWUY HWUY ruxz sHWU HWU ruxz sHWY HWY ruxz sHW HW ruxz RESULTS STORED FOR FAST EXECUTION The following are redundant in that they can be computed from th
112. 3 SelfAdjoint i e T such that T T 0 221 222 O Oo N QO O e 10 11 12 13 14 15 16 Projection i e T such that T T 0 InvL i e T such that InvL T T 1 InvR i e T such that T x InvR T 1 Inv i e T such that Inv T T 1 and T x Inv T 1 Rt i e T such that Rt T T Pinv i e T such that T x Pinv T x T T Pinv T T x Pinv T Pinv T tp T x xPinv T T Pinv T tp Pinv T xT Pinv T T PerpL i e T such that PerpL T x T 0 PerpR i e T such that T x PerpR T 0 PerpL2 i e T such that 1 T xPinv T PerpL2 T and tp PerpL2 T PerpL2 T PerpR2 i e T such that 1 Pinv T x T PerpR2 T and tp PerpR2 T PerpR2 T Isometry aInteger where alnteger is a natural number i e T such that yz 1 teser T 0 Symmetrylalnteger where alnteger is a natural number i e T such that yx Unteger T 0 Isosymmetry i e T such that yx 1 y x T 0 or equivalently T T T T T T 0 These extremely important operators were the subject of Mark Stankus incredible thesis Arguments aSpecialList is a list whose first element is one of the allowed types above and the rest of whose elements are either simple expressions or square matrices Comments Limitations Not available before NCAlgebra 1 2 22 1 Output notation for pseudoinverse and perp s Pinv x a A A ES er
113. 76 IsometryQ aSymbol 88 umber aList or IterationNumber aNum ber UNTESTED 1999 211 Keeplanlnteger 106 KilllanInteger 107 KillTeX 106 LeftQlexpr 74 341 342 LinearQ aFunction 92 LookAtLongExpression anExpression 107 LookAtMatrix aMatrix 107 MakeGif file expression 304 MatMult x y 59 NCAddAdjoint 137 CAddAdjointlaListOfExpressions 223 CAddTranspose 137 CAddTransposelaListOfExpressions 223 NCAllPermutationLDU aMatrix 64 CAutomaticOrder 137 CAutomaticOrder aMonomialOrder aListOf Polynomials 196 NCBackward expr 52 NCBorderVectorGather alist varlist 85 NCCheckPermutation SizeOfMatrix aListOfPer mutations 66 NCCoefficientList Expression aListOfIndetermi nants 267 NCOollect expr aListOf Variables 48 NCCollectOnVars Y A B Z A X A Y A B 201 ZZZZZZ ables 201 NCCollectSymmetric expr 48 NCCompose aVerySpecialList 97 NCContinueMakeGB iterationNumber 298 NCConvexityRegion afunction alistOfVars opts 81 NCCV True 202 NCDecomposelexpr listofsymbols 97 NCExpand 47 NCForward expr 52 NCGBFastRegularOutput False 203 NCGBMmaDiagnostics True 202 NCGBMmaDiagnostics False 244 NCGBSetIntegerOverflow False 211 NCGBSetIntegerOverflow True 130 NCGuts 85 NCHessian afunction X1 H1 Xx He J 58 integer2 anOption 233 NCIndependenceChecklaListofLists variable 84 NCInverse aSquareMatrix 64 NCL
114. AA RA Ra Oe 239 20 22 The 027 Tees Sa la e A A IG ee ee it ed 240 262 3 o files s e ie a a e A A Dr pe a ie Bu G 240 26 2 4 Look at the document 2 sas ada aa a ae are 240 203 Thelast step at ds 2 e A AR AAA dd 240 26 4 The NC directory structure a 2 Bar A AS 241 26 5 Directory structure of NCAlgebra alone 2 2 2222 nenn 242 27 Testing your version of NCGB 243 A unse it te NN 243 27 2 Turning On Screen Output co cats e e te ph ences ahs ee Qe OE 244 27 3 More Testing for Developers DOES NOT WORK 2001 244 27 3 1 Setting the Testing Environment 244 28 References 247 VII DETAILS AND OLD OR NEW COMMANDS ONLY ON THE WEB 249 29 History of the Production of a GB and Playing By Numbers 251 291 Play By Numbers 2 lea ela ake oe A Aaa Be 251 29 1 1 WhatAreGBNumbers o ooa aaa o 251 29 1 2 WhatAreNumbers e isa Seesen 251 29 1 3 WhatIsPartialGB aListOfIntegers 252 29 1 4 NumbersFromHistory aPolynomial history 2 2 2 2 2 2 252 29 2 History of the production of a GB Warn kr Bien is Kr a eA A 252 29 2 1 WhatisHistory alistOtntegers 42 40 ra eae Sn eae ee 252 29 2 2 WhatIsKludgeHistory aListOflntegers 253 29 2 3 More on the History of how NCMakeGB produced its answer 253 29 2 4 The DAG associated with a History 254 30 Commands for Making Small Bases for Ideals Remove Redundant 257 30 1 Removing exc
115. B CO leftm2 m1 gt 0 leftm2 B CO m1 gt leftm2 A m1 The expressions with unknown variables leftm2 m2 and knowns 293 leftm2 m2 gt 1 The expressions with unknown variables leftmi leftm2 m1 m2 and knowns m2 leftm2 gt 1 mi leftmi Now we illustrate the CreateCategories command One calls it on the above set of relations with the above order by typing In 5 CreateCategories dummy Out 5 dummy The effect of the above command is to associate the following information to the symbol dummy In 6 dummy lt recall Mma does not produce an output in response to one gets a screen display as follows Global dummy dummy 2 b leftmi c mi f leftm2 g m2 leftmi mi leftm1 m2 leftm1 rightmi leftm2 m1 leftm2 m2 leftm2 rightm2 dummy 3 fa leftm1 m1 fe leftm2 m2 dummy 4 leftm1 leftm2 mi m2 dummy AllCategories b leftmi c mi f leftm2 g m2 leftm1 mi leftm1 m2 leftm1 rightmi leftm2 mi leftm2 m2 leftm2 rightm2 a leftmi mi fe leftm2 m2 leftmi leftm2 mi m2 dummy nonsingleVars leftmi leftm2 mi m2 dummy numbers 2 3 4 dummy singleRules c gt CO ml g gt CO m2 e gt leftm2 A m2 b gt leftml B f gt leftm2 B rightmi gt leftmi rightm2 gt leftm2 a gt leftmi A mi dummy singleVars c g
116. B and tpMat A to take transposes The other way is much more pleasing though still a little risky First you use the NCGuts with the Options NCStrongProduct1 True to change to make block matrices multiply corectly Further invoke the Option NCStrongProduct2 True to strengthen the power of xx Now one does not have to use MatMult and tpMat just use and tp instead it recognizes matrix sizes and multiplies correctly 99 4 4 1 MatMult x y Aliases MM Description MatMult multiplies matrices The Mathematica code executed for MatMult x y is Inner NonCommutativeMultiply x y Plus Arguments x is a block matrix and y is a block matrix Comments Limitations MatMult can take any number of input parameters For ex ample MatMult a b c d will give the same result as MatMult a MatMult b MatMult c dl 4 4 2 ajMatlu Aliases None Description ajMatlu returns the transpose of the block matrix u The Mathematica code is Transpose Maplaj 1 amp u 2 Arguments u is a block m x n matrix Comments Limitations None 4 4 3 coMat u Aliases None Description coMat u returns the transpose of the block matrix u The Mathematica code is Maplco amp u 2 Arguments u is a block m x n matrix Comments Limitations None 60 4 4 4 tpMat u Aliases None Description tpMatlu returns the transpose of the block matrix u The Mathematica is Transpose M ap tp amp u
117. B1 x tp D21 x inv e2 x D21 x tp B1 lx tp YYI x 1 tp C2 x1 invle2 x C2 x k x_ z_ minimum in b of sHWo evaluated at a and c see BHW This is the 2 variable generalization of DGKF Riccati Hopt x z a b min max sHWU where you can specify functions alz b z U W The Central Controller ruc c z_ gt inv e1 z tp B2 z XX z tp D12 z C1 z rua alz_ gt Alz B2 z c z b z C2 z B1 z b z D21 z tp B1 lz XX z ruc rublin the rule in the linear case for the b in the central soln to the H infinity control problem ruaWIA alz_ gt AB z c z blz x x C2 z B1lz b z D21 z tp B1 lz XX z Plug rua and ruc into the main Hamiltonian sHWo to get sHWo k x z tplbterm bterm which defines btern 339 Special Systems Linear Systems Linear systems satisfying the DGKF simplifying assumption are special cases of an IA system To take an expression in H control which has been derived for an IA system and specialize it to linear systems apply SubSym expr rulinearal1 where rulinearall is a long list of rules for specializing IA systems formulas described below ruGEXY ruGEXY1 ruGEXY2 where ruGEXY1 tp GEx x_ 01 gt tp x inv YY ruGEXY2 tp GEx x_ x_1 gt tp x XX rulinearall Union rulinearsys ruGE1 ruGEXY rulinearXY where rulinearsys 1A x_ gt A x B1 x_ gt B1 B2 x_ gt B2 C1 x_ gt C1 x C2 x_ gt C2 x D21
118. BEEN SOLVED FOR na a b C 2 Ey gt a bT cT EL EL EZ EJ Ey Eis Ez Ezz The corresponding rules are the following a gt Ep AT E Eo CT BI E Eip C BT E BE Eu BoB E ER CT O Ey Eg Ep En B01 Eyl Eg Ep CT B Bu Ez Ex Es En Ba BE Ey Ez E22 b En GE En Er B c gt B3 Ein Cy Ey Ez BY En Ex Ez Eii gt y EN gt Y 185 a gt Ey AES En B C Ex En BoC Ey Eo Bo BE Ey Ey E Ey CTO Ez Ex Ey Eu BO Ez En Ej CT B En Ez E Ey Ey Bo BE Ey Ez bf gt C Es BT Ey Ey c gt Ez By Ez By Ci Ez Ej En Bo EL gt Eu EL gt Eo El gt En EX En Eor BEN En Po ak Ez Boa Ax Eee Eee BEN Es The expressions with unknown variables and knowns 4 Bi B2 C1 C2 X Y X7 Y 71 AT BT BT CT CT RX Vy ot x1X gt 1 o Y B Ca 9 YTI A ATY CT C1 CZ Ca CT BT Y X By B X X A AT X X B2 C CT BT X X B BT X USER CREATIONS APPEAR BELOW El gt Y Eso Ex Ey gt En X A A A A A es es SOME RELATIONS WHICH APPEAR BELOW memme a NA Y BE UNDIGESTED m THE FOLLOWING VARIABLES HAVE NOT BEEN SOLVED FOR E12 Eo Eso Eip Eq Eso 1 3 The expressions with unknown variables E 2 E12 and knowns Ei Ep 1 Ej En 1 1 3 The expressions with unknown variables Ey E21 and knowns Ez En 1 Ey En gt 1 1 3 The expressions with unknown variables E37 E22 and knowns Es Ez 1 Ez Ex
119. CXWholeProcess terminates stating that the prob lem was not solved Alternatively if all unknown variables become determined the function NCXWholeProcess terminates stating that the problem has been solved This function is in a very primitive stage and the particulars of it will likely change Chapter 26 Getting NCALGEBRA and NCGB The easiest way to get NCAlgebra and NCGB is through the NCAlgebra homepage It is also available by ftp NCGB also requires compiling We have compiled versions of NCGB available for a Microsoft Windows or a Solaris 1 1 3 or higher UNIX operating system If your operating system does not fall into one of these categories you must get gnu C and compile it yourself See the Web version of the NCGBDOCUMENT for instructions on compilation As of November 1999 we consider windows operation of NCGB experimental and you should consider yourself a testers NCAlgebra works fine under windows and has for many years The goal of this section is to tell you how to get the files and directories which constitute NCAlgebra and NCGB 26 1 Getting NCAlgebra and NCGB off the web The NC Algebra homepage address is http math ucsd edu ncalg It can also be easily found by searching the web for NC Algebra In the first line of text there is a hyperlink attached to the word downloaded i e the word downloaded is underlined Click on the word downloaded and you will move to a world wide web page with several choices as to what
120. ComplexRules Arguments expr is any expression with x Rel Im Conjugate Exp Power Sin Cos and others Comments Limitations This only works for expressions defined with the commutative multiplication 4 5 4 ComplexD expr aVariable Aliases None Description Complex D expr aVariable calculates the derivative of the complex expres sion expr with respect to the complex variable aVariable You can also calculate the derivative with respect to Conjugate aV ariable Try these examples ComplexD Conjugate Exp z 1 Conjugatelz z ComplexD Re 1 zw w Abs 1 e 1 z 2 ComplexD Conjugate Exp z 1 Conjugate z Conjugatelz ComplexD Here is a second order derivative ComplexD Conjugate Exp z 1 Conjugatelz z 2 73 Arguments expr is a complex expression aVariable is the variable in which to take the derivative with respect to Comments Limitations This only works for expressions defined with the commutative multiplication 4 6 Setting symbols to commute or not commute 4 6 1 SetNonCommutative A B C Aliases SNC SetNC Description SetNonCommutative A B C sets all the symbols A B C to be noncommutative The lower case letters a b c are assumed noncommutative by Mathematica default as are functions of noncommutative variables The functions tp and aj are set noncommutative by NCAlgebra for any arg
121. D D tp D C x Now plug the critical point back into H using Substitute Things are getting uglier so we use NCSetOutput to beautify Mathematica s output 38 In 17 NCSetOutput A11 gt True In 18 Hwi Substitute H2 Wsol T T T Out 18 x X A A X C O A et T T 2 T 1 T gt x a MBA D 2 2 gama 2D D 5 Bora ee 2 T 1 T gt 2 2 gamma 2D D D C x T 2 1 gt 2 x X B 2 gama 2D D T T 2 T 1 T T gt 2 x C D 2 gamma 2D D B X D C x T 2 T 1 gt 2 x X B 2 gama 2D D T T 2 T 1 2 T gt 2x C D 2 gamma 2D D gamma D D 2 T 1 T gt 2 2 gamma 2D D aiB a E a 2 T 1 T gt 2 2 gamma 2D D Do E We now expand the expression using NCExpand In 19 Hw2 NCExpand Hw1 E T T T T Out 19 x X A x x A X x x C C x H T 2 T 1 T gt 4x X B 2 gamma 2D D B XXau T 2 T T gt 4x X B 2 gamma 2D D D e T T 2 T 1 T gt 4x C D 2 gamma 2D D B X x T T 2 T 1 T gt 4x C D 2 gamma 2D D D o 2 2 T 2 T 1 2 T 1 gt 4 gamma x X B 2 gamma 2D D 2 gamma 2 D D gt B X x 4 gamma x X o Bo 2 gamma 2D D 2 T 1 T gt 2 gamma 2D D RE 2 T T 2 T 1 2 gt 4 gamma x C D 2 gamma 2D D 2 gamma 2D T 2 T T 2 T 1 gt B X x 4gamma x C D 2 gamma 2D D 2 T 1 T gt 2 gamma 2D D SD 4 UG oy AR T 2 T 1 T gt 4x X B 2 gamma 2D D D D 2 T 1 T gt 2 gamma 2 D D
122. DPx Px In fact pa lies in the ideal generated by py Px for every a such that both l lt a lt n Now if a tree T represents the development of p Pn and one chooses a subset k kr 1 n then one can consider the largest subgraph of T for which each node kz has no edge leading from it Each connected component of this subgraph will be a tree Let 7 be such a connected component of T and 4 lw be the nodes of T It is clear that the tree To represents the development of pp PZ This is the key to the function RemoveRedundent This function takes a tree T which represents the development of pj Ppn and a list of nodes 41 w The algorithm proceeds as follows Let result lw Let unchanged False while unchanged unchanged False temp result while unchanged is False and temp is not the empty set Pick temp 1A common and canonical example of a dag is a tree end while 30 3 Let temp temp l More here MARK whats this mean end while Examples 261 This shrinking is done using the commands RemoveRedundent and SmallBasis 30 4 First Example For example after loading the files NCGB m SmallBasis3 m 21 1 1 and RemoveRedundent m 830 1 2 we can execute the commands to compute a subset of a Gr bner Basis for the set of relations p x xp p p xa p ax p In 2 SetKnowns a p In 3 p p p p a p axxp Out 3
123. DUDecomposition aMatrix Options 64 NCMakeGB Options CleanUp True 212 NCMakeGB iters 131 NCMakeGBjlaListOfPolynomials iterations 209 NCMakeGB polys iters 200 NCMakeGB b x y x a 1 4 191 NCHilbertCoefficient integerl aListOfExpressions NCMakeRelations 136 NCMakeRelations aSpecialList aSpecialList 222 NCMatrixOfQuadratic Q H Hn 83 NCMatrixToPermutation aMatrix 65 NCMonomial expr 53 NCMToMatMult expr 60 NCPermutationMatrix aListOfIntegers 65 NCProcess aListOfPolynomials iterations fileName Options 161 NCReconstructFromTermArray anArray 96 CSetNC 86 CSetOutput optionlist 102 NCShortFormulas 1 203 CSimplifylRational expr 55 CSimplify2Rational expr 56 CSimplifyAlllexpressions startRelations iter ations 207 NCSimplifyRational expr NCSimplifylRational expr and NCSimplify2Rational expr 55 NCSimplifyRationalX1 expressions startRelations iterations 208 NCSolve expr1 expr2 var 49 ZZ ZZZ NCCollectOnVars aListOfExpressions aListOfVarNCStrongCollect expr aListOfVariables 48 NCStrongProduct1 85 NCStrongProduct2 86 NCTermArray expr aList anArray 95 NCTermsOfDegree expr aListOfVariables indices 49 NCTeX 104 NCTeXForm exp 103 NCUnMonomial expr 53 NCX1VectorDimension alist 234 NCXAllPossibleChangeOfVariables aListOfPoly nomials 271 NCXFindChangeOfVariables aListofPolynomials
124. F False controls whether a separated PDF viewer will be spawed to display the TpXed output ImportPDF gt True controls whether the TEXed output will be imported into a notebook BreakEquations True tells NCTFX to use the style bregn to attempt to break long equations or expressions in multiple lines TeX Processor gt NCTeX Form tells NCTRX to use NCTeXForm as the command to translate exp into AIEX Other options are PDF Viewer LaTeXCommand PDFLaTeXCommand DVIPSCommand PS2PDFCommand which we try to guess correctly depending on your platform You may have to customize those if your installation of TEX is not standard Arguments exp is any mathematica expression or lists of expressions Comments Limitations Not available before NCAlgebra 3 9 5 4 Deprecated Commands The following commands are no longer supported in this version of NC Algebra 5 4 1 SeeTeX or SeeTeX anInteger Aliases None Description SeeTeX tells Mathematica that you would always like to have your outputs displayed in TEX Inputting SeeTeX gives you additional displays which accompany the rest of your Mathematica session unless you turn off SeeTeX using the NoTeX see below Each output in your session causes a seperate window to open on the screen and this window displays the TFX version of the output When too many TeX displays are present Mathematica automatically makes the oldest display disappear One can 105 set the maximu
125. GEz x tp ci z z1 B1 x tp B1 x GEx x z 4 z1 B1 z tp B1 z 1 XX z 2 Bilz tp B1 z1 GEz x z 2 xx ok ok xx xx xx z z z z z z z D12 x D12 x D12 z D12 z D12 z xk xk xk xk xk xk xk ok ok ok ok ok B1 x B2 x B2 x B2 z B2 z biz biz Bi z B2 z x B2 z B2 z z blz D12 z invleilz tp D12 x D12 x invleilz tp B2 z XX z D12 x invleilz tp XX z B2 z tp B2 z XX z D12 x invleilz invl eilz invl eilz invl eilz invl eilz invl eilz xk xk xk xk xk tp D21 x invleilz invleilz invleilz invleilz tp B2 z XX z tp D12 z C1 z tp B2 x GEx x z 2 tp B2 z GEz x z 2 tp D12 x C1 x tp b z GEz x z 4 tp B2 z XX z1 2 tp D12 z C1 z 2 tp B2 z XX z 2 tp D12 z C1 z 2 D21 x tp B1 x GEx x z1 4 D21 z tp B1 z XX z1 2 tp D21 z tp b z GEz x z 2 inv e1 z tp B2 x GEx x z 2 invleilz tp B2 z GEz x z 2 inv e1 z tp D12 x C1 x D21 x tp D21 x tp b z GEz x z 4 tp Ci z D12 z invleilz tp D12 x tp D12 z C1 z invleilz tp D12 x D12 x invleilz tp XX z B2 z invleilz
126. HSW these rules implement a superset of the union of the Grobner basis for EB and the Grobner basis for RESOL 56 4 2 3 NCSimplify2Rational expr Aliases NCS2R Description You need this for expressions involving inv polynomial where the polynomial is not of the form SId X x Y Arguments expr is an algebraic expression Comments Limitations If the polynomial is too complicated this may not help very much 4 3 Vector Differentiation 4 3 1 DirectionalD expr aVariable h Aliases DirD Description Takes the Directional Derivative of expression expr with respect to the variable aVariable in direction h Arguments expr is an expression containing var aVariable is a variable h is the direction which the derivative is taken in Comments Limitations None 4 3 2 Grad expr aVariable Aliases Grad NEVER USE Gradient Description Grad expr aVariable takes the gradient of expression expr with respect to the variable aV ariable Quite useful for computations with quadratic Hamiltonians in H control BEWARE Gradient calls the Mma gradient and makes a mess Arguments expr is an expression containing var aV ariable is a variable Comments Limitations This only works reliably for quadratic expressions It is not even correct on all of these For example Grad a x xx a x xtp x x returns 2tp a The reason is fundamental mathematics not programming If a is a row vector and x is a column vector t
127. KK a KK a a KK a KK a Kr a xx p 9 4 IAN 113 p a k a r a KK a KK a KK a kka KK a KK a KK a Kr a KK a HK p gt a k a k a k a kK a kka KK a KK a KK a KK a KK a KK a KK p VVVNVV VV VM VM V V VM Vo Vo VOM 21t takes 113 seconds The present implementation of the code involves alot of interaction with Mathe matica We expect future versions of the code to be faster 263 gt 9 5 5 114 p a a xx a k a HK a KK A kr a k a KK a KK gt a a K a a xx p gt gt a k a kka kK a eK a KK a KK a KK a KK a KK a KK a HK a KK a p gt 9 6 6 15 p a a k a kk a HK a KK A KK a KK a KK a Kr gt a a K a rk a a Pp gt gt a k a k a kk a kka KK a KK a KK a KK QA KK A KK a KK a KK a KK a KK p gt 19 7 73 116 p a a k a KK a KK a KK A KK a KK a KK a HK gt a a a k a K a K a sx Pp gt gt a kk a k a kK a KK a xk a KK a KK a KK a KK Q KK a KK a KK a KK a HK gt a p 9 8 8 17 gt p a a k a k a KK A k a HK a KK a KK QA KK A KK a KK a KK a HK gt a xx a x a x p gt gt a kk a k a kK a k a kka KK QA KK a KK a KK Q KK a KK a KK a KK a rk gt a a p 9 9 9 The call to RemoveRedundent is In 7 RemoveRedundent Out 4 Out 6 Out 7 p p p a p p a xx p The first command recalls the number associated to all of the relations which occurred during the previous run of Mora s algor
128. LDU are PermutationSelection False CheckDecomposition False NCSimplifyPivots False StopAutoPermutation False ReturnPermutation False Stop2by2Pivoting False All of these options have the same effect as in NCLDUDecomposition except for PermutationSelection PermutationSelection should be a list of numbers between 1 and the number of possible permutations NCAllPermutationLDU will use this list to choose the permutations from its canonical list to decompose the matrix using NCLDUDecomposition For example PermutationSelection can be 1 n Comments Limitations The output is a list of all successful outputs from NCLDUDecomposition Note that some permutations may lead to a zero pivot in the process of doing the LDU decomposition In that case the LDU decomposition is not well defined actually in Mathematica one gets a lot of oo signs but this output will not be included in the list of successful outputs 4 4 10 NCInverselaSquareMatrix Aliases None Description NCInverse m gives a symbolic inverse of a matrix with noncommutative en tries Arguments m is ann x n matrix with noncommutative entries Comments Limitations This command is primarily used symbolically and is not guar enteed to work for any specific examples Usually the elements of the inverse matrix m are huge expressions We recommend using NCSimplifyRational NCInver se m to improve the formula you get In some cases NCSim
129. M Furthermore we want M to be nontrivial in the sense that given a polynomial P in knowns and unknowns M 4 aP b where a and b are numbers NCXFindChangeDf Variables does not accomplish this but it often finds solutions The method is to find a number of candidates for motivated unknowns and then try them one by one until we find one which in fact works Trying the candidates involves running a Grobner basis algorithm NCProcess on each possibility To make things more efficient there are a number of ways we may try to eliminate candidates or reorder them so that we find the motivated unknown faster 31 1 Details of the Algorithm 31 1 1 Preparation The first step is to put motUnknown and Tp motUnknown in the order If the variable motUnknown is already in the order then nothing is done Otherwise the two variables are put in the order in a graded piece just after the knowns For example if the old order isa lt b lt c lt a lt al lt y then the new order would be a lt b lt c lt motUnknown lt motUnknown K x lt a lt y The default options are also set at this stage 31 1 2 Collect and extract The next step is to go through the polynomials and to collect on knowns and on monomials consisting only of knowns The NCAlgebra command NCCollectOnVariables looks for knowns and collects terms around them For instance given zyax zax NCCollectOnVariables would return ey z ax The first set of candidates for motivated unknowns is t
130. Matrix then the output is valid permutation list Ifnot the outputis not valid permutation list Arguments The size of a square matrix an integer and a list of permutations 66 Comments Limitations If the SizeOfMatrix is n then aListOfPermutations must be a list of n 1 permutations of the integers 1 through n Since this command is generally called within the context of NCLDUDecomposition the list of permutations must correspond to a list that can be used within the command 4 4 14 DiagjaMatrix Aliases None Description Returns the elements of the diagonal of a matrix Arguments None Comments Limitations The code is Flatten MapIndexed Part m 4 4 15 Cascade P K Aliases None Description Cascade P K is the composition of P K as is found is systems engineering Arguments P is a 2x2 block matrix K is a symbol Comments Limitations frequency response functions grow from this 4 4 16 Chain P Aliases None Description Chain P returns the chain matrix arising from P as is found in systems engineering Arguments P is a block 2x2 matrix Comments Limitations Chain assumes appropriate matrices are invertible 67 4 4 17 Redheffer P Aliases None Description Redhef fer P gives the inverse of chain Redhefter Chain P P Chain Redheffer P Arguments P is a block 2 x 2 matrix Comments Limitations Redhef fer P assumes the invertiblity of the entries of P 4 4
131. NCProcess NCXPossibleChange0fVariables NCXMultiplyByMonomials The following command may also be useful since it gives a list of expressions each of which is a possible new variable It runs all steps above except the last two that is multiplying through by monomials and running the Grobner basis 31 3 2 NCXPossibleChangeOfVariables aListofPolynomials Op tions Aliases None Description NCXPossibleChangeOfVariables aListOfPolynomials Options takes a list of relations and looks for a good motivated unknown It returns a list of pairs E M where E is the expression which motivated the candidate M and M is the candidate for a motivated unknown Arguments aListofPolynomials is a list of relations and options can be any of the following e CountVariables True The Count Variables option counts to see if the candidate for motivated unknown has all of the variables in the expression which motivated it and removes the entry from the list if it does not and thus could not reduce the expression to one unknown The default True is to eliminate these entries while False will skip this step entirely e RemoveNumbers False The RemoveNumbers option decides whether or not to remove purely numerical terms from the candidates If True then these terms are removed For instance the candidate xy 1 becomes xy If set to False the candidate is not be changed e SortByTermLength True The SortByTermLength option decides w
132. Process The workhorse commands of a strategy are the NCProcess1 and NCProcess2 commands These two commands fit the general mold of the NCProcess command In particular each option of NCProcess is also an option of NCProcess1 and NCProcess2 See 15 6 15 2 1 NCProcess aListOfPolynomials iterations fileName Options Aliases None Description NCProcess aListOfPolynomials iterations fileName finds a new generating set for the ideal generated by aListOfPolynomials along the lines of the demo presented in Chapter 16 The spreadsheets presented in 16 3 1 are the contents of the files fileName and are produced by the command NC Process In addition to creating the file fileName NC Process returns as Mathematica output a list consisting of three lists L lt are called multigraded lexicographic orders Intuitively we think of A B and C as corresponding to variables in some engineering problem which represent quantities which are known and think of a b c d e and f as corresponding to variables in the engineering problem which represent quantities which are unknown The fact that d e and f are in the top level indicates that we are very interested in solving for d e and f in terms of A B C a b and c but are not willing to solve for b in terms of expressions involving either d e or f More precise discussion of mulitgraded lex orderings are in Chapter 18 161 1 A partial GB for the digested relations 2 The digest
133. Rational expr 59 NCSimplify1Rational NCSimplify2Rationallexpr together with some NCExpand s NCSimplify1Rational expr contains one set of rules while NCSimplify2Rational expr contains another Arguments expr is an algebraic expression Comments Limitations Works only for a specialized class of functions 4 2 2 NCSimplify1Rational expr Aliases NCSIR Description It applies a collection of relations implemented as rules to expr The goal is to simplify expr Arguments expr is an algebraic expression Comments Limitations WARNING NCSIR does not first do an ExpandNonCommu tativeMultiply Therefore it may be the case that one can miss some simplification if expr is not expanded out The solution of course is to call ExpandNonCommu tativeMultiply before calling NCS1R ExpandNonCommutativeMultiply is called from NCSR First NCS1R normalizes inv S a x xb to S7 x inv 1 a xb S provided S is s a commutative expression only works for numbers S in version 0 2 of NCAlgebra The the following list of rules are applied 0 inv 1 a invll a 1 inv 1 a a b inv 1 b gt inv 1 a inv 1 b 2 inv 1 ab inv b inv 1 ba a invlb 3 inv 1 ab ab inv 1 ab 1 4 abinv 1 ab inv 1 ab 1 5 inv c inv 1 cb inv 1 be inv c 6 b inv 1 ab inv 1 bajb In the notation of papers HW
134. SetCol sometry x was executed previ ously See SetC olsometry Arguments aSymbol is a symbol Comments Limitations None 89 4 10 8 SetUnitary Symbols Aliases None Description SetUnitary a b will set a b to be isometries and co isometries Also effects on UnitaryQ See SetIsometry and SetColsometry Arguments Symbols is one or more symbols separated by commas Comments Limitations If one does not set x to be a unitary before the first use of ajl then NCAlgebra may not make the substitution from x xajlx to 1 or from aj x xxx to 1 automatically 4 10 9 UnitaryQ aSymbol Aliases None Description UnitaryQ x will return True if SetUnitary x was executed previously Cau tion If one executes SetIsometry x SetColsometryl x then x is unitary but UnitaryQ remains uneffected See SetUnitary Arguments aSymbol is a symbol Comments Limitations None 4 10 10 SetProjection Symbols Aliases None Description SetProjectionla b will set a b to be projections The rules a a a b b b will be automatically applied Caution If one wants x to be a self adjoint projection then one must execute SetSelf Adjoint x Set Projection x See ProjectionQ Arguments Symbols is one or more symbols separated by commas Comments Limitations If one does not set x to be a projection before the first use of x then NCAlgebra may not make the substitution from x x x
135. SetNonCommutative W U Y DW DU DY SetNonCommutative A x B1 B2 C1 C2 G1 G2 SetNonCommutative D11 D22 D12 D21 D11 x_ 0 D22 x_ 0 F x_ W_ U_ A x B1 x W B2 x U G1 x_ W_ U_ C1 x D11 x W D12 x U out1 G1 x W U G2 x_ W_ U_ C2 x D21 x W D22 x U out2 G2 x W U G2I x_ Y_ U_ inv D21 x Y inv D21 x C2 x ENERGY BALANCE EQUATIONS We begin with notation for analyzing the DISSIPATIVITY of the systems obtained by con necting f g to F G in several different ways The energy function on the statespace is denoted by e HWUY below is the Hamiltonian of the two decoupled systems where inputs are W U and Y 321 HWUY out W PP f z Y p F x W U SetNonCommutative F G1 G2 f p PP HWUY tp out1 out1 tp W W p F x W U tp F x W U tp p 2 PP f z Y tp f z Y tp PP 2 CONNECTING INPUT AND OUTPUT If we connect the Y output of the 2 port to the f g input then the resulting system has Hamil tonian function HWU HWU HWUY with the substitution Y G2 x W U HWU HWUY Y gt G2 x W U If we connect the U input of the 2 port to the f g output then the resulting system has Hamil tonian function HWY HWY HWUY with the substitution U g z Y HWY HWUY U gt g z Y If we connect the two systems in feedback that is tie off U and Y then the resulting Hamiltonian function is HW HWY with the substitution Y G2 x W U HW HWY Y gt G
136. TERIAL ONLY ON THE WEB 289 Chapter 36 An Old Example of Get Categories Lots of info This is a 1996 vintage example and we should have deleted it except that it contains a lot more info on how categories are labeled than we put in the official doucument As an example consider the following set of relations with the multigraded lex order A lt B lt CO lt D lt ACROSS lt P1 lt P2 lt lt projl lt proj2 lt lt m1 lt m2 lt lt leftm1 lt leftm2 lt lt rightml lt rightm2 lt lt a lt b lt c lt e lt f lt yg This arose in the demo in Subsection 14 2 So we proceed assuming we have set the order Suppose eliminatedOriginal has been set so that In 4 eliminatedOriginal Dut 4 c CO m1 g CO m2 1 leftmi m1 leftml m2 gt leftm2 mi 1 leftm2 m2 leftmi A m2 e leftm2 A m2 b leftmi B f leftm2 B leftmi rightm1 leftm2 rightm2 a leftmi A mi leftm2 A mi leftm2 B CO mi 1 mi leftmi m2 leftm2 A mi B CO mi m1 leftmi A mi mi leftmi B CO x x mi A A mi A B CO mi B CO A mi B CO B CO m1 mi leftmi A A x x mi mi leftmi A B CO mi mi leftmi B CO A mi mi leftmi B CO B CO mi VVVVVVVVV VV Before demonstrating the Category commands we apply the RegularOutput command so the
137. The expressions with unknown variables and knowns a b c d a t bt e de aa t 1 bb 1 coto dd 1 USER CREATIONS APPEAR BELOW SOME RELATIONS WHICH APPEAR BELOW MAY BE UNDIGESTED THE FOLLOWING VARIABLES HAVE NOT BEEN SOLVED FOR a b c d z a7 b71 ct dt 143 1 0 The expressions with unknown variables z and knowns a b c d zbz z dac The time for preliminaries was 0 00 06 The time for NCMakeGB 1 was 0 00 01 The time for Remove Redundant 1 was 0 00 03 The time for the main NCMakeGB was 0 00 21 The time for Remove Redundant 2 was 0 00 09 The time for reducing unknowns was 0 00 03 The time for clean up basis was 0 00 05 The time for SmallBasis was 0 03 44 The time for CreateCategories was 0 00 01 The time for NCCV was 0 00 19 The time for RegularOutput was 0 00 02 The time for everything so far was 0 04 57 144 Chapter 12 To Run NCGB Template nb 12 1 Making a Groebner basis and NCProcess tem plate In 1 lt lt NCGB gt You have already loaded NCGB m In 2 SetNonCommutativela b c d w x y z Invlal In 3 inputPolys 1ltak wtx d a ctx z bkxdty w Ll b zty c 1 ckky tw ka ckkbtwk x dkkatz y 1 dx x zx b 1 ax x Inv a b 1 Inv a a Out 3 1 ax w x d akkctx z Dixd y w 1 b kZ y C L cexytweta ceeDtWHEX dkkatz y 2 d x z b a Inv a b 1 Inv a a In 4 SetMonomialOrder a I
138. V x Axx Bxx Z Axx X Y Another example is if A Tp A B1 Tp B1 B2 Tp B2 C1 Tp C1 C2 and Tp C2 are knowns and all other variables are unknowns then In 2 long E21 A iE21 E22 E21 B1 Tp B1 E12 E21 B2 Tp B2 E12 E22 iE12 Tp A E12 E21 B2 Cl iE21 E22_ E22 iE12 Tp C1 Tp B2 E12 E21 B1 Tp B1 E11 iE21 E22 E21 B2 Tp B2 E11 iE21 E22 E22 iE12 E11 A E21 E22 E22 iE12 E11 B1 Tp B1 E12 E22 iE12 E11 B2 Tp B2 E12 E22 iE12 Tplal E11 iE21 E22 E22 iE12 E11 B2 C1 iE21 E22 E22 iE12 Tp C1 Tp B2 E11 iE21 E22 E22 iE12 E11 B1 Tp B1 E11 iE21 E22 E22 iE12 E11 B2 Tp B2 E11 iE21 E22 In 3 NCCollectOnVariables long Out 3 E22 iE12 Tp A E12 E11 iE21 E22 E21 E22 iE12 E11 A iE21 E22 E21 E22 iE12 E11 B1 Tp B1 E12 E11 iE21 E22 E21 E22 iE12 E11 B2 Tp B2 E12 E11 iE21 E22 E22 iE12 Tp C1 Tp B2 E12 E11 iE21 E22 E21 E22 iE12 E11 B2 C1 iE21 E22 VVVVVVVVVVVVV VVVVV VV The NCCollectOnVars option LeftAndRight True This prints out a list containing two lists His ri rh Here l is the left side of term 1 of collect
139. Variable o o 12 Setting symbols to commute or not commute 2 2 Emm m nn 73 4 6 1 SetNonComm tative A B aJ oea 73 4 6 2 CommuteEverything expr 2 asar a ae aay T3 4 6 3 SetCommutative a b sual a 6 eu e 74 4 6 4 SetCommutingOperators b c o 74 4 60 39 LeQlexpEl Zara a Nase OA Bones we ee e ana 74 4 6 6 CommutativeQ X sip er are AR 75 4 6 7 Commutat veAllQlespt cesary rasa Ge P at eae E a 75 Operations on elements in an algebra 2 2 rn nn 75 ALA A A eier ae 75 As Mall a te BE ee E Bath A 76 RS WIVES di da ta ue A ner 76 AAS AA AA 76 4 0 5 ExpaadQliy und ee 76 40 Exp dQ tp 2383 8 ve be A Ge hos A E TT LTT E a O eee Ese ee TT ACOA ERDE 4 hc a Oe A A BE Se Sata 77 AVEO DIESEN Er an A ER ee 77 E an ae ra a Aik ee eA f 78 Convexity of a NC function Ss 12 0 O ew AE OS 78 4 8 1 NCConvexityRegionlafunction alistOfVars opts 78 4 8 2 NCMatrixOfQuadratic OA Era Fe 81 4 8 3 NCIndependenceChecklaListofLists variable 83 4 8 4 NCBorderVectorGather alist varlist 84 POETS ern dd ts ence e eee de A Enotes i 85 4 9 1 NO Strong Product ll Se cork a Be Se a ee 85 4 9 2 NCotrone Product e 3 495 idar ce er oe ark ee ee re ea 86 49 3 E NT 86 Setting Properties of an element in an algebra 86 AN AA ANN 86 4 10 2 SetSelfAdjoint Symbols see eb 87 4 10 3 SelfAdjointQ aSymbol dias e a eier r
140. Way 283 34 1 GNU C Version gt 2 6 3 aaa aaa 283 34 1 1 Compiling the C part of NCGB aoaaa 283 94 2 SEVENONE A A ee a a 284 34 2 1 Loading NCGB more quickly er er ee er 284 35 For the Home Team 285 35 1 How to make the PC version of NC o 285 IX TRULY OLD MATERIAL ONLY ON THE WEB 289 36 An Old Example of Get Categories Lots of info 291 37 Example of Hypothesis Selection in Discovering 295 38 Possibly Obsolete Command Descriptions 297 38 1 NCMakeGB Options maybe obsolete o a aa a nn nn 297 38 1 1 SupressCOutput False less output to the screen 297 38 1 2 SupressAllCOutput False very little outp ut to the screen 297 38 1 3 NCContinueMakeGBliterationNumber o 298 38 2 Special GB related commands may not work 298 38 3 Starting Relations Si SE Ge Fe in eo AA ee 298 38 3 1 SortRelations aListOfRules cia aa ee a 298 38 3 2 SortMonomials aListOfVariables lt 298 38 4 Changing the default options for NCMakeGB 298 38 4 1 ChangeNCMakeGBOptions option value need to update description 298 39 Generating Universal Gr bner Basis MAY NOT WORK untested in 1999 301 39 0 2 AllOrderslaListofPolynomials aListofIndeterminants 301 39 0 3 EquivalenceClasses aListOfPolynomials or EquivalenceClasses aListOfPolynomials SIMP a Pa Sra a A les a 301 39 0 4 UniversalBasis aListOfPolynomials NumberOfltera
141. XX x GEx x_ 0 gt 2 YYI x In 9 Sub 7 Out 9 tplAlz XX z tp C1 z1 C1 z tp XX z1 Alz tp XX z Bilz tp B1 z XX z tp Ci z D12 z invleilz tp B2 z XX z tp Ci z D12 z invleilz tp D12 z C1 z tp XX z B2 z invleilz tp B2 z XX z tp XX z B2 z invleilz tp D12 z C1 z In 10 Out 10 NCE IAX z 0 45 2 4 Derivation of IAYI This is an advanced exercise in the use of the glossary at the end of this document file The glossary stores the basic formulas for solutions to the IA H control problem We use them here to familiarize the reader with the GLOSSARY In 4 lt lt SYStems m In 5 Sub sHWo z gt 0 Out 5 tp A x GEx x 0 2 tp C1 x C1 x tp GEx x 01 Alx 2 tp GEz x 01 al0 2 tpla 0 GEz x 01 2 tp C1 x D12 x c o tp C2 x tp b 0 GEz x 0 2 tp GEx x Ol B2 x c 01 2 tp GEz x 0 b O C2 x 2 tp c 0 eilx c o tp c 01 tp B2 x1 GEx x 0 2 tp c 0 tp D12 x C1 x tp GEx x 0 B1 x tp B1 x GEx x 0 4 tp GEx x 0 B1 x tp D21 x tp b 0 GEz x 0 4 tp GEz x 01 b 0 D21 x tp B1 x GEx x 01 4 tp GEz x 0 b 0 e2 x tp b 0 GEz x 0 4 In 6 ruhomog Out 6 fA O gt 0 C1 0 gt 0 C2 0 gt O a 0 gt O c 0 gt 0
142. a single variable Comments Limitations See description 4 1 7 Substitutelexpr aListOfRules Optional On Aliases Sub Description It repeatedly replaces one symbol or sub expression in the expression by an other expression as specified by the rule See Wolfram s Mathematica 2 book page 54 More recently we wrote the Transform command 4 1 11 which apprears to be better 50 Arguments expr is an algebraic expression aListO f Rules is a single rule or list of rules specifying the substitution to be made On save rules to Rules temp temporarily over riding SaveRules Off Off cannot over ride SaveRules On Comments Limitations The symbols and are often used in Mathematica as meth ods for substituting one expression for another This method of substitution often does not work when the expression to be substituted is a subexpression within a noncom mutative product This Substitute command is the noncommutative analogue to 4 1 8 SubstituteSymmetric expr aListOfRules optional On Aliases SubSym Description When a rule specifies that a b then SubSym also makes the replacement tpla tpll Arguments expr is an algebraic expression aListO f Rules is a single rule or list of rules specifying the substitution to be made On save rules to Rules temp temporarily over rides SaveRules Off Off can not over ride SaveRules On Comments Limitations None 4 1 9 Subst
143. aListOfVariables Aliases None Description SortMonomials aListOfVariables returns a sorted list of monomials in terms of the monomial order Arguments aListOfVariables is a list of indeterminates Comments Limitations 38 4 Changing the default options for NCMakeGB 38 4 1 ChangeNCMakeGBOptionsloption valuel need to up date description Aliases None 299 Description When the C version of the code is loaded the statement Options NCMakeGB CleanUp 1 ReturnRelations True SupressCOutput False is found in the code The con tent of this command is that CleanUpBasis in by default on ReturnRelations is by default true and SupressCOutput is by default false If one wants to change these defaults then one can use the Change N CMakeGBOptions command For example ChangeNCMakeGBOptions CleanUp 1 ReturnRelations False SupressCOutput False changes the default behaviour so that ReturnRelations is false by default Arguments ThreeRules is a list containing three rules The left hand sides of these rules must be CleanUp ReturnRelations and SupressCOutput Comments Limitations 300 Chapter 39 Generating Universal Gr bner Basis MAY NOT WORK untested in 1999 These commands are useful for generating a universal GB If one starts with a GB with respect to any order this can be used to impose equivalence classes on the set of all order s The commands below characterize these equivalence classes and
144. ab Now the user declares the unknown 273 to be known S3 Either do the End game see 16 3 2 or Go to S1 The above listing is in fact a statement of a 1 prestrategy Sometimes one needs a 2 prestrategy in that the key is equations in 2 unknowns The point is to isolate and to minimize what the user must do This is the crux of a prestrategy 16 3 2 When to stop The prestrategy described above is a loop and we now discuss when to exit the loop The digested equations those in items O1 O2 and O3 often contain the necessary conditions of the desired theorem and the main flow of the proof of the converse If the starting polynomial equations follow as algebraic consequences of the digested equations then we should exit the above loop The starting equations say p 0 px 0 follow as algebraic consequences of the digested equations say q1 0 qx 0 if and only if the Gr bner Basis generated by q1 qx reduces in a standard way the polynomial p to 0 for 1 lt j lt k Checking whether or not this happens is a purely mechanical process When one exits the above loop one is presented with the question of how to finish off the proof of the theorem We shall call the steps required to go from a final spreadsheet to the actual theorem the end game We shall describe some end game technique in 816 3 4 We shall illustrate the end game in 814 4 and 817 4 As we shall see typically the fi
145. aded 280 33 6 2 When your friend installed the code Suppose that your friend has installed the code and he is willing to let you use his version of the code see 6 then you can follow this procedure 1 Have your friend log into his account and change directories into the one which contains the NC code Suppose for definitiveness that it is located in the directory home JoeShmo NC In this case you would type cd home JoeShmo NC 2 Type chmod R uogtr This allows all of these files to be read by anyone These files are available through the web so giving permission to read them should be OK with your friend 3 Edit the file SetNCPath m Make sure that there is a command NCDir home JoeShmo NC 4 Type cd 5 Type chmod u rx NC This allows the directory to be readable by anyone For some reason some computer systems require that a directory be executable I don t know why 6 Type cd 7 Type chmod u rx JoeShmo This allows the directory to be readable by anyone For some reason some computer systems require that an directory be executable I don t know why Your friend may or may not be willing to take this step Now follow the directions in Section 33 6 1 33 7 Informing T X about notebook sty Read this only if you have trouble with Mma s TeX conversion of notebooks This has nothing to do with NCAlgebra we just include it as a convenience Most special NCAlgebra and most special NCGB T
146. ance The standard symbol manipulators Mathematica Maple and Macsyma do not do noncommutative algebra intelligently so it is hard to find out Our group wrote a package NCAlgebra which runs under Mathematica and which is a reasonable beginning We see this package as a competitor to the yellow pad Once you get used to it this might be considerably more effective for hand calculations of modest size Like Mathematica the emphasis is on interaction with the program and flexibility I now prefer it to a yellow pad for many types of calculation and can recommend it to anyone who is good with Mathematica or alternatively is familiar with computers to the extent of doing a substantial amount of word processing Putting a graduate student with computer talent on NCAlgebra also might work well Our experience at UCSD is that students find it easy to learn Indeed anyone can play with our package effortlessly but one would have to be cautious about committing to a long term research project using NC Algebra without being able to make additional commands on his own SYStems is based on NCAlgebra a collection of functions for Mathematica designed to facil itate manipulation and reduction of noncommutative algebraic expressions Specifically it allows computer calculation in an algebra with involution Such computations are common in many areas but our background is operator theory and engineering systems so we are aiming at research in these areas rathe
147. angeOfVariables aListofPolynomials anInteger aString Options ste y o des Gok Pot a eS ae es 4 268 31 3 2 NCXPossibleChangeOfVariables aListofPolynomials Options 269 31 4 Less Valuable Change of Variables Commands 270 31 4 1 NCXMultiplyByMonomials aVerySpecialList 270 31 4 2 NCXAllPossibleChangeOfVariables aListOfPolynomials 270 32 Representing Noncommutative Expressions with Commutative Ones 273 32 0 3 NCXRepresent aListOfExpressions aListOfVariables aListOfDims aL istOfFunctions aListOfExtraRules 222 220 273 VIII DETAILS ON INSTALLATION AND MAINTENANCE ONLY ON THE WEB 275 33 NCAlgebra and NCGB Installation 277 33 1 aime NG Alpe tay shone oe Soke hak se ce he was Joe a ws one Oe bre ee 277 33 2 R ge NGGB g ns a era Se a Ae eld 277 33 3 AERTS SYplems zs fds fas 2h ee oe Te Are RR 277 33 4 Running OldMmaGB which we do not support 278 33 5 Environment Settings stk Sh kerk ah Shed Se aE ke ee ra rl 278 33 5 1 NC Algebra HNOS Variables once ua el 2 eee Redes Be 278 33 5 2 NCGB NC Variables y 2 6 2 2 2 28 E a and te a Ee te wee 278 33 6 How to set up if someone else compiled the code UNIX 279 33 6 1 When your system administrator installed the code 279 33 6 2 When your friend installed the code 280 33 7 Informing TFX about notebook sty sirena Va ha 280 14 NCAlgebra 34 Installing NCGB the Hard
148. anges of variables if NCCOV True by placing parentheses in carefully selected places The experimental commands described in 831 actually automates this change of variable business to some extent 150 Chapter 14 NCProcess An Example The commands NCProcess1 and NCProcess2 were briefly described in 813 In this chapter we derive a theorem due to Bart Gohberg Kaashoek and Van Dooren The reader can skip the statement of this theorem 914 1 if he wishes and go directly to the algebraic problem statement 814 2 14 1 Background Theorem BGKvD A minimal factorization state dim di state dim da of a system A B C 1 corresponds to projections P and P satisfying P Pa 1 provided the state dimension of the 4 B C 1 system is d d2 which has the geometrical interpretation that A and A BC have complimentary invariant subspaces We begin by giving the algebraic statement of the problem Suppose that these factors exist By the Youla Tissi statespace isomorphism theorem there is map m ma Statespace of the product Statespace of the original 14 2 which intertwines the original and the product system Also minimality of the factoring is equivalent to the existence of a two sided inverse n n2 7 to m1 m2 These requirements combine to imply that each of the following expressions is zero 151 152 14 2 The Problem Minimal factors exist if and only if there exist m ma n na
149. ariables 4 1 4 NCCollectSymmetriclexpr teorica 20 2208 a 4 1 5 NCTermsOfDegreelexpr aListOfVariables indices 3 16 19 22 25 25 25 25 26 26 27 32 33 35 43 43 43 43 44 45 45 46 4 2 4 3 4 4 NCAlgebra 4 1 6 INC Solvelexprl expr Wan ae te ee Bed 49 4 1 7 Substitutelexpr aListOfRules Optional OM 49 4 1 8 SubstituteSymmetriclexpr aListOfRules optional On 50 4 1 9 SubstituteSingleReplace expr aListOfRules optional On 50 4 1 10 SubstituteAlllexpr aListOfRules optional On 51 4 1 11 Transformiexpr aListOfkRules a4 sae he we al ea dan 51 4 1 12 GrabIndeterminants aListOfPolynomialsOrRules 51 4 1 13 GrabVariables aListOfPolynomialsOrRules 52 4 1 14 NCBackward expr yc Da E et Se aes eR 52 4 1 15 NCForward expr Lust rer 52 4 1 16 NOMonomiallexpr re Fee net re es 53 4 1 17 NCUnMonomial expr oa een ee 53 Simplification A A 53 4 2 1 NCSimplifyRational expr NCSimplify1Rational expr and NC Simplify2Rational expr o a A A a dar 54 4 2 2 NCom plitl Rational expre lps a at a ek 55 4 2 3 NCSimplify2Rational expr gt o e ake ee ee e 56 Vector Differentiation Bene e ir Bok atra a ee ar Bei 56 431 DireetionalD expr aVariable h ios Her 56 4 3 2 Grad expr aVariable rt No a eee a a a Lund Los 56 4 3 3 Critical Pot expr aVariabl
150. at PX P LDU The first element is the lower triangular matrix L the second element is the diagonal matrix D the third element is the upper triangular matrix U and the fourth is the permutation matrix P the identity is returned if no permutation is needed As an option it may also return a list of the permutations used at each step of the LDU factorization as a fifth element Suppose X is given by X a b 0 0 c d a 0 d The command lo di up P NCLDUDecomposition X returns matrices which in MatrixForm are 1 0 0 a 0 0 lo 0 1 0 dd 0 c 0 1 bxxinv e 1 0 0 d bxxinvlc xd 1 invla x b 0 100 up 0 1 invl c x xd P 010 0 0 1 0 0 1 As matrix X is 3 x 3 one can provide 2 permutation matrices Let those permutations be given by J 3 2 1 and ly 1 3 2 that means e O O or oo me oO m eS or 62 just as in NCPermutationMatrix The command lo di up P NCLDUDecomposition X Permutation 11 12 returns matrices which in MatrixForm are 1 0 0 dO 0 lo 0 1 0 dd 0a 0 1 1 1 0 0 b c 1 inv d x xa 0 001 up 0 1 invla b PS Ve Oe O P 0 0 1 010 It can be checked that PT lo di up P X MatMult Transpose P lo di up P La b 0 0 c dy a 0 d Arguments X is a square matrix n by n The default Options are Permutation False CheckDecomposition False NCSimplifyPivots False StopAutoPermutation False ReturnPermutation
151. ative Gr bner Basis package or want updates look on the NCAlgebra homepage http math ucsd ncalg The program was written with contributions from Dell Kronewitter Eric Rowell Juan Camino Dave Glickenstein Kurt Schneider Victor Shih and Mike Moore and with support from the AFOSR the NSF the Lab for Mathematics and Statistics at UCSD the Ford Motor Co the UCSD Faculty Mentor Program and the US Department of Education February 1996 September 1997 April 1999 October 1999 October 2001 January 2010 124 ReleaseNotesNCGB ReleaseNotes NCGB2 02 1 tex The commands CleanUpBasisQ and Iterations were removed since they did not serve any real purpose ReleaseNotes NCGB3 0 tex NCGB has been seriously overhauled The file stucture was made more modular This facilitates mantainance and the forthcoming NCGB stand alone version The C code was considerably revised to compile under both UNIX and Visual C Added are 1 Stronger change of variable commands Still experimental 2 A command to compute the coefficients of the noncommutative Hilbert series 3 A facility for handling psuedoinverses See NCMakeRelations 4 Some files are loaded automatically on demand 5 Commands which save typing NCAutomaticOrder and NCAddTranspose 6 A method for automatically changing elimination orders when solving algebraic prob lems NCX WholeProcess Part IV NCGB Easy Introduction 125 Chapter 8 Introduction We thi
152. ay SetCommutingFunctionslaj tp and not the reverse See CommutatingOperators and LeftQ Arguments aFunction and another Function are symbols Comments Limitations None 4 11 12 SetNonCommutativeMultiply Antihomomorphism Functions Aliases None Description SetNonCommutativeM ultiply Antihomomorphism b c d sets b c d to be functions of one variable such that for example blanything1 x xanything2 be comes blanything2 blanythingl if ExpandQ b is True blanything2 blanythingl becomes blanythingl anything2 if ExpandQ b is False Common examples are in verse transpose and adjoint NOTE The synonym NCAntihomo is easier to type Arguments Functions is one or more symbols separated by commas Comments Limitations None 4 12 Manipulating an Expression less useful com mands 4 12 1 NCTermArray expr aList anArray Aliases None Description NCTermArraylexpr aList an Array creates an array anArray whose con tents represent the terms of expr sorted by degree The variables an Array variables anArray types and elements such as anArray x x y and anArray x rx x y y to hold the terms with 2 x s and 1 y and 3 x s and 2 y s respectively assuming 95 that aList x y You can reconstruct expr from anArray via ReconstuctTay lor anArray Arguments expr is an algebraic expression aList is a list of variables and an Array is a symbol Comments L
153. ay be the identity matrix equivalently for the L corresponding to K The border vector V is the vector composed of H K and Lj The matrix Mg is the matrix with A entries Noncommutative quadratics which are not hereditary have a similar representation which takes more space to write for such a quadratic in H K For example the border vector for a quadratic in H HT K KT has the form where we have Vi DI RR ag Dh ay KT wie LG KT and _ X _ p Va L1H L H LiK L3 K We should emphasize that the size of the Mo representation of a noncommutative quadratic functions Q H Hy depends on the particular quadratic and not only on the number of arguments of the quadratic There are noncommutative quadratic functions in one variable which have a representation with Mo a 102 x 102 matrix The basic idea of NCMatrixOfQuadratic is that it searches for terms of form Left X x Middle x xY x Right where X H or HF and Y H or H7 for 1 lt i j lt n Terms of the form Left x X and Y x xRight are used to form the left and right vectors Each time the search finds a unique Right Left term causes the length of the right left border vector to be increased by one The term Middle becomes the entries in the matrix Mo 83 Comments Limitations NCMatrixOfQuadratic will try to symmetrize the resulting ma trix Mo IfNCMatrixOfQuadratic is unable to do this an error message will be printed and leftvector
154. cord in Rules temp by using On as its optional 98 argument SaveRuleslexpression will save the evaluated form of expression to the Rules temp SaveRules expression tag message will save the evaluated form of expression to the Rules temp file with a explanatory message Comments Limitations SaveRules ccc where ccc is a string can be used to include comments into the Rules temp file SaveRules mathematical expression will record the mathematical expression without its definitions 4 13 2 SaveRulesQ Aliases SaveRQ Description SaveRulesQ indicates the status of the continuous recording feature of the Substitute commands into the Rules temp file by message and returns True if contin uous records are being made and False if continuous records are not being made Arguments None Comments Limitations Messages can be suppressed or enabled by typing Off SaveRu lesQ Off and On SaveRulesQ On 4 13 3 FunctionOnRules Rules Function1 Function2 optional On Aliases FORules Description It maps Functionl onto the left hand side and Function2 onto the right hand side of each rule in a set of rules and returns the new set of rule For example FunctionOnRules a x b y Sin Cos gives Sinlal Cos x Sin b Cosly Arguments Rules is a single rule or list of rules Functionl and Function2 are any built in Mathematica function NCAlgebra function pure function
155. cription NCXRepresent aListOfExpressions aListOfVariables aListOfDims aListOfFunctions aList OfExraR replaces each occurrence of the variables in the list aListOfVariables with a matrix in com muting symbols of size specified in aListOfDims in the set of relations in the first arguement The argument aListOfDims should be a list of pairs n1 n2 specifying the number of rows and columns of the corresponding variable The fourth arguement is best described by an example If one has the variable x and also the indeterminate Fz then often one wants the Flx to be replaced by a symbolic matrix as well as x If F appears in the fourth list every occurrence of indeterminates F x F y etc will be replaced by matrices of the same size as x y etc with entries that look like Fx11 Fyll This clearly is not appropriate for functions such as Aj and Tp denoting the adjoint and transpose of a symbol But for other functions such as Inv this is quite necessary The output of NCXRepresent is a matrix for each relation in aListOfExpressions The last fifth arguement is a sort of catch all for unusual rules specific to the problem The following are some favorites e z gt IdentityMatrix n If some variable z is to be replaced by an identity matrix of some size then one puts this rule in aListOfExtraRules An important point if constants appear in the list of relations one MUST replace them with auxiliary variables and then use this last arguement t
156. cription SupressAllCOutput is just like SupressCOutput but when this option is on even more on the display to the screen will be supressed Arguments None Comments Limitations Not available before NCAlgebra 1 2 297 298 38 1 3 NCContinueMakeGBliterationNumber Aliases None Description This command allows you to continue running NCMakeGB without resetting the starting relations The command NCMakeGBlaList n Return RelationsToM ma gt False is equivalent to executing the command NCMakeGBlaList k Return RelationsToM ma gt False and then the command NCContinueMakeGB n for any k lt n The command NCMakeGBlaList n is equivalent to executing the command NC MakeG BlaList k ReturnRelationsToM False and then the command NCContinueMakeGB n and then WhatIsPartialG B for any k lt n Arguments iterationNumber is an integer Comments Limitations Not available before NCAlgebra 1 2 38 2 Special GB related commands may not work 38 3 Starting Relations 38 3 1 SortRelations aListOfRules Aliases None Description SortRelations aListOfRules sorts the list of rules aListOfRules First the sorting is done by the number of unknowns in each rule For rules with the same number of unknowns the one which is considered largest is the one which has a largest left hand side in terms of the monomial order Arguments aListOfRules is a list of rules Comments Limitations 38 3 2 SortMonomials
157. ct Systeml System2 118 7 1 2 FeedbackConnect Systeml System2 118 7 1 3 ParallelConnect Systeml System2 118 7 2 Continuous vs Discrete See ade a Yh eo Ba 119 221 ContinuousTimeQ Systeml rss ae rele ss Bere 119 7 2 2 DiscreteTimeQ System oan ay 6 one cay 6 ay nern 119 Ge Transier F Dctiom u 2 1 3 Gehl AAA ARAS ald Bn alten 119 7 3 1 TransferFunction Systemtl 2c pi aes Bose 2232 22 282 0 119 7 4 Systems from Systems Th Gy E A Goi PRS a oe God ae ge Bok 120 CAD DuallSystemll 2 an A Kieler 120 14 2 Inversesystem Systeml a aida ao nisse et 120 III NONCOMMUTATIVE GR BNER BASES NCGB 121 Rele seNotesNOGB vis var ea ae aa Alan 124 IV NCGB Easy Introduction 125 8 Introduction 127 How to read this document 222 DER rs eee 128 9 Simple Demos of Basic Commands 129 9 1 To start a C GB session nennen 129 9 1 1 NCGBSetIntegerOverflow False 2 22 2 2220 130 9 2 Simplifying Expressions se e deci whe np ls ie ne ner 130 9 3 Making a Groebner Base ya rss A le Ar de si Sin ern 131 9 4 Reducing a polynomial by a GB 2 2 a2 4 ai Im Dita I hd 132 941 Simphication was Bes l as A EOI 132 10 NCGB Facilitates Natural Notation 133 10 1 A Simplification example AS A Ball 133 10 2 MakingGB s and Inv Tpl ooo 135 8 NCAlgebra 10 3 Simplification and GB s revisited ona aa e Ye eS 135 10 4 Saving lots of time when typing
158. d Arguments expr is an algebraic expression Comments Limitations None 4 7 9 tplexpr Aliases None Description tp expr takes the transpose of expression expr Note that basic laws like tpla x xb tp b tpla are automatically executed Arguments expr is an algebraic expression Comments Limitations None 78 4 7 10 colexpr Aliases None Description colexpr takes the complex conjugate of expr Note basic laws like co a b co a co b and colaj aj tpla tp aj al Arguments expr is an algebraic expression Comments Limitations None 4 8 Convexity of a NC function This chapter describes commands which do two things One is compute the region on which a noncommutative function is matrix convex The other is take a noncommutative quadratic function variables H Hs etc and give a Gram representation for it that is represent it as V A MV A a vector with the HA entering linearly and M a matrix Other commands are described here but they are subservient to NCConvexityRegion afunction alist options and would not be used independently of it The commands in this chapter are not listed alphabetically but are listed in the presumed order of importance 4 8 1 NCConvexityRegion afunction alistOfVars opts Aliases None Description NCConvexityRegion afunction alistOfVars opts computes the region on which afunction is matrix convex with respect to alistOfVars It performs thr
159. declared known as well as A B and C declared known See Chapter 15 4 for the precise call The output is This polynomial is not written as a rule since it has a collected form as described in 819 2 This collected form can be used to assist a person in finding decompositions see HS 21f the user does not notice it at this point it will become very obvious with an additional run of NCProcess1 3There is limit of 2 iterations 155 THE ORDER IS NOW THE FOLLOWING A lt B lt U lt P amp m Km n lt m lt a lt b lt cec lt ze lt f lt g THE FOLLOWING VARIABLES HAVE BEEN SOLVED FOR a C e g The corresponding rules are the following arn Am The expressions with unknown variables and knowns A B C Pi P P P 1P A 1 1P 0 AP 1P A4 1 1 IP BEL 0 USER CREATIONS APPEAR BELOW a a a a ee SOME RELATIONS WHICH APPEAR BELOW meem a NA Y BE UNDIGESTED m E o A A A A A A A A A UI THE FOLLOWING VARIABLES HAVE NOT BEEN SOLVED FOR m1 M2 N1 N2 2 0 The expressions with unknown variables n1 m and knowns P 2 0 The expressions with unknown variables n2 m2 and knowns nam 1 4 0 The expressions with unknown variables n2 n1 ma m and knowns meng gt 1 Im n Note that the equations in the above display which are in the undigested section i e below the lowest set of bold lines are repeats of those which are in the digested section i e abo
160. define NCXKillConstantTerms to be the identity function i e NCXKill ConstantTerms list_ list 31 1 5 Sort list of candidates by number of terms Now we sort the candidates by their length where by length we mean the number of terms in the polynomial It generally turns out that the smallest polynomials are more likely to work so by sorting in such a way that the polynomials with the least number of terms come first we will probably find the motivated unknown if one exists earlier than if we had a random order 31 1 6 Multiply through by monomials Default is off Sometimes it turns out that we need to find the motivated unknown we actually need to multiply the polynomial P by some monomial on the left and or right Then this new polynomial will admit a motivated unknown This step adds new pairs P C where P is a LPR where P is from the original list and L and R are monomials L and R are dtermined in the following way Given a pair P C from the original list we find all prefixes L of the leading term of C and all suffixes R of the leading term of C Prefixes of a monomial M are monomials on the left of M and suffixes are monomials on the right Thus the monomial xyz has prefixes x xy and xyz and has suffixes z yz and xyz We add to our list pairs LP C PR C and LPR C These candidate pairs are added at the end of the list so that they are tried after the candidates without multiplying through by monomials
161. dering A non elimination order This is the ordering which was used in all demos appearing before this section It puts high degree monomials high in the order Thus it tries to decrease the total degree of expressions 193 18 3 Multigraded lex ordering A variety of elimina tion orders There are other useful monomial orders which one can use other than graded lex and lex Another type of order is what we call multigraded lex and is a mixture of graded lex and lex order This multigraded order is set using SetMonomialOrder SetKnowns and SetUnknowns which are described in Section 18 4 As an example suppose that we execute the following commands SetMonomial0rder A B C a b c d e f We use the notation A lt B lt C lt lt a lt b lt c lt lt d lt ec lt f to denote this order For an intuitive idea of why multigraded lex is helpful we think of A Band C as corresponding to variables in some engineering problem which represent quantities which are known and a b c d e and f to be unknown The fact that d e and f are in the top level indicates that we are very interested in solving for d e and f in terms of A B C a b and c but are not willing to solve for b in terms of expressions involving either d e or f For example l d gt axxaxxAxxb 2 dxxaxxAxxb gt a 3 ex xd gt dxx e 1 2 3 4 b xa gt a x xb 5 ax xb b gt bx xa 6 6 a gt AxxBxxAxxBxxAxxB This order induces an order on monomial
162. determinant found in aMonomialOrder then any indeterminant whose symbolic representation is a function of x will appear next to x NCAutomaticOrder a b a Inv a tp a tp b would set the order to be a lt tpla lt Inva lt b lt tplb 138 Chapter 11 Demo on NCGB Matrix Computation The functions used in this notebook require the C NCGB module 11 1 The Partially Prescribed Inverse Problem This is a type of problem known as a matrix completion problem This particular one was suggested by Hugo Woerdeman We are grateful to him for discussions Problem Given matrices a b c and d we wish to determine under what conditions there exists matrices x y z and w such that the block matrices aa w c y b d z are inverses of each other Also we wish to find formulas for x y z and w This problem was solved in a paper by W W Barrett C R Johnson M E Lundquist and H Woerderman BJLW where they showed it splits into several cases depending upon which of a b c and d are invertible In our example we assume that a b c and d are invertible and discover the result which they obtain in this case First we set all of our variables to be noncommutative and set up the relations which make matrices a b c and d invertible Inverses in this particular problem are taken to be two sided Strong invertibility relations help when one is trying to get an idea of the solution of the problem In 1
163. done but just write down the answer Out 8 1E12 tp C2 tpliE21 tp C2 b gt iE12 E11 B1 tp iE21 tp E11 Bi We can also complete the square for the expression in c and put that expression in the form c AMARA 4 We also assume that c A 0 Out 9 tp B2 E12 tp B2 tp E21 C1 1E21 E22 c gt er C1 tp iE12 tp E22 tp B2 E11 iE21 E22 181 2 2 tp B2 tp E11 tp iE12 tp E22 Next we do some petty bookkeeping to get transposes of the above two rules Once we have solved for b and c we can then take the transpose of each of these rules to solve for tp b and tp c In our strategy session these are simply two additional unknowns which we can now eliminate In 10 bpoly RuleToPoly brule In 11 cpoly RuleToPoly crule In 12 newpolys bpoly cpoly tpl bpoly tp cpoly In 13 newrules PolyToRule newpolys In 14 newrules newrules tp gt Tp In 15 newrules newrules PolyToRule transE Dut 15 b gt iE12 Tp C2 iE12 E11 B1 Tp b gt C2 iE21 Tp B1 E11 iE21 c gt Tp B2 E12 C1 iE21 E22 Tp B2 E11 iE21 E22 Tp c gt E21 B2 E22 iE12 Tp C1 E22 iE12 E11 B2 In 14 takes these four rules and replaces tp with Tp In 15 simplifies these equations by making the substitutions for the transposes of E which we have been using Now we have
164. dundentByCategory aListOfPolynomi SmallBasis aListOfPolynomials anotherListOfPoly als history 259 nomials iter 216 RemoveRedundentByCategory 259 SmallBasisByCategory aListOfPolynomials iter RR True 199 217 RRByCat True 199 SortMonomials aListOf Variables 298 RuleToPoly aRule 214 SortRelations aListOfRules 298 RuleToPoly PolyToRule r r 136 Substitutelexpr aListOfRules Optional On 50 SubstituteAlllexpr aListOfRules optional On SaveRulesfexpression optional tag message 51 98 SubstituteSingleReplace expr aListOfRules op SaveRulesQ 98 tional On 50 SB gt False 199 SubstituteSymmetric expr aListOfRules optional SBByCat True 199 On 50 SBFlatOrder False 199 SupressAllCOutput False very little outp ut SchurComplementBtm M 67 to the screen 297 SchurComplementTop M 67 SupressCOutput False less output to the screen SeelaListOfIntegers 106 297 SeeTeX or SeeTeX anInteger 105 SelfA djointQ aSymbol 87 Testing NCGB GBTEST 243 SeriesConnect Systeml System2 118 TeX True 203 SesquilinearQ aFunction 91 TimesToN CM expr 60 SetBilinear Functions 91 ToHTMLString expression 303 SetCleanUpBasis n Untested in 1999 212 tplexpr 77 SetColsometry Symbols 88 tpMat u 60 SetCommutativela b c 74 TransferFunction System1 120 Set CommutingFunctions aFunction anotherFunc Transform expr aListOfRules 51 tion 94 Set CommutingOperators
165. e es ai ore ae da 57 4 3 4 NCHessian afunction X1 Hi Xx Hr 57 Block Matrix Manipulation Us sh an sea AAN 58 44l MMS ls ea E SES EN 59 AAD E E OMe hear Ne pia tong a ne ate Yes 59 AALS CO MAU ses is SEA A o a 59 ALAAN A A E De ee 60 4 4 5 NCMToMatMult expr tc A ea be eae 60 44 6 Dimes LONG Mee pt so og Ae gt A a eee eA tt 60 4 4 7 Special Operations with Block Matrices 61 4 4 8 NCLDUDecompositionlaMatrix Options 61 4 4 9 NCAllPermutationLDU aMatrix 22 ee ee 2240 64 4 4 10 NCInverselaSquareMatrix 222 o 64 4 4 11 NCPermutationMatrix aListOflntegers 65 4 4 12 NCMatrixToPermutation aMatrix lt lt coco0o cooocoss 65 4 4 13 NCCheckPermutation SizeOfMatrix aListOfPermutations 65 44 14 DiaplaMatrie e dd de e er re Ye ee os eS 66 4 4 15 Cascade Polo ar e ad ap 66 4410 A ig a Ei Sees Be og ee se ee ee erg 66 4 4 17 Redheffer P 2 Acti 4 2 A ha BAG ee Bra a oe Ben 67 4 4 18 DilationHalmos ers ara ele a ale aca eta 67 4 4 19 Schul Gomplement Top Mi e 242 2 Bok ER ae 67 4 4 20 Seh rComplementBta Mi o pia pa Ber min are 67 NCAlgebra 5 4 5 4 6 4 7 4 8 4 9 4 10 Complex Analyse rta aa ra Dab hn Se ich S 68 Ad AMO E he Gk Oi A Pe Be Red 68 ALG Womplechules 2 2785 as ee 8 2 u 2 2 a Biene ete 71 4 5 3 ComplexCoordinates expr lt lt ts ae we Oe wen 72 4 5 4 ComplexDfexpr a
166. e Send files m preferably as packages to ncalg ucsd edu Also we would like a file doc which tells how to use it Also we would like a SYSfileTest m which automatically tests your program This is not essential See Diff NCTest for an example of the format for these files Usually you can just modify a copy of this file 315 316 Chapter 44 What SYStems Does The tools in the SYSTEMS package are designed to assist in studying various systems using the following commonplace idea see BHW for more detail Define a finite gain dissipative system to be a system for which tl tl lout 2dt lt K IW Pat t0 t0 where K is a constant and x t0 0 See Figure 1 If K 1 the system will be called dissipative In circuit theory these would be called passive This agrees with the notion of dissipative in W HM with respect to the supply rate W out Our notation here is like that one puts in the computer Define a storage or energy function on the state space to be a nonnegative function e satisfying tl f lout W dt lt e x t0 e x t1 and e 0 0 Hill Moylan HM showed that a system is dissipative iff an energy storage function possibly extended real valued exists Under controllability assumptions there exists an energy function with finite values We find it convenient to say that a system of the above form is e dissipative provided that the energy Hamiltonian H defined by H out out
167. e ae xet grt PerpL x el riz 0 PerpRlx z rr 0 PerpL2 r el al 1 egt el gl PerpR2lx dl al 1 gtz rl F gl 223 22 1 1 NCAddTransposelaListOfExpressions Aliases Description One can save time when working in an algebra with transposes or adjoints by using the command NCAddTranspose These commands symmetrize a set of relations by applying tp to the relations and returning a list with the new expressions appended to the old ones This saves the user the trouble of typing both a b and tpla tplb Arguments aListOfErpressions is a list of expressions Comments Limitations 22 1 2 NCAddAdjoint aListOfExpressions Aliases Description One can save time when working in an algebra with transposes or adjoints by using the command NCAddAdjoint These commands symmetrize a set of relations by applying aj to the relations and returning a list with the new expressions appended to the old ones This saves the user the trouble of typing both a b and ajla ajlb Arguments aListOfErpressions is a list of expressions Comments Limitations 22 1 3 Pulling important equations into your session from an NCPro cess output See GetCategories in 23 0 5 22 1 4 Help in typing Monomial Orders See NCAutomaticOrder Section 18 4 6 224 Chapter 23 Retrieving Categories and Regular Output Crucial to our approach to semi automatic discovery of fo
168. e NCProcess command Now we demonstrate the NC Process command by solving FAC as already discussed in Chapter 14 While we show an interactive session the user probably will want to type the commands into a file and load them into your session This is standard practice among Mathematica users and saves lots of time As shown in 814 2 the prestrategy starts as follows In 1 Get NCGB m In 2 SetNonCommutative A B C0 m1 m2 n1 n2 In 3 SetKnowns A B C In 4 SetUnknowns m1 m2 n1 n2 a b c e f g In 5 FAC A mi ml a m2x x fx x c Ax m2 m2 e B mix b m2x x f c CO mi g COxx m2 nix mi 1 n1 m2 n2 m1 n2 m2 1 mi n1 m2 n2 1 In 6 result NCProcess1 FAC 2 Spreadsheet1 164 The first command simply loads the noncommutative Gr bner basis package into Math ematica Then we set the variables to be noncommutative The third and fourth commands sets the monomial order that will be used in solving for and eliminating variables as explained in Chapter 18 The list FAC is the set of relations that describe the problem as explained in 814 2 The call to NCProcess1 will run two iterations on FAC before creating the file Spreadsheet1 dvi and returning the final result as Mathematica output The file Spreadsheet1 dvi is the same as the one which was produced in Chapter 16 It exists outside of Mathematica and is only for viewing It cannot be used to create a list
169. e above expressions This is the W which maximizes Hamiltonian ruCritW W gt tp B1 x GEx x z 2 tp D21 x tp b z GEz x z 2 CritW x_ z_ b_ tp B1 x GEx x z1 2 tp D21 x tp b GEz x z 2 and you get sHWo tp A x GEx x z 2 tp C1 x C1 x tp GEx x z Alx 2 tp GEz x z a z 2 tplalz GEz x z 2 tp C1 x D12 x c z tp C2 x1 tp b z GEz x z 2 tp GEx x z B2 x c z 2 tp GEz x z blz C2 x 2 tplclz eilx clz tplclz tp B2 x GEx x z 2 tplelz tp D12 x C1 x tp GEx x z B1 x tp B1 x GEx x z 4 tp GEx x z B1 x tp D21 x tp b z GEz x z 4 tp GEz x z blz D21 x tp B1 x GEx x z 4 tp GEz x z blz e2 x tpl b z GEz x z 4 This is the U which minimizes Hamiltonian ruCritU U gt invleilx tp B2 x GEx x z 2 inv e1 x tp D12 x C1 x CritU x_ z_ inv le1 x tp B2 x GEx x z 2 invlei lx tp D12 x C1 x END OF FILE HH IHR HIHHH HEHE END OF FILE 323 45 2 1 Derivation of CritW and sHWo Now the demo starts by taking the Hamiltonian for the closed loop system sHW and optimizing it in W to get what we denote sHWo Soon the demo requires serious knowledge of BHW so if the reader has problems he is urged to read SYSHinfTAC m a file which gives a rather comple
170. e algebraically true and not those which require analysis or topology the use of this algorithm alone has a limited use Insights gained from analysis 3From this ordering on indeterinates one induces a order on polynomials which is different than we used before There we used a graded order here we use a strict lexicographic order 4There need not be lt n equations in this list and there need not be any equation in just one variable 172 during a computer session could be added as algebraic hypotheses while the session is in progress Decisions can take a variety of forms and can involve recognizing a Riccati equation recognizing that a particular square matrix is onto and so invertible recognizing that a particular theorem now applies to the problem etc The user would then have to record and justify these decisions independently of the computer run gt While a strategy allows for human intervention the intervention must follow certain rigid rules for the computer session to be considered a strategy 16 3 1 Prestrategy The idea of a prestrategy is S0 Set C see footnote in 16 1 on 13 S1 Run NCProcessl which creates a display of the output see O1 05 in 815 2 and look at the list of equations involving only one unknown say a particular equation E17 contains only 23 S2 The user must now make a decision about equations in x3 e g E17 is a Riccati equation so I shall not try to simplify it but leave it for Matl
171. e effect of creating an LDU decomposition where D is a block diagonal matrix with 1x1 and 2x2 blocks along the diagonal Note The pivots are precisely the diagonal entries of D Setting Stop2by2Pivoting True will halt 2 x 2 block pivoting returning instead the remaining undecomposed block with zeros along the diagonal as a final block diagonal entry Comments Limitations NCLDUDecomposition automatically assumes invertible any expressions pivot it needs to be invertible Also the 2 x 2 pivoting strategy assumes that the matrix is symmetric in that it only ensures that the 2 1 entry is nonzero assuming by symmetry that the 1 2 is also zero The pivoting strategy chooses its pivots based upon the smallest leaf count invoking the Mathematica command LeafCount It will choose the smallest nonzero diagonal element basing size upon the leaf count This strategy is incorporated in an attempt to find the simplest LDU factorization possible If a 2 x 2 pivot is used and ReturnPermutation is set to True then at the end of the permutation list returned will be the string 2by2 permutation 64 4 4 9 NCAllPermutationLDU laMatrix Aliases None Description NCAllPermutationLDU aMatrix returns the LDU decomposition of a ma trix for all possible permutations The code cycles through all possible permutations and calls NCLDUDecomposition for each one Arguments aMatrix is a square matrix The default options for NCA11Permutation
172. e monomial order which is currently in force in our session For example let us continue the session above with In 9 ListOfRules2 PolyToRulel ourGB Out 9 xx x gt a b gt a y x gt a a x gt a x ka gt a y ka gt a arka gt a To reduce ListOfPolynomials by ListOfRules2 use the command Reduction ListofPolynomials ListofRules2 For example to reduce the polynomial poly arkxkkykkxkkx Xkkakkxkky KKKKKKYKKY in our session type In 10 Reduction poly ListOfRules2 9 4 1 Simplification via GB s The way the previously described command NC Simpli fyAll works is NCSimplifyAlll ListofPolynomials ListofPolynomials2 Reduction ListofPolynomials PolyToRule NCMakeGB ListofPolynomials2 10 Chapter 10 NCGB Facilitates Natural Notation Now we turn to a more complicated though mathematically intuitive notation Also we give some more examples of Simplification and GB manufacture We shall use the variables y Invly Inv 1 y a and x 10 1 In NCAlgebra lower case letters are noncommutative by default and functions of non commutative variables are noncommutative so the SetNonCommutative command while harmless is not necessary Using Inv has the advantage that our TeX display commands recognize it and treat it wisely Also later we see that the command NCMakeRelations generates defining relations for Inv automatically 10 1 A Simplification example We want to simplify a
173. e slow Specifies whether or not to use NCFlatS mallBasis which takes the length lexicographic monomial order for the small basis algorithm DegreeCap 1 This might be faster than the above two options Sets the DegreeCap for NCMakeGB within DegreeSumCap 1 NCProcess The DegreeCap for SmallBasis is set to one higher 1 means there is no cap Sets the DegreeSumCap for NCMakeGB NCCV True within NCProcess The DegreeSumCap for SmallBasis is set to one higher Turns on NCCollectOnVariables which collects on the knowns 205 NCProcess options continued NCGBNag True Setting NCGBNag True will cause the current partial GB to be called into Mathematica output to the screen and saved to a file after each iteration NCShortFormulas 1 Sets a maximum length for the expres sions output by NCProcess Longer relations will simply be eliminated Eg NCShortFor mulas 200 1 means no expressions will TeX True be eliminated Produces a TeX Spreadsheet which pops NCGBFastRegularOutput False up on the screen if you are setup properly Specifies whether or not to do processing of equations by the C kernel rather than Mathematica This is much faster but not NCKnownIndeterminant quite as pretty as with Mathematica An indeterminant in this list will only change the NCProcess display of knowns and unknowns Indeterminants lower in the order than the group containing
174. e space solutions to standard Hz and H control problems IEEE Trans Auto Control 34 1989 831 847 HM D J Hill and P J Moylan Dissipative Dynamical Systems Basic Input Output and State Properties J Franklin Inst v 309 No 5 May 1980 pp 327 357 HWZ J W Helton M L Walker W Zhan Compensators which have access to the command signal preprint IA A Isidori and A Astolfi Nonlinear A control via measurement feedback J Math Systems Estimation and Control 2 1992 pp 31 34 IB A Isidori and C I Byrnes Output Regulation of Nonlinear Systems IEEE Trans Aut Contr V 35 No 2 Feb 1990 pp 131 140 PAJ I R Petersen B D O Anderson and E A Jonckheere A First Principles Solution to the Non Singular A Control Problem Int J Robust and Nonlinear Control v 1 1991 pp 171 185 V2 A J Van der Schaft L2 gain analysis of nonlinear systems and nonlinear Hx control IEEE Trans Auto Control 37 1992 pp 770 784 W J C Willems Dissipative Dynamical Systems Part I general theory Arch Rat Mech Anal 45 1972 321 351 335 336 Chapter 47 Glossary For System Hamiltonian Calculations This glossary contains expressions available for manipulation functions available for evaluation and substitution rules all prefaced by ru Hamiltonians These formulas contain mixed state and dual variables IA systens sec 5 2 HWUY Hamiltonian for the system in SYSDeflA
175. e that we are using Tp to denote transpose and Inv to denote inverse which is inconsistent with the NC Algebra package which uses tp and inv respectively This is done intentionally to ensure that actual transposes and inverses are not taken within the GBA The relations can be easily converted later if it is necessary to do mathematical operations on them This is the file cntrl SetNonCommutative E11 E22 E12 E21 Inv E11 Inv E22 Inv E12 Inv E21 Tp inv E1111 TplInv E22 Tp Inv amp 12 Tp inv E21 Tp E11 Tp E22 Tp E12 Tp E21 These relations imply that the Eij generate a symmetric quadratic form transE Tp E211 B12 Tp E11 E11 Tp E22 E22 Tp E12 E21 Tp Inv E21 Inv E12 Tp Inv E11 Inv E11 Tp Inv E22 Inv E22 Tp Inv E12 Inv E21 These relations assume that everything is invertible inverseE E11 Inv E11 1 Inv E11 x E11 1 E12 Inv E12 1 Inv E12 E12 1 E21 Inv E21 1 Inv E21 E21 1 E22 Inv E22 1 Inv E22 E22 1 Tp E11 Tp Inv E11 1 Tp Inv E11 Tp E11 1 Tp E12 Tp Inv E12 1 Tp Inv E12 Tp E12 1 Tp E21 Tp Inv E21 1 Tp Inv E21 Tp E21 1 Tp E22 Tp Inv E22 1 Tp Inv E22 Tp E22 1 SetNonCommutative A Tp A B1 Tp B1 B2 Tp B2 C1 Tp c1 C2 Tp C2 b Tp b c Tp c a Tp a These are the Hamiltonian equations Hxx E11 A Tp A Tp E11 Tp C1 C1
176. ebra Part I NCAlgebra 21 NCALGEBRA Version 4 0 Compatible with Mathematica version 5 to 7 J William Helton Mauricio C de Oliveira and Mark Stankus Math Dept UCSD Robert L Miller General Atomic Corp La Jolla California 92093 Copyright by Helton and Miller on June 1991 Feb 1994 Copyright by Helton Miller and Stankus on March 1996 Copyright by Helton Miller and Stankus on September 2001 Copyright by Helton Miller Stankus and de Oliveira on January 2010 All Rights Reserved If you would like to try the NCAlgebra package or want updates go to the NCAlgebra web site http math ucsd edu ncalg or contact ncalg ucsd edu or MathSource wri com The basic NCAlgebra program was written by the authors and David Hurst Daniel Lamm Orlando Merino Robert Obarr Henry Pfister Stan Yoshinobu Phillipe Bergman Dell Kro newitter and Eric Rowell Various additions include contributions by Dave Glickstein Juan Camino Jeff Ovall Tony Mendes and Tony Shaheen The Mathematica C hybrid was developed with Kurt Schneider Victor Shih and Mike Moore Control demos are coauthored with Mike Walker Simplification commands are based on theory developed by Bill Helton John Wavrik and Mark Stankus The beginnings of the program come from eran slac This program was written with support from the AFOSR the NSF the Lab for Mathematics and Statistics at UCSD the UCSD Faculty Mentor Program and the US Department of Education 22
177. ed in the course of running NC Process This is valuable since the user will ordinarily know that a polynomial of a very high degree will not be useful to him hence there is no reason to produce it It is not the time that it takes to produce a large polynomial that is the primary factor rather it is the reduction algorithms that will get bogged down trying to remove it Degree caps can prevent the algorithm from ever producing polynomials over a certain degree or combining polynomials over a certain degree and the user will still be left with a generating set for the ideal generated by the input relations There are two different options associated with degree caps For instance DegreeCap 8 would prevent a polynomial of degree 8 or higher from combining with a polynomial of higher degree DegreeSumCap 10 would prevent two polynomials whose degrees add up to 10 or more from combining Degree caps could prevent an important relation from being created so when there is a lack of progress raising the degree caps as well as the iteration number would be the next step WE URGE USE OF DEGREE CAPS THEY SAVE A LOT OF TIME In addition DegreeCap and DegreeSumCap are options which cap the degree of poly nomials occurring in NCMakeGB Indeed calling DegreeCap in NC Process just sets the De greeCap for running NCMakeGB inside of NC Process 15 3 3 MainUnknowns gt aListO fIndeterminates If aListO fIndeterminates are given then the out
178. ed polynomial and r is the right side of term 1 of collected polynomial etc In the example above the list of left sides is 202 E22 iE12 gt E21 E22 iE12 E11 gt E21 E22 iE12 E11 gt E12 E11 iE21 E22 gt E21 E22 iE12 E11 gt E12 E11 iE21 E22 gt E22 1E12 gt E21 E22 iE12 E11 and the list of right sides is E12 E11 iE21 E22 iE21 E22 E12 E11 iE21 E22 E12 E11 iE21 E22 E12 E11 iE21 E22 iE21 E22 The NCProcess option NCCV True If the NC Process option NCCV True is set NC Process will perform the sort of collec tion described in Section 19 2 Specifically NCCollectOnVars OutputofGroebner Basis Algorithms KnownIndeterminates is called before the result is output to TX This has been shown to be useful in the discovery of motivated unknowns as discussed in HS 19 3 Turning screen output off In the notebook environment you will definitely want to turn a lot of NCProcess screen output off Too much output drowns the notebook In fact we are so sure of this that suppressing diagnostic output is the default Turning it on or off or on is done with the Options PrintScreenOutput True PrintScreenOutput False The default is PrintScreenOutput False also see the command NCGBMmaDiagnostics True NCGBMmaDiagnostics False which turns on and off more dia
179. ed relations in the simplified second partial GB 3 The undigested relations in the simplified second partial GB In practice the user runs NC Process then looks at the file fileName in order to get ideas for the next step When the user decides on the next step he can use some of the lists of Mathematica output in addition to some new relations as inputs for the next call to NCProcess There are many options for NCProcess Arguments aListO f Polynomials is a list of polynomials iterations is a natural number 2 fileName is a character string If fileNames s last four characters are not dvi then dvi is appended to fileName Comments Limitations Not available before NC Algebra 1 2 If you are using NCPro cess in the Windows environment you will have to quit the dvi previewer to continue your Mathematica session The command NCProcess calls NCMakeGBlaListOfPolynomials iters NCMakeGB is an algorithm for producing a partial Gr bner basis This produces many new relations whose solution set is the same as the solution set for aListO f Polynomials Typically many of the relations follow from other relations within the same output There are many options for NC Process which remove mathematically redundant relations before generating the spreadsheet in fileName and lists 2 and 3 of the Mathematica output The various options as well as the default options for NC Process are described in 819 15 2 2 Examples He
180. ee main op erations First it computes the Hessian with respect to alistOfVars see NCHessian Then using NCMatrixOfQuadratic the Hessian is factored into the form v Mv Fi nally depending on the option AllPermutation either NCAllPermutationLDU or NCLDUDecomposition is called to compute the LDU factorization of M the default be ing AllPermutation gt NCLDUDecomposition If D ends up being diagonal then a list of the diagonal elements of D is returned If D ends up being block diagonal with 2 x 2 blocks then a message is printed out and the list diagonalentries subdiagonalentries subdi is returned The region of convexity of afunction with respect to alistOfVars equals the closure in a certain sense of the set of matrices which makes all diagonal entries 79 positive If there are non zero subdiagonal entries then afunction is typically not matrix convex on any open set Options permit the user to select a range of different permutation matrices thereby producing several possibly distinct diagonal matrices D EXAMPLE NCConvexityRegion z xy y xx x y gives L D tp L gave non trivial blocks so the output list is diagonal subdiagonal subdiagonal 0 0 2 2 While NCConvexityRegion z x xy y x xx x y All Permutation True gives Middle matrix is size 2 X 2 At most 2 permutations possible m L D tp L gave non trivial blocks so the output list is diagonal subdiagonal
181. elp in typing Monomial Orders See NCAutomaticOrder Section 18 4 6223 23 Retrieving Categories and Regular Output 225 23 0 5 GetCategorylaListOfVariables NCPAns 295 23 0 6 GetCategory aCharString NCPAns 2 2 2222 22 225 geet Clear NOPANS au sa A EN ANS a Ne A 226 23 KEXA Pl ds e e ats eu ats AeA 1G a ee a Ease ed 227 23 2 Creating Categ ri S 24 2 a e a aa a a 227 23 2 1 CreateCategories aListOfPolynomials aName 227 23 3 RegularOutputlaListOfPolynomials fileName 227 23 3 1 RegularOutput aListOfPolynomials fileName 227 23 4 How to Really Change Regular Output 2m 228 24 The Dimension of the Solution Set of a Set of Polynomial Equations 229 24 1 The Commuting Case cle re aa Bash ar 229 24 2 Noncommutative Case Gelfand Kirillov dimension 229 24 3 References 2 82 he eee a eh Rad 232 DAM Commands a e ae is A Dee E 232 24 4 1 NCHilbertCoefhcient integerl aListOfExpressions integer2 anOption 233 24 4 2 NCX Vector Dimension alist War 234 25 Commands which are not supported 235 25 1 A Mathematica Groebner Basis Package Without C 235 25 2 NCXWholeProcess polys orderList fileName groblters 235 12 NCAlgebra 26 Getting NCALGEBRA and NCGB 237 26 1 Getting NCAlgebra and NCGB off the Web 2 2 22 22 237 26 2 Getting NCAlgebra and NCGB through anonymous ftp 231 26 21 The SAA les o
182. ement in the third list of result2 In 18 equ2 result2 3 13 Out 18 E22 Inv E12 Tp A E12 gt Tp E12 A Tp Inv E12 E22 Tp E12 B1 Tp B1 E12 E22 E22 E22 E22 VVVVVVVVV VV VV Inv E12 Inv E12 Inv E12 Inv E12 xk xk xk xk E11 B2 Tp C1 E11 B1 E11 B2 Tp E12 B2 Tp B2 E12 E22 Inv E12 Tp C1 Tp B2 E12 Tp E12 B2 C1 Tp Inv E12 E22 E22 Inv E12 E11 A Tp Inv E12 E22 E22 Inv E12 E11 B1 Tp B1 E12 E22 Inv E12 E11 B2 Tp B2 E12 E22 Inv E12 Tp A E11 Tp Inv E12 E22 Tp E12 B1 Tp B1 E11 Tp Inv E12 E22 Tp E12 B2 Tp B2 E11 Tp Inv E12 E22 183 C1 Tp Inv E12 E22 Tp B2 E11 Tp Inv E12 E22 Tp B1 E11 Tp Inv E12 E22 Tp B2 E11 Tp Inv E12 E22 Now we can see from the factored form in the spreadsheet that this equation is symmetric It would not take an experienced mathematician long to realize that by multiplying this equation on the left by E1 Es and on the right by Es Ex we will have an equation in one unknown In 19 equ3 NCExpand E12 Inv E22 equ2 Inv E22 E21 Inspection of equ3 shows that the following valid substitution would be helpful In 20 equ4 Transformlequ3 Inv E22 E22 gt 1 F12 Inv E12 g
183. ems A summary of files is given below See the SYSTEMS file for further description The first time you run SYStem s you should probably test to see that everything is in order To do this you type math lt lt SYStems m lt lt SYSTEST m while ignoreing lots of stuff which scrolls by on the screen What counts comes at the end You should see a list which says Test1 is True Test2 is True etc 313 314 Systems Definitions File Description SYSDef1PortLin m SYSDefIA m Loads the system definitions and hamiltonian for an Input Affine system see EXAMPLE 5 2 SYSDefWIA m Definition of a WIA W Input Affine system SYSTEMS file could be edited to replace loading of SYSDef with loading of this file SYSDefWAccess m SYSDef2x2 m Definition of two 2 ports and the coupling laws for coupling them as well as hamiltonians UTILITY FILES File Description SYSSpecialize m Rules for converting systems from nonlinear to linear notation changes etc SYSLinearize m Linearize system around O or around the diagonal x z We do not support this one SYSHinfFormulas m Formulas used in study of H infinity control SYSHinf2x2Formulas m Formulas used in study of H infinity control FILES CORRESPONDING TO RESEARCH ARTICLES File Description SYSHinfTAC m An executable paper on nonlinear H infinity control together with rules to allow conversion to linear case Primarily for study of IA systems Chapter 43 How To Contribut
184. er The simplest elimination order 18 2 Graded lex ordering A non elimination order 18 3 Multigraded lex ordering A variety of elimination orders 18 4 The list of commands y fate gl ns a A a Eo aS 18 4 1 SetMonomialOrder aListOfListsOfIndeterminates 18 4 2 SetUnknownslaListOfIndeterminates 18 4 3 SetUnKnowns aListOfVariables lt lt lt 18 4 4 ClearMonomialOrder caia re ana e Saye 18 4 5 PrintMonomialOrder coastal se a ae dere 18 4 6 NCAutomaticOrder aMonomialOrder aListOfPolynomials 18 5 Fancier Order Setting Commands 4 r ra a a8 DIR aid 18 5 1 SetMonomialOrderlaListOflndeterminants n 18 5 2 Clear MonomialOrderN Dl ias 242 a2 oS wa ea 18 5 3 ClearMonomialOrder Ulla Free a a 18 5 4 WhatIsMultiplicityOfGrading 18 5 5 WhatlsSetOfIndeterminants n a o 191 10 NCAlgebra 19 More NCProcess Options 199 19 1 Creating small generating sets RR True RRByCat True SB False SBByCat True ee A e A A Ra 199 192 NGCGHSCEO IY aie oy er ee cha De Ka 200 19 2 1 NCCollectOnVarslaListOfExpressions aListOfVariables 200 19 3 Turning screen output off ea ee E Bike oko re on 202 1924 Oar o AA A ee 202 19 4 1 Turning screen output off PrintScreenOutput False 203 TIA 2 ER MO Ar NE En ne SRR a SA Net 203 1943 ASCH False ku ok ee a A 203 19 4 4 NCGBFas
185. ere rudualx x gt IGE1 p PP rudualy z gt IGE2 p PP CHANGE OF NOTATION rue tp D12 x_ D12 x_ gt e1 x D21 x_ tp D21 x_ gt e2 x rubtog tp GEz x_ z_ b z_ gt q x z ruXXYYI ruGEz0 ruXX ruYYI where ruXX GEx x_ x_ gt 2 XX x ruYYI GEx x_ 0 gt 2 YYI x rulAXYI rulAX rulAYI where rulAX replace terms linear in A or tp A using IAX x 0 see 4 4b rulAYI replace terms linear in A or tp A using IAYI x 0 see 4 4c FOR ENERGY ANSATZ EXPERIMENTATION AS IN BHW EnergyGuess ruleGE_ generate sHWo with the Ansatz on the energy function given by ruleGE and a b and c are substituted out according to the RECIPE EnergyGuess2 ruleGE rulea same but a is substituted out by the user provided rulea EnergyGuessDGKF ruleGE_ same with DGKF simplifying assumptions EnergyGuess2DGKF ruleGE ruaDGKF same with DGKF simplifying assumptions Index NCGBSIntegerOverflow False 130 NC Binary Dir 278 NC Binary Name 278 NC Loaded NCGB 278 NC LongLoadTime 278 ajlexpr 77 ajMat u 59 Aliases 108 AllOrders aListofPolynomials aListofIndetermi nants 301 ASCII False 203 BilinearQ aFunction 92 Cascade P K 66 CEEP 100 Chain P 66 ChangeNCMakeGB Options option value need to update description 299 CleanUp 212 CleanUpBasisQ Untested in 1999 212 Clear NCPAns 226 ClearMonomialOrder 195 ClearMonomialOrderAll 197 ClearMonomialOrderN
186. ers Der which replacement rules were applied to that S polynomial in order to produce the relation Case the third component is the pair a a and a is positive The relation was gener ated using CleanUpBasis using the ath relation The last list of numbers indicates which replacement rules were applied to this ath replacement rule to generate the present rule Note that one can use history to do two things The first thing is to see how relations are derived The second is to find a smaller subset of the relations mentioned which will generate the same ideal Note that in the above example x xa a xx lies in the ideal generated by 2 a can be seen by referring to only the above history Also note that one can see that ax xy ax xx lies in the ideal generated by 1x x a rx y a and x a ax xx This will prove very helpful in finding a subset of a particular set of a generated relations R which generates the same ideal as R See Section 30 29 2 4 The DAG associated with a History Consider the following tree on the nodes 2 3 6 7 8 9 NA 3 9 9 259 Let us suppose that this tree represents the history corresponding to pa p3 Pe P7 Ps Po That is pg is generated as an s polynomial from pg and p7 pe is generated as an S polynomial from p7 and pg and p7 is generated as a reduced S polynomial The polynomial generated is from p3 and pg and a reduction step using pa was used In the notation o
187. es NCTeX m and NCTeXForm m These features are automatically loaded If you are using a notebook and have trouble it is possibly because you do not have mma s notebook sty file in the correct place That s not an NCAlgebra problem but is between you and Mma We did put some suggestions on this in Section 33 7 The TEX production has been significantly improved and updated in this version of NCAlgebra Older methods we developed for TFX which we no longer support are in the directory OBSOLETE2009 5 1 Pretty Output 5 1 1 NCSetOutput optionlist Aliases None Description NCSetOutput displays noncommutative expressions in a special format with out affecting the internal representation of the expression For example SetOutput All True turns on all display beatifications listed below Options are set by typing e All True to use the new format e opt False to return to the default format IKK e Dot True is displayed as i e a dot Dkk IKK e Dot False defaults as 101 102 e aj True aj X is displayed as X e aj False ajl X is displayed as aj X e inv True inv X is displayed as X e inv False inv X is displayed as inv X e tp gt True tp X is displayed as XT e tp False tp X is displayed as tp X Examples Generic SetOutput opt True turns on all beautifications of the out put related to the attribute opt One never types
188. es that and took 9 seconds using the C version of the code In 5 SmallBasis 4 3 Out 5 a x gt b x x gt a 21 5 Smaller Bases and the Spreadsheet command Here is a session which does roughly what the spreadsheet command does For more detail see Chapter 15 In 11 NCMakeGB FAC 2 In 11 SmallBasisByCategoryl RemoveRedundant HISTORY see Section reft The next command tries to see if any of the undigested relations can be made simpler using the digested relations In 12 NCSimplifyA11 11 DigestedRelations 11 Finally we output the result to the file SecondOutputForDemo In 13 Regular0utput 12 SecondOutputForDemo Now we return to the strategy demos of Chapter 15 Inserting the command RemoveRedundant see Section 30 inside of small basis may change the answer but it yields the same answer as SmallBasis would have given with one particular order on the set of relations given as input All this assumes that the number of iterations is large Inserting RemoveRedundant saves much computer time It takes 113 seconds The present implementation of the code involves alot of interaction with Mathe matica We expect future versions of the code to be faster 220 21 6 How Small Basis commands relate to the similar NCProcess Options The small basis and small basis by cawtegory options inside NCProcess are constructed from the small basis command described in this chapter
189. ess relations LA e A Be eed 257 30 121 DOG We Otis ss cee wa we a a we ae re re ae 297 30 1 2 RemoveBRedundant 2 amp 22a sei master 258 30 1 3 RemoveRedundant aListOfPolynomials history 258 30 1 4 RemoveRedundentByCategory 259 30 1 5 RemoveRedundentByCategory aListOfPolynomials history 259 30 2 Discussion of RemoveRedundent command 2 2 2 nn nn nenn 259 30 3 Example ats a e N TE O TEE Fa 261 NCAlgebra 13 30 4 OP ire Example pen ae ee er NA 261 30 5 Second EXA u vera ng re Sk eee ee 263 30 6 Smaller Bases and the Spreadsheet command 264 31 NCXFindChangeOfVariables The Long Description 265 31 1 Details of the Algorithm x lt 6 4 ex A ee as Bene 265 31 1 1 Preparation za ee aa E ee BO 265 eb Opllee and eitrash o ea ea EEE 265 31 1 3 Eliminate candidates which are too small 266 31 1 4 Eliminate purely numerical terms from candidates Default is Off 266 31 1 5 Sort list of candidates by number of terms 266 31 1 6 Multiply through by monomials Default is off 266 31 1 7 Run the Grobner basis algorithm 267 31 12 CONOS ei ae ara e Oe ee ines ee 267 31 2 Finding Coefficients of Variables in a Polynomial 267 31 2 1 NCCoefficientList Expression aListOfIndeterminants 267 31 3 Main Change Of Variables Command oa aoa a a 267 31 3 1 NCXFindCh
190. ete all but this 2 The directory NCAlgebra should contain many files for example NCAlgebra m CEEP Lots of files starting with NC Lots of files ending with Extra Files related to Tex The most reliable way to find out the names of the NC files actually used for computation is to consult the file NCAlgebra m It automatically loads them The files which have the suffix Extra were small programs that are not fully tested and some of which are small specialized functions which may not be are probably not valuable to others We include them just in case they may be valuable to someone and so that they can give examples of how someone may extend the code for their own purposes Chapter 27 Testing your version of NCGB The goal is to test TWO versions of NCGB against each other to see if they produce exactly the same answer Or one can test a version of NCGB against output which has been stored for reference All files involved are in the subdirectory Testing of NCGB There are four directories inside Testing TestProblems TestReference TestReference2 TestResults 27 1 Beginners We do not trust our testing programs for NCGB much They need work The NCAlgebra test program is excellent Basic Tests There is an old testing program We do not support or upgrade it but find it quite useful It is GBTEST and the use of it is different as that described for NCGBTEST above First you load the file GBTest m You run it by
191. eturnRelationsToMma False for NCMakeGB stops the results from the NCMakeGB command from being returned to Mathematica This is typically the first step in playing by numbers 29 1 1 WhatAreGBNumbers Aliases None Description WhatAreGBNumbers returns a list of numbers These numbers correspond to the elements of WhatIsHistory which determine what the ending relations are If one com putes Map 4 2 E5 WhatIsHistory WhatAreGBNumbers then one gets the same result as WhatlsPartialGB Arguments None Comments Limitations Not available before NCAlgebra 1 2 29 1 2 WhatAreNumbers Aliases None 251 252 Description WhatAreNumbers returns a list of numbers These numbers correspond to all of the polynomials which were used and retained inside the C code One needs this command to make sense of the WhatlsHistory output No argument is included because it can be applied only to the previous GB run Arguments None Comments Limitations Not available before NC Algebra 1 2 29 1 3 WhatIsPartialGB aListOfIntegers Aliases None Description WhatlsPartialGB aListOfIntegers returns the polynomials corresponding to the entries in aListOfIntegers The command WhatlsPartialGB is equivalent to WhatIsPar tialGB WhatAreGBNumbers Arguments aListOfIntegers is a list of natural numbers Comments Limitations Not available before NCAlgebra 1 2 The list of integers does not have to be a subset of t
192. ew pairs which are multiplied through by certain monomials prefixes and suffixes of the candidate for motivated unknown on the left and or right Arguments aVerySpecialList is list of pairs of polynomials so it looks like poly1 poly2 poly3 poly4 where polyl poly4 are polynomials Comments Limitations A new pair is gotten from an old pair by looking at the candidate for motivated unknown and then multiplying by prefixes and suffixes of the candidate 31 4 2 NCXAllPossibleChangeOfVariables aListOfPolynomials Aliases None Description NCXAllPossibleChange0fVariables aListOfPolynomials takes a list of poly nomials and returns a list of pairs P C where P is a polynomial from aListOfPolynomials and C is on the left or right side of a product of knowns inside P after P has been collected with NCCollectOnVariables Arguments aListOfPolynomials is a list of polynomial expressions 271 Comments Limitations This procedrue uses the ambient order so it must be set before use This procedure returns a dumb set of candidates for motivated unknowns NCXPossibleChange0fVariables uses it and returns a more intelligent list of candidates Thus the average user would not find a need for this procedure 272 Chapter 32 Representing Noncommutative Expressions with Commutative Ones 32 0 3 NCXRepresent aListOfExpressions aListOfVariables aL istOfDims aListOfFunctions aListOfExtraRules Aliases none Des
193. f the equations from the starting polynomial equations FAC given in 14 2 will hold and we will have shown that a minimal factorization of the 4 B C 1 system exists 1 Since P P it is easy to show that there exists not necessarily square matrices my and n such that nym 1 and m n P These are exactly the equations in the n m Category of the above spreadsheet 2 Since 1 P 1 P it is easy to show that there exists not necessarily square matrices ma and na such that nama 1 and M n 1 P These are exactly the equations in the n2 ma Category of the above spreadsheet together with the equations in the na ma n1 M Category of the above spreadsheet 3 Since we have defined m ma n and ng we can define a b c e f and g by setting a ni Am b n B c C mi e no Am f na B and g C ma These are exactly the equations in the singleton category Here we have used the fact that we are working with matrices and not elements of an abstract algebra With the assignments made above every equation in the spreadsheet above holds Thus by backsolving through the spreadsheet we have constructed the factors of the original system A B C 1 This proves Theorem BGKvD The system 4 B C 1 can be factored if and only if there exists a projection P such that P AP P A and P BCP PLA AP BCRP Note that the known equations can be neatly expressed in te
194. f the history output this would take the form One sees from the picture that 1 ps Pe Pr 2 pe p7 Po 3 pe p3 p2 po 4 pr D3 P2 Po 5 ps P6 P3 P2 Po 6 ps p7 Po 7 ps P7 P3 P2 Po 8 ps p3 P2 Po 256 Chapter 30 Commands for Making Small Bases for Ideals Remove Redundant A Gr bner Basis can be infinite Even when a Gr bner Basis is finite it can be very large and therefore difficult for a person to digest One often finds that there are many relations which are generated which do not enhance our understanding of the mathematics In many cases we want a basis for an ideal which is minimal i e has smallest cardinality or which is minimal as a subset of a given basis We therefore find it helpful to take a list of rules which are generated by the GB algorithm and make them smaller Consider the following example Example 30 1 A GB generated by the set PTP TP P P is the set PT P T P n gt 1 U P P regardless of the term order used No smaller GB exists Here just two relations generate infinitely many One way to view this example is that the computer discovers that if a subspace represented by ran P in the computation is invariant for a linear transformation T then it is invariant for T for every n gt 1 The GB algorithms tries to generate this infinite set of relations and at any time has generated a
195. finite subset of them When we are trying to discover a theorem or elegant formulas often these relations having higher powers are irrelevant and clutter the spreadsheet which merely serves to confuse the user This introduces the next topic which is shrinking a set of relations to eliminate redundancy Our desire is to take the generated basis and to remove mathematical redundancy from the generating set without destroying the information which was gained while running the GB algorithm We have two lines of attack on this problem In this chapter we describe one which is embodied in the command RemoveRedundant In Chapter 21 we describe another approach 30 1 Removing excess relations 30 1 1 Introduction Our first line of attack works only when the set of relations under consideration has been generated by NCMakeGB and then only either 257 258 1 The history was recorded right after using NCMakeGB via the WhatIsHistory command OR 2 There have been no calls to NCMakeGB either directly or indirectly since the set of relations was generated This approach is very fast If one has created a set of relations G by using NCMakeGB then one can use history gotten by the WhatlIsHistory command see 29 2 1 recorded during the run of NCMakeGB to find a smaller subset of G which generates the same basis The essential idea is to take the history from the previous run of NCMakeGB and use it to construct a directed acyclic graph DAG rep
196. following command converts a list of rules to a list of relations In 10 PolyToRule Out 10 1 Inv 1 y y Invli y 1 y Invly gt 1 Inv 1 y Inv 1 y y 1 Invly y gt Inv 1 y Invly Invly Inv 1 yl gt Inv 1 y Invly Inv 1 y Inv y Simplifying using a GB revisited We can apply the rules in 810 3 repeatedly to an expression to put it into canonical form Often the canonical form is simpler than what we started with In 11 Reduction Inv ly l Inv 1 y Invly Out 9 Out 11 Inv 1 yl 10 4 Saving lots of time when typing 10 4 1 Saving time when typing relations involving inverses NCMakeRelatio One can save time in inputting various types of starting relations easily by using the command NCMakeRelations In 12 lt lt NCMakeRelations m In 13 NCMakeRelations Inv y 1 y Out 13 y Invly 1 Invly y 1 1 y Inv 1 y 1 Invli y 1 y 1 WARNING It is traditional in mathematics to use only single characters for indeterminates e g x y and a However we allow these indeterminate names as well as more complicated constructs such as Inv x Invly Inv 1 x x xy and Rtle In fact we allow flexpr to be an indeterminate if expr is an expression and f is a Mathemat ica symbol which has no Mathematica code associated to it e g f Dummy or f Joe but NOT f List or f Plus Also
197. for each list Below is an example of a list of four lists The first two are dependent the third is independent and the fourth is undetermined Suppose you have four lists Listl 7 6a a abd d b 12a d 4a d a 5a b b List 50 8a a abd d b 12a d 4a d a 16a 40b b List3 4a 5b c c List4 ax xy y x Then NCIndependenceCheck List1 List2 List3 List4 returns NewListl NewList2 NewList3 NewList4 where NewListl False A 5A 10 u 2X7 As 0 As A13 Ar As on 0 A 0 Ai3 NewList2 False Az 3A7 0 8 gt a Az 0 As A13 Az As 4411 0 Ai 0 Ai3 NewList3 True NewList4 Undetermined A2x xy Ay xx Aa Aa In particular what the above says is that List1 Newlist1 2 0 and List2 Newlist2 2 0 where refers to the vector dot product Therefore the set of polynomials in Listl and List2 are dependent List3 is independent Note that List4 is clearly indpendent in the noncommutating case and dependent in the commuting case When such phenomena occur NCIndependenceCheck is unable to determine whether or not the list of polynomials is independent However it does return to the user a set of dependencies for the A s which must hold in order for the polynomials to sum to zero Comments Limitations IndependenceCheck first uses the CommuteEverything command to make the problem feasible Therefore it is possible that poly
198. fyRationalX1 expressions startRelations itera tions Aliases None 207 208 Description NCSimplifyRationalX1 expressions startRelations iterations is essentially equivalent to NCSimplifyAll expressions Join startRelations inverses iterations where inverses is a list of polynomials inverses consists of the defining relations of all inverses elements with inv in expressions and startRelations NCSimpli fyRationalX1 simplifies expressions with startRelations together with some additional innocuous relations NCSimplifyRationalX 1 is different from NCSimplifyAll with the following adjustment first all instances of inv are converted to Inv before calling NCSimplifyAll and are con verted back afterwards This overrides NCAlgebra s automatic handling of inverses For example the command NCSimplifyRationalX1 finv x x zinv 1 x y z xinv y ay 10 equals NCSimplifyAlllInvlx x Inv 1 x y f2x Inv y a yxxInv y 1 Inv y y 1 Inv z xxx 1 x xxInv z 1 1 1 Inv 1 2 1 Inv 1 2 1 2x 1 10 This call to NCSimplifyAll returns Inv x Inv 1 x y The call to NCSimplifyRa tionalX1 returns inv x inv 1 x y Arguments expressions is a list of polynomials startRelations is a list of polynomials iterations is a natural number Comments Limitations Not available before NCAlgebra 1 2 20 2 Making a Gr bner Basis and various options with their defa
199. gnostics 19 4 Output Options There are several options for NCProcess which determine the appearance of the output These are actually options for the RegularOutput command which is called by NCProcess Additional options for RegularOutput can be handed to RegularOutput with the NCProcess option AdditionalRegularOutputOptions aList where aList is a list of rules The following 203 options can be used directly as if they were NCProcess options These three options are independent of one another All three files can be created with one NCProcess call 19 4 1 Turning screen output off PrintScreenOutput False In the notebook environment you will definitely want to turn a lot of NCProcess screen output off Too much output drowns the notebook Turning it off or on is done with the Option PrintScreenOutput False PrintScreenOutput True The default is PrintScreenOutput False 19 4 2 TeX True This option gives spreadsheets a TX appearance The default is TeX True There is a bug in the program to create spreadsheets In the list of variables that have been solved for the letter i is sometimes replaced by a number The T X file is absolutely correct The bug only appears in a list of variables never in an equation 19 4 3 ASCII False This option creates the spreadsheet in ascii text form This is a lot more difficult to read but it can be useful for copying and pasting relations from the spreadsheet in
200. gument is a string which refers to a file name which will store the spreadsheet Unlike the first call to NCProcess1 this call uses non default values for the options The UserSelect option as described in 15 3 1 causes the discovered relations to be given high priority The DegreeCaps are set in order to save time as explained in 15 3 2 The file Spreadsheet2 dvi is the same as the second spreadsheet which was produced in Chapter 16 As we saw in 814 4 this spreadsheet leads directly to the main theorem about factoring systems For another demonstration of strategies using NC Process see Chapter 17 165 15 5 Details of NCProcess The following section gives psuedocode for the NCProcessl and NCProcess2 commands This psuedocode uses the function NCMakeGB which implements a Gr bner Basis Algo rithm which returns partial GB s which are reduced In particular running the function NCMakeGB for 0 iterations on a set F does not compute any S polynomials but does produce a set G which is reduced G will be called a reduced form of F 15 5 1 NCProcessl command The input to NCProcessl is a set of starting equations start a number of iterations n for the GBA and a collection of user selects The steps NCProcess1 takes are I Preparation for the main call to NCMakeGB 1 Run the GBA on the equations in start which do not involve any unknown vari ables together with the user selects for at most n 1 iterations Let A denote
201. hapter 9 we will not be providing descriptions of how to use commands Our goal is just to mention the main ideas These ideas are described in detail in HS The example in Chapter 14 is a very good illustration of these ideas The description of how NCProcess is called is given in Chapter 15 We use the abbreviations GB and GBA to refer to Gr bner Basis and Gr bner Basis Algorithm respectively We begin by describing a facet of noncommutative GB s which we have not yet described GB s are very effective for eliminating or solving for variables 16 1 NCProcess Input and Output The commands which we use to implement a prestrategy are called NCProcess1 and NCPro cess2 NCProcessl and NCProcess2 are variants on a more general command called NCPro cess A person can make use of NCProcessl and NCProcess2 without knowing any of the NCProcess options 169 170 The NCProcess commands are based upon a GBA and will be described in 815 2 GBA s are very effective at eliminating or solving for variables A person can use this practical approach to performing computations and proving theorems without knowing anything about GBA s Indeed this chapter is a self contained description of our method The input to NCProcess command one needs 11 A list of knowns 12 A list of unknowns together with an order which gives you priorities for eliminating them 13 A collection of equations in these knowns and unknowns 14 A number of
202. hat the SYStems m file does is to read in the NCAlgebra m file and NCAlgebra should NOT be loaded either before or after getting the file SYStems m Thus a session begins by Getting in the NC directory entering Mathematica and typing lt lt SetNCPath m lt lt SYStems m 277 278 33 4 Running OldMmaGB which we do not support The file OldMmaGB m loads in old commands which we do not actively support as well as new untested ventures which may not work reliably and whose documentation in NCOLDDOC contains few complete english sentences A session begins by Getting in the NC directory entering Mathematica and typing lt lt SetNCPath m lt lt OldMmaGB m Incidentally OldMmaGB m is a file in the NC NCAlgebra directory whose function is to load files found mostly in the NC NCAlgebra OldMmaGB directory 33 5 Environment Settings All variables beginning with the four characters NC are reserved for use by the NCAlgebra and NCGB development teams The user may set an NC variable to accomodate his her needs If the user does not assign a value to a NC variable then it has no value until that variable is to be actually used At that time the code changes the value of the variable to a default 33 5 1 NCAlgebra NC Variables NC Loaded NCAlgebra is used to ensure that NCAlgebra m is not loaded twice Every NC Loaded file will be used to avoid duplicate file Get s This is similar to the ifndef define endif scheme used in C
203. he integers in What AreGBNumbers it can also be a subset of the list of integers in WhatAreNumbers In plain english this says that WhatIsPartialGB can retrieve any polynomial which has occurred in the course of running the last call to NCMakeGB not just the output of NCMakeGB 29 1 4 NumbersFromHistory aPolynomial history Aliases None Description NumbersFromHistory aPolynomial history returns all numbers n such that one of the elements of the list history has the form n aPolynomial whatever whatever2 where we do not care what the value of whatever or whatever2 is Usually this function will return only a list with one integer in it Arguments aPolynomial is a polynomial history is the output from the command WhatIsHistory subsection 29 2 1 Comments Limitations 29 2 History of the production of a GB 29 2 1 WhatlsHistorylaListOflIntegers Aliases None Description Applies to any List of Integers subset of the output of WhatAreNumbers WhatIsHis tory WhatAreNumbers lists the tree which produced the elements of the previous GB run Also possible is WhatIsHistory 2 6 7 which will produce only relation numbers 2 6 7 and describe their immediate ancestors It is handy if you already know that you are interested in 2 6 7 Arguments aListOfIntegers is a list of natural numbers 253 Comments Limitations WARNING The output to the command WhatlsHistory changes after every call to NCMakeGB The
204. he polynomials q 1 lt j lt k generate the same ideal that the polynomials p 1 lt j lt ka do Therefore the set of solutions to the collection the polynomial equations p 0 1 lt j lt k equals the set of solutions to the collection of polynomial equations q 0 1 lt j lt k2 This canonical form greatly simplifies the task of solving the collection of polynomial equations by facilitating backsolving for x in terms of x 2 The effect of the ordering is to specify that variables high in the order will be eliminated while variables low in the order will not be eliminated In the noncommutative case again a GB for a collection of polynomial equations is a collection of noncommuting polynomial equations in triangular form see HS There are some difficulties which don t occur in the commutative case For example a GB can be infinite in the noncommutative case However we present software here based on the noncommutative GBA which might prove to be extremely valuable in some situations 16 3 What is a prestrategy We wish to stress that one does not need to know a theorem in order to discover it using the techniques in this paper Any method which assumes that all of the hypotheses can be stated algebraically and that all of the hypotheses are known at the beginning of the computation will be of limited practical use For example since the Grobner Basis algorithm only discovers polynomial equations which ar
205. hen a xx is a number but a x xtp x is not 97 4 3 3 CriticalPoint expr aVariable Aliases Crit Cri Description It finds the value of aVariable which makes the gradient of the expression expr with respect to the variable aVariable equal to 0 Arguments expr is an expression containing aVariable aVariable is a variable Comments Limitations Uses the Grad and NCSolve functions Both Grad and NCSolve are severely limited Therefore the CriticalPoint command has a very limited range of applications 4 3 4 NCHessianlafunction X H Xk Hr Aliases None Description NCHessian afunction X H Xa Ho Xz Hk 1 computes the Hessian of a afunction of noncommutting variables and coefficients The Hessian recall is the second derivative Here we are computing the noncommuta tive directional derivative of a noncommutative function Using repeated calls to DirectionalD the Hessian of afunction is computed with respect to the variables X1 X2 Xp and the search directions H H Hk The Hessian HI of a function I is defined by A ne tt HI X H MA ace A One can easily show that the second derivative of a hereditary symmetric noncommu tative rational function I with respect to one variable X has the form k A HTB HGC f 1 HI X H sym y where Ay Be and Cy are functions of X determined by T An analogous expression holds for more variables The Hessian
206. hether or not to sort the results by the length number of terms of the candidate with the shortest 270 first The default True does the sorting while setting the option to False does not sort at all Comments Limitations The candidate for motivated unknown is found by first doing an NCCollectOnVariables which collects around knowns on each relation and then look ing at what is found on either side of the knowns These are the candidates for motivated unknowns The next step is to eliminate candidates which do not contain all of the un knowns present in the expression which motivated them This option can be turned off by CountV ariables False The next step is to eliminate purely numerical terms from the candidates so that you won t get an expression like xy 1 for a candidate but xy instead The final step is to sort the pairs by length number of terms of the motivated unknown the shortest being first This is done because long candidates usually do not eliminate all of the variables This option can be turned off by SortByTermLength False 31 4 Less Valuable Change of Variables Commands These commands are used by the above commands They would not be of use to the average user 31 4 1 NCXMultiplyByMonomials aVerySpecialList Aliases None Description NCXMultiplyByMonomials aVerySpecialList takes a list like the one returned by NCXPossibleChange0f Variables and returns the list appended possibly with n
207. iases None Description SetUnknowns aListOfVariables records the variables in the list of variables aListOfIndeterminates to be corresponding to unknown quantities This and SetUn knowns prescribe a monomial order with the knowns at the the bottom and the un knowns at the top Arguments aListOfIndeterminates is a list of Mathematica variables Comments Limitations Not available before NCAlgebra 1 2 This is equivalent to Do SetMonomialOrder aListOfVariables fi i 1 Li 1 Length aListO fV ariables 18 4 3 SetUnKnownslaListOfVariables Aliases None Description SetUnKnowns aListOfVariables records the variables in the list of variables aListOfVariables to be corresponding to unknown quantities This and SetUnknowns prescribe a monomial order with the knowns at the the bottom and the unknowns at the top Arguments aListOfVariables is a list of Mathematica variables Comments Limitations Not available before NCAlgebra 1 2 This is equivalent to Do SetMonomialOrder aListOfVariables fi i 1 Li 1 Length aListO fV ariables 18 4 4 ClearMonomialOrder Aliases None Description After ClearMonomialOrder is called there are no indeterminates which are considered ordered The monomial order can be retrieved by using the ReinstallOrder command Arguments None Comments Limitations Not available before NCAlgebra 1 2 196 18 4 5 PrintMonomialOrder Aliases None Description PrintMonomialOrder prin
208. ic orders are examples of elimination orderings An elimination ordering is an ordering which is used for solving for some of the variables in terms of others We now discuss each of these types of orders 18 1 Lex Order The simplest elimination order To impose lexicographic order a lt lt b lt lt x lt lt y on a b x and y one types In 14 SetMonomialOrder a b x y This order is useful for attempting to solve for y in terms of a b and x since the highest priority of the GB algorithm is to produce polynomials which do not contain y If producing high order polynomials is a consequence of this fanaticism so be it Unlike graded orders lex orders pay little attention to the degree of terms Likewise its second highest priority is to eliminate 2 Once this order is set one can use all of the commands in the preceeding section in exactly the same form We now give a simple example how one can solve for y given that a b x and y satisfy the equations br xya zxbaa 0 xa 1 0 ax 1 0 191 192 In 15 NCMakeGB b x x y a x boxx a a x a 1 a x 1 4 Out 15 1 a x 1 x x a y b a a xk box X X If the polynomials above are converted to replacement rules then a simple glance at the results allows one to see that y has been solved for In 16 PolyToRule Out 16 a x gt 1 x a gt 1 y gt b a a k b rk x KK x Now we change the order to In 20
209. iccati equation which we just analyzed is the DGKF X equation Indeed what we have proved is that if HGRAIL has a solution with Ei invertible and ifb and c are given by formulas Out 8 and Out 9 in 17 3 2 then 1 the DGKF X and Y equations must have a solution 2 X and Y are self adjoint 3 Y X is invertible Now we turn to the converse The straightforward converse of the above italicized state ment would be If items 1 2 and 3 above hold then HGRAIL has a solution with Ei invertible and b and c are given by formulas Out 8 and Out 9 in 17 3 2 There is no reason to believe and it is not the case that b and c must be given by the formulas Out 8 and Out 9 in 17 3 2 These two formulas came about in 817 3 2 and were motivated by excess freedom in the problem The converse which we will attempt to prove is Proposed Converse 17 1 If items 1 2 and 3 above hold then HGRAIL has a solution with Fij invertible To obtain this proposed converse we need a complete spreadsheet corresponding to the last stages of our analysis The complete spreadsheet is THE ORDER IS NOW THE FOLLOWING A lt AT lt B lt BT lt B lt B SO lt CT lt Ca lt CZ eX ER TRY RY Px Er K En K Preroll d ELL RS ELIO LIA E EL E Ex Ex KOKI cK Ka Kal AA A _ A AAA AA A A A A A ey a Y O UR SESSION HAS DIGESTED memm e THE FOLLOWING RELATIONS me A A A A A A A A A eel THE F OLLOWING VARIABLES HAVE
210. ich is quadratic in a variable our symbol manipulator optimizes the variable automatically In H control one gets Hamiltonians which are very complicated expressions in many variables e g compensator parameters One must take many maxima and minima in analysing these problems and we have found SYStems very effective at such computations Game theory is another area which produces Hamiltonians and calls for such computations Rather than try to list complicated classifications of Hamiltonian types that this addresses we proceed by presenting some examples One is the classical bounded real lemma while the other derives the famous DGKF two Riccati equation formulas for nonlinear systems which are affine linear in the input variables Also there is substantial systems capability in a completely different directions NCAlgebra contains commands for manipulating block matricies Since such computations are the substance of many results in systems theory it is already easy to do computations in these areas with NCAlgbra A few formulas for 2 x 2 block matricies are stored Schur complements block LU decomposition inverses and Chain to scattering formalism conversions Chapter 45 Sample Applications Each of the following examples uses one of the SYSDef files as input That SYSDef file is reproduced here for your reference Text between comment symbols and is non executable In this document we have modified the actual SYSDef files by a few
211. idea of what may be accomplished with NCAlgebra We suggest that the reader later do these computations for himself with our package when it has been properly installed since it will provide a tutorial as well as an illustration In our package denotes noncommutative multiply tp x denotes the transpose of an element x and aj x denotes the adjoint of an element x Note that the properties of trans poses and adjoints that everyone constantly uses are built in The multiplicative identity is denoted Id in the program At the present time Id is set to 1 A element A may have an inverse which will be denoted by inv A of it may have a left or right inverse denoted inv A and invR A respectively The following examples are independent of each other however they may be executed in one continuous session At present single letter lower case variables are noncommutative by default and all others are commutative by default A Mathematica 3 0 user inside a notebook can use our special Palette by opening the file NCPalette nb see Section 1 1 Installing NCAlgebra 1 1 1 Downloading You can download the lastest version of NCAlgebra from www math ucsd edu ncalg 1 1 2 Unpacking We provide the files NCAlgebra zip and a NCAlgebra tgz which contain the exact same files in different compact formats PC and Mac people might prefer to download the NCAlge 25 26 bra zip file while Unix people may like the NCAlgebra tgz file better U
212. imitations Not available before NCAlgebra 1 0 The following is an example of the above command In 22 expr x Z x W XK KK Z KK y KK W Z KK x KK x y Z kk x KK y W In 23 NCTermArray expr x y foo Out 23 foo In 24 foo Global foo foo types 1 1 12 0 foo variables x y foolx y x Z k y k W Z x KK y W foo x x 1 x Z x KK W Z RK x KK KX W foolx___ 0 4 12 2 NCReconstructFromTermArraylanArray Aliases None Description NCTermArraylexpr aList anArray newexpr NC Reconstruct FromTermArray anArray sets newexpr equal to expr 96 Arguments an Array is a symbol previously filled by NCTermArray Comments Limitations Not available before NCAlgebra 1 0 If we continue with the example above we have the following In 24 NCReconstructFromTermArray foo Out 24 X XX Z KK X KK W X KK Z y KK W Z KK x K x KK y gt Z xx x y xk W However now one can also do some manipulation before reconstructing as shown below In 25 foo x y NCC foo x y y w Out 25 x z Z xk x y w In 26 foo x x 1 NCC foo x x 1 x w Out 26 x z Zz x KK x KK W In 27 foo Global foo foo types 1 11 1 12 04 foo variables x y foolx y NCC x z k y W Z K xo y RK W y w foolx x 1 NCC x z x W Z k X KK x W X w
213. ing If this character string is input to the built in Mathematica command ToExpression then the result is the aNumber th element of the partial basis data base Arguments aNumber is a natural number Comments Limitations Not available before NCAlgebra 1 2 See also 29 1 3 Note aNumber does not correspond to the numbers generated from the WhatIsHistory com mand 20 2 9 IterationNumberlaList or IterationNumber aNumber UNTESTED 1999 Aliases None Description It might be interesting to find out which relations are generated during which iteration of the algorithm The command terationNumber returns these numbers The most common applications of this command will probably be IterationN umber W hat AreGBN ui and IterationNumber W hat AreNumber s Arguments aList is a list of integers aNumber is an integer Comments Limitations Not available before NCAlgebra 1 2 212 20 2 10 CleanUp Aliases None Description CleanUp 1 Arguments NCProcess and NCMakeGB Option which controls the reduction step inside Mora s GB algorithm When set to 1 the new S polynomials reduce the current set of relations When CleanUp 0 they do not Comments Limitations 20 2 11 SetCleanUpBasis n Untested in 1999 Aliases None Description If n is nonzero best to use n 1 SetCleanUpBasis n indicates that the program used to implement NCCleanUpRules should be applied after each iteration of the GB algorithm SetC
214. inverse a invR al Id Arguments x is a symbol Comments Limitations Warning NCAlgebra does not check that invR z exists This is the responsibility of the user 4 7 4 invQlx Aliases None Description invQ m True forces invR m and invL m to be rewritten as inv m Arguments x is an expression Comments Limitations We never use this command 4 7 5 ExpandQlinv Aliases None Description If ExpandQlinv is set to True an inverse of a product will be expanded to a product of inverses If it is set to False then a product of inverses will be rewritten to be a inverse of a product Arguments inv Comments Limitations None 77 4 7 6 ExpandQ tp Aliases None Description If ExpandQltp is set to True a transpose of a product will be expanded to a product of transposes If it is set to False then a product of transposes will be rewritten to be a transpose of a product Arguments tp Comments Limitations None 4 7 7 Overridelnverse Aliases None Description OverrideInverse is a variable which is either True or False Arguments If OverrideInverse is set to True then the replacement of invL and invR by inv when x is invertible is suppressed even if invQ is True The default is False Comments Limitations None 4 7 8 ajlexpr Aliases None Description ajlexpr takes the adjoint of the expression expr Note that basic laws like ajla x xb aj b x xajla are automatically execute
215. ion is a brief note to bring out the conceptual connection between making a Grobner Basis and the simplification commands and the Reduction commands Making a Grobner Basis is the first step in the simplification commands presented above Making a Grobner Basis is also the main step in the the command SmallBasis in 21 1 1 and Spreadsheet in 15 2 1 20 2 15 Setting Monomial Orders See Chapter 18 20 2 16 ReinstateOrder Aliases None Description After a call to SetGlobalPtr ClearMonomialOrde r or ClearMonomialOrderN n ReinstateOrder is used to restore the previously established order of indeterminates The exception is C learOrder After this function is called the order cannot be restored Arguments None Comments Limitations Not available before NCAlgebra 1 2 20 3 Reduction 20 3 1 Reduction aListOfPolynomials aListOfRules Aliases None 214 Description Reduction aListOfPolynomials aListOfRules computes the Normal Forms of aListOfPolynomials with respect to the rules aListOfRules Arguments aListOfPolynomials is a list of polynomials aListOfRules is a list of rules That is the rules are applied repeatedly to the polynomials in the list until no further reduction occurs Comments Limitations Not available before NCAlgebra 1 2 20 3 2 PolyToRule aPolynomial Aliases PolToRule ToGBRule ToGBRules Description PolyToRule aPolynomial returns the replacement rule corresponding to aPoly nomia
216. ion of NCXWholeProcess It begins with the or der orderList and calls NCProcess polys groblters fileName 1 creating a ETpXfile fileName 1 tex The output of NCProcess will hopefully have polynomials in one unknown These unknowns will then be regarded as determined These determined unknowns are moved 235 236 to the bottom of the unknowns in the order A polynomial of the form unknounIndeterminate polynomialsInKnownIndeterminates is known as a singleton Determined unknowns associated with singletons are moved to the top of the order and the other determined unknowns are moved to the bottom of the unknowns That is the new order is of the form Knowns lt determinedKnowns lt otherUnknowns lt singleton Unknowns We have finished the first iteration of NCXWholeProcess The second iteration goes as follows After clearing the old order and setting the new order NCProcess polys grobI ters fileName 2 UserSelects determinedPolys is called creating a file fileName 2 tex Here determinedPolys are all polynomials in 0 or 1 unknowns and polys denotes the same set of polynomials that we input in the first iteration The process is continued changing the order and calling NCProcess repeatedly If no relations in one unknown are discovered at some iteration the currently unknown indeterminates are cyclically permuted If all cyclic permutations fail to produce any new relations in one unknown the function N
217. ions in the variables A B C a b c Here A Band C are knowns and a b and c are unknowns In the case of NCProcess and NCProcess1 setting the knowns and unknowns as above has the effect that the NCProcess command will try to solve for a b c and produce equations from which they have been eliminated Also the spreadsheet displayed by the NCProcess command does bookkeeping based on what is known and unknown The above three commands have imposed an order on the variables A B C a b c which expresses our priorities for eliminating them We use the notation A lt B lt C lt a lt b lt e 159 160 to denote the order imposed in the example The NCProcess command will try hardest to eliminate c and the least to solve for A If you are running a prestrategy session and stop making progress one of the first things to try is changing the order The lt lt means that the NCProcess commands go to much greater lengths towards eliminating a b c than it does for A B C A fancier example of such prioritizing is Example 15 2 SetNonCommutative A B C a b c e f g SetKnowns A B C SetUnknowns a b c d e f This produces the ordering A lt B lt CK amp Ka lt b lt cxKd lt e lt f There is an alternative to SetKnowns and SetUnknowns The command SetMonomialOrder A B C a b c d e f has exactly the same effect as the com mands in Example 15 2 One can proceed with an NC Process command only after an ordering is set 15 2 NC
218. irectory is loaded with files generated by applying a version of NCGB that you trust to the problems in TestProblems This should be the case because the package NCGB is shipped with such a collection of sample answers Edit 2 lines in the file init TestResults m to put in the path to the version of NCGB that you want to test Copy the file init TestReferences m to the file init m Run Mathematica Load NCGBTestCreate m Run NCGBTestCreate Integer1 Integer2 Exit Mma Here the arguments Integer must be a non negative integer satisfying Integerl lt Integer2 lt 85 This creates a set of files of answers obtained from NCProcess labelled cN out tex where N is an integer between Integerl and Integer2 They are stored in the directory TestResults If you want to test a program besides NCProcess you can use NCGBTestCreate Integer1 Integer2 FunctionName Label whichever program you want to test with FunctionName For example the name NCMakeG BFunction has already been assigned to NCMakeGB so running NCGBTestCreate Integer1 Integer2 NCMakeGBFunction will create files for testing NCMakeGB Comparing to Reference Code While in the testing directory Run NCGBTestCompare Integer Integer for tex files only or to test programs other than NCProcess NCGBTestCompare Integer Integer suffix for example suffix is GB only remember the quotes Go get a cup of coffee When you come back look at the resulting screen
219. irst file e g MYSESSION m and MYSESSION ex records the In and Out lines of code you see on the screen and the second file which contains the suffix ex MYSESSION ex in the above example saves just the commands which you type Functions stored in these files can be brought into a Mathematica session at a later time by typing lt MYSESSION ex and it executes This file can also be modified in a text editor external to the Mathematica program The NCAlgebra m file contains the instructions to load NCAlgebra packages which allow the manipulation of non commutative expressions 100 Also when using UNIX via a UNIX shell rather than a Mathematica notebook UNIX has a script utility which can be used Type man script to find out more Arguments None Comments Limitations Fails inside a Notebook You can essentially achieve the same functionality by using file OpenAppend filename AppendTo Echo file If TeEXformating is desired use file OpenAppend filename FormatType NCTeXForm Chapter 5 Pretty Output and Tex Commands There are 2 ways of producing pretty output The most practical for a small session is described in the Pretty Output section below The fancier way is to produce TFX displays TEX displays can be done in several ways One is by using the Mathematica TFX setting features Just follow their directions we have installed a few special NCAlgebra features via the fil
220. is given as an option then the main effect is on the display produced by RegularOuput throughout the rest of the session UserSelect is cumulative and more and more poly nomials fall into the selected category as the user puts them in The command Reg ularOutput automatically scans for selected polynomials to display in the collection of relations labelled USER SELECTS It finds them only after NCMakeGB has been run with the user selects since RegularOutput searches for the selected polynomials by there number Henceforth aListOfPolynomials is displayed as a special category The default value is Arguments None Comments Limitations Not available before NCAlgebra 1 2 20 2 3 ClearUserSelect Aliases None Description Clears the UserSelected polynomials that is it makes the USER SELECTED empty Arguments None Comments Limitations Not available before NCAlgebra 1 2 210 20 2 4 Deselect gt DISABLED Aliases None Description Deselect is an option for NCMakeGB If DeSelectPoly gt aListOfPolynomials is given as an option for NCMakeGB then certain S polynomials will not be computed Specifically no S polynomial will be formed between two deselected polynomials De select is NOT cumulative The default value is Arguments None Comments Limitations Not available before NCAlgebra 1 2 Bug Only the deselected polynomials which are also members of the first argument for NCMakeGB are dese lected
221. iterations The knowns Il are set using the SetKnowns command The unknowns 12 are set using the SetUnknowns command For example SetKnowns A B C sets A B and C known and SetUnknowns x y z sets x y and z unknown Also in this case the algorithms sets the highest prioirity on eliminating z then y and then x Some readers might recall this is exactly the information needed as input to NCMakeGB The output of the NCProcess commands is a list of expressions which are mathemat ically equivalent to the equations which are input in step 13 That is the output equations and input equations have exactly the same set of solutions as the input equations When using NCProcessl this equivelent list hopefully has solved for some unknowns The output is presented to the user as O1 Unknowns which have been solved for and equations which yield these unknowns 02 Equations involving no unknowns O3 Equations selected or created by the user For example in the context of S1 below one would want to select the equation E17 There are also times during a strategy when one wants to introduce new variables and equations This is illustrated in Chapter 14 O4 Equations involving only one unknown O5 Equations involving only 2 unknowns etc We say that an equation which is in the output of an NCProcess command is digested if it occurs in items O1 02 or O3 and is undigested otherwise Often in practice the digested polynomial equations are
222. ithm The second command gives the ancestory and other information related to relations 1 2 One could have used any list of numbers between 1 and 17 as the argument to the WhatIsHistory command and obtained only the history of those relations 30 5 Second Example As a second example after loading the files NCGB m Small Basis3 m and RemoveRedundent m we can execute the following commands to compute a Gr bner Basis for the set of relations 1 3 a x by In 3 SetKnownsla b x In 4 NCMakeGB x x a x x x b 10 Out 4 a x x b a x b x x a a a b x gt a b b a a a x b b b a a a Now one might want to find a smaller generating set for the ideal specified above The following command does that and took 9 seconds using the C version of the code In 5 SmallBasis 4 3 Out 5 a x gt b x x gt a Alternatively one can use the command RemoveRedundent to generate the same result in 2 seconds There are two steps which need to be performed before calling RemoveRedundent In 6 WhatAreNumbers Out 6 1 2 3 4 5 6 7 In 7 WhatIsHistory 264 Dut 7 11 a x gt b 10 OF UF 2 x x gt a 10 O gt 13 b x gt a xx a 1 2 7 4 x a gt b 42 2 1 gt 5 x b gt a a 4 1 3 6 b a gt a b 3 2 1 gt 7 a a a gt b b
223. ituteSingleReplacelexpr aListOfRules optional On Aliases SubSingleRep Description Replaces one symbol or sub expression in the expression by another expression as specified by the rule See Wolfram s Mathematica 2 page 54 Arguments expr is an algebraic expression aListO fRules is a single rule or list of rules specifying the substitution to be made On save rules to Rules temp temporarily over rides SaveRules Off Off can not over ride SaveRules On Comments Limitations The symbols and are often used in Mathematica as meth ods for substituting one expression for another This method of substitution often does not work when the expression to be substituted is a subexpression within a non commutative product This Substitute command is the noncommutative analogue to J 51 4 1 10 SubstituteAlllexpr aListOfRules optional On Aliases SubAll Description For every rule a b SubAll also replaces tpla tp b invla inv b rt a rtlb Arguments expr is an algebraic expression aListO f Rules is a single rule or list of rules specifying the substitution to be made On save rules to Rules temp temporarily over riding SaveRules Off Off can not over ride SaveRules On Comments Limitations None 4 1 11 Transform expr aListOfRules Aliases Transform Description None Arguments Transform is essentially a more efficient version of Substitute It has the same f
224. keGB which effects the output of the WhatlsHistory command which in turn can effect the use of the command RemoveRedundant and its variants subsections 30 1 2 30 1 3 30 1 4 and 30 1 5 or the use of the command SmallBasis and its variants subsections 21 1 1 and 21 1 2 21 1 2 SmallBasisByCategorylaListOfPolynomials iter Aliases None 217 Description SmallBasisByForCategory returns a list aList which is a sorted subset of aListO f Polynomials such that the ideal generated by Join a List another ListO f Polynomials equals the ideal generated by Join aListO f Polynomials another ListO f Polynomials This is done via calls NC MakeGB Arguments aListO f Polynomials is a list of polynomials iter is a natural number Comments Limitations Not available before NCAlgebra 1 2 21 1 3 ShrinkOutput aListOfPolynomials fileName Aliases None Description ShrinkOutput can take a very long time to run on large or complicated sets of polynomials ShrinkOutput aListOfPolynomials fileName takes the list of polyno mials in aListOfPolynomials and puts a subset of aListOfPolynomials into a file via RegularOutput subsection 23 3 1 This smaller subset is generated by the command SmallBasis subsection 21 1 1 Arguments aListOfPolynomials is a list of polynomials fileName is a character string Comments Limitations Not available before NCAlgebra 1 2 21 2 Brute Force Many shrinks 21 2 1 ShrinkBasislaListOfPolynomials iterati
225. l assuming the order of monomials has been set Arguments aPolynomial is a polynomial Comments Limitations Not available before NCAlgebra 1 2 20 3 3 RuleToPoly aRule Aliases None Description RuletoPoly aRule returns aPolynomial corresponding to the replacement rule aRule Arguments aPolynomial is a polynomial Comments Limitations Not available before NCAlgebra 1 2 Chapter 21 Commands for Making Small Bases for Ideals Small Basis Shrink Basis A Gr bner Basis can be infinite Even when a Gr bner Basis is finite it can be very large and therefore difficult for a person to digest One often finds that there are many relations which are generated which do not enhance our understanding of the mathematics In many cases we want a basis for an ideal which is minimal i e has smallest cardinality or which is minimal as a subset of a given basis We therefore find it helpful to take a list of rules which are generated by the GB algorithm and make them smaller Consider the following example Example 21 1 A GB generated by the set PTP TP P P is the st PT P T P n gt 1 U P P regardless of the term order used No smaller GB exists Here just two relations generate infinitely many One way to view this example is that the computer discovers that if a subspace represented by ran P in the computation is invariant for a linear transformation T then it is invariant for T for every n gt 1 The GB alg
226. lBasis aListOfPolynomials NumberOflterations finds a universal Gr bner Basis with respect to the set of all graded lexicographical orders on the indetermi nants in aListO f Polynomials for the ideal generated by aListO f Polynomials NumberO f Iterations is passed as the second argument to NCMakeRules Arguments aListO f Polynomials is a list of polynomials numberO fIterations is a positive integer Comments Limitations Not available before NCAlgebra 1 2 39 1 Very Technical Commands 39 1 1 GroebnerCutOffFlag n Integer Aliases None Description Turns the cutting off operations either on or off Arguments n is an natural number Comments Limitations Not available before NCAlgebra 1 2 39 1 2 GroebnerCutOffMin n Integer Aliases None Description Sets the min for sum on polynomial degree cut offs Arguments n is an natural number Comments Limitations Not available before NCAlgebra 1 2 39 1 3 GroebnerCutOffSum n Integer Aliases None Description Sets the min for sum on polynomial degree cut offs Arguments n is an natural number Comments Limitations Not available before NCAlgebra 1 2 Chapter 40 Commands for Producing HTML Output This section describes commands which can be used to display formulas and expressions in HTML files This is done by creating gif files to display formulas and expressions that can not be displayed in plain text 40 0 4 ToHTMLStringlexpression Aliases HTML
227. le x y displays as x xy but is represented internally as the equivalent of x x xy 5 2 TEX Typesetting with NCTEXForm The Mathematica program provides a command called TeXForm which can be used to output your expression generated by Mathematica into TEX format We provide an alternative 103 command NCTeXForm that performs the same task to basic NC constructs through the file NCTeXForm m Examples of what this accomplishes are tp x will have the TeX ed form x aj x will have the TeX ed form x rt x will have the TeX ed form r 1 inv x will have the TeX ed form x 5 2 1 NCTeXFormfexp Aliases None Description NCTeXForm exp produces output that can be compiled by KITEX It assumes the user has the package amsmath installed Arguments exp is any mathematica expression or lists of expressions Comments Limitations Not available before NCAlgebra 3 9 As you might guess if you want to add more its easy To use this NCTeXForm m must be loaded thats all These are used by NCAlgebra and NCGB See the demos for more information 5 3 Simple TeX Commands with NCT X In this section we describe some handy additional T X display features we have added to Mathematica These act in addition to Mathematica s T X setting with NCAlgebra like TeX Form or Format TeXForm Mathematica s TEX conversion however does not need this and is fine with NCAlgebra since we have added special NCAlgebra
228. leanUpBasis 0 indicates that such additional processing should not be done Arguments n is an integer Comments Limitations Not available before NCAlgebra 1 2 20 2 12 CleanUpBasisQ Untested in 1999 Aliases None Description CleanUpBasisQ returns the argument of the SetCleanUpBasis command the last time it was used Arguments None Comments Limitations Not available before NCAlgebra 1 2 This allows one to see which cleaning option is in force 20 2 13 History Off NCGB has the ability to track the history of GB production This is used when the Re moveRedundant Options are turned on in NCProcess Since much storage is consumed by this history it is often advantageous to turn it off If you are just running NCMakeGB and you want to turn it off do this The command SetRecordHistory False 213 turns off the history collection except that it replaces useless rules which the code produced by the one dummy rule InvalidHistoryRule 0 The command SetRecordHistory True turns on the history collection If you happen to bring an InvalidHistoryRule 0 back into Mma either a InvalidRuleHistory is not a member of the order as expected and an error message is printed and then is reformatted as 1 gt 0 OR b InvalidRuleHistory is artificially a member of the order and one gets Invalid Histo ryRule 0 20 2 14 Correspondence to sections Simplification and Reduc tion This subsect
229. ll then you can use them and NCSR without going into a loop Indeed NCSR contains a Gr bner basis for reducing the set of polynomials in the expressions inv Here is a summary of the ordering conventions ranked from most complicated to the least high degree gt low degree inv of complicated polynomials inv of simple polynomials complicated polynomials simple polynomials commuting elements and expressions in then REMEMBER HIGHER ORDER EXPRESSIONS MOVE RIGHT 3 2 3 Automatic generation of rules Automatic generation of rules is the subject of the NCGB part of this document Since running the NCGB code requires C you may not have it Here NCSimplifyRationalX 1 does the trick Lying around in the directory NC NCAlgebra OldmmaGB is a primative NCSimpli fyRationalX1 which works entirely under Mma We don t support it since our efforts go to Mma C hybrids We do not even recall its name Anyone who resurrects it must be an intrepid adventurer 3 3 Edit For those without Notebooks The failsafe command Edit does not get enough emphasis in the Mathematica literature This command guarantees that Mathematica is never worse than a yellow pad Whenever you have an expression expr and the functions at your disposal are not doing what you want just enter In 102 Edit expr Mathematica throws you into a file containing expr You can edit it with the vi or emacs editor or whatever is set up Then exiting the
230. lt True does sort it so that it tries the shortest candidates first since in practice the longer ones don t tend to work Setting it to False does not do the sorting step NCProcessOptions SBByCat False RR False This allows one to set additional options when NCProcess is run The default is SBByCat False RR gt 269 False A typical setting might be NC ProcessOptions gt SBByCat gt False NCCV gt True list of the outputs from NCProcess e Stopl f Found True This option determines whether the program stops if a moti vated unknown is found The default True stops if a motivated unknown is found and returns only this pair Setting this option to False runs all possibilities in NCProcess and returns all of the results whether a motivated unknown is found or not Comments Limitations This procedure uses the ambient monomial order in NCGB Further more the monomial order is changed by this program The variables motUnknown and Tp motUnknown are inserted in a graded piece between the current knowns and unknowns if these variables are not already present This function runs NCProcess many times and therefore produces a number of tex files actually it produces exactly Length NCXMultiplyBy Monomials NCXPossibleChange0f Variables l aList0fPolynomials Options tex files These files are named nameno where name is the string given as an argument no is added and is a number This function uses
231. m HWU HWUY Y gt G2 x W U HWY HWUY U gt g z Y HW HWY Y gt G2 x W U These formulas contain state variables only IA systems sHWUY HWUY ruxz sHWU HWU ruxz sHWY HWY ruxz sHW HW ruxz These formulas contain dual variables only IA systems dHWUY HWUY rudual dHWU HWU rudual dHWY HWY rudual dHW HW rudual Extremizing Hamiltonians ricd Riccati from bounded real lemma for SISO systems sec 5 1 CritW x_ z_ b_ value of W which makes Grad sHW W 0 both IA and WIA systems sHWo max sHW IA systens W sHWoWIA max sHW WIA systems W 337 338 CritU x_ z_ value of U which makes Grad sHWU U 0 IA systems RULES FOR CRITICAL VALUES ruCritW W gt tp B1 x1 tp GEx x z tp D21 x tp b z tp GEz x z ruCritU U gt invleilx tp B2 x1 tp GEx x z inv e1 x tp D12 x C1 x Nonlinear Riccatis THE DGKF RICCATIS IAX x_ XX x ALx B2 x invle1 x tp D12 x C1 x tp C1 x D12 x invlei lx tp B2 x tp A x tp XX x tp C1 x C1 x XX x B1 x tp B1 x B2 x invleilx tp B2 x tp XX x1 tp C1 x D12 x invleilx tp D12 x C1 x IAYI x_ YYI x Alx Bilx tp D21 x inv e2 x C2 x Gtp c2 x inv e2 x D21 x tp B1 x tp A x tp YYI x tp C1 x C1 x YYI x B1 x x tp B1 x
232. m item 8 is bigger than the number from item 7 then m is bigger than n If the numbers from items 7 and 8 are equal then proceed to the next item 10 At this point say that m is smaller than n if and only if m is smaller than n with respect to the graded lex order A lt B lt C lt a lt b lt c lt d lt e lt f For more information on multigraded lex orders consult HSStrat 18 4 The list of commands 18 4 1 SetMonomialOrder aListOfListsOfIndeterminates Aliases None Description SetMonomialOrder a b c sets the graded lex order a lt b lt c lt witha lt b lt c lt If one uses a list of variables rather than a single variable as one of the arguments then multigraded lex order is used It is synonomous with SetMonomialOrderK a b c Pure lex order a lt lt b lt lt c lt lt on these variables is set by SetMonomialOrderK a b Lc Arguments A multigraded lex order a lt b lt lt c lt on these variables is set by SetMonomialOrderK a b c aListOfListsOfIndeterminates is a list of Mathematica variable or a list of Mathematica variables Comments Limitations Not available before NCAlgebra 1 2 Equivalent to SetMonomialOrderK a b c A is SetMonomialOrder a b y Lc A Or alternatively this is equivalent the following two commands SetKnowns a b SetUnKnowns c A which we now describe 195 18 4 2 SetUnknownslaListOfIndeterminates Al
233. m number of TEX windows to be N which appear using SeeTeX N SeeTeX is the same as SeeTeX 5 the first time that it is called See also NoTeX KillTeX and Keep Arguments anInteger is an integer Comments Limitations Not available before NCAlgebra 2 1 At this time SeeTeX is implemented by creating a directory called TeXSession The directory TeXSession is filled with files as the session continues The files corresponding to the k the out put are masterk tex and outk tex The file masterk tex is boring The file outk tex contains the TEX for the output Out k See also the command SeeTex These files are kept until the KillTeX command 85 4 3 is invoked or until you reload NCAlge bra m BEWARE LOADING NCAlgebra m AUTOMATICALLY DELETES THE DIRECTORY Also the directory contains a few dvi files and the windows are produced automatically by running xdvi on masterk dvi When the TeX windows are removed automatically the corresponding dvi file is automatically removed The function Keep k 85 4 5 prevents masterk dvi and the associated window from being deleted 5 4 2 NoTeX Aliases None Description NoTeX tells Mathematica to stop putting windows on the screen Arguments None Comments Limitations Not available before NCAlgebra 2 1 The command NoTeX stops TeX files from being added to the directory TeXSession It does not remove any files from the directory TeXSession BUG If one does SeeTeX 4 then puts up 4 windows
234. m with only one indeterminate also known as singletons are not included in the input to the small basis algorithm since the user typically does not want them removed The singletons do however appear in the output of NCProcess when SB FlatOrder True The default is SB FlatOrder False however SBFlatOrder True is probably significantly faster 199 200 DegreeCapSB aNumberl and DegreeSumCapSB aNumber2 Beginners should skip this part of Appendix 19 and rely on the NC Process defaults The reducing algorithms Small Basis and SmallBasisByCategory call NCMakeGB 89 3 These calls to NCMakeGB can be very time consuming and so it can be beneficial to direct NCMakeGB The NC Process options DegreeCapSB and DegreeSumCapSB are used when NC Process calls SmallBasis or Small BasisByCategory Thus DegreeCaps are valuable in limiting the time they consume In particular NCProcess polys iters filename DegreeCapSB gt jl DegreeSumCapSB gt j2 OtherOptions produces the call NCMakeGB polys iters DegreeCap gt j1 DegreeSumCap gt j2 OtherOptions inside Small Basis or Small BasisByCategory More appears on this in the long document describing the commands Small Basis and Small BasisByCategory The defaults at the moment inside of NC Process are DegreeCapSB 1 DegreeSumCapSB 1 19 2 NCCollectOnVars An extremely important option for NCProcess is NCCollectOnVars In addition to being an option it can
235. mber2 162 15 3 3 MainUnknowns aListO fIndeterminates 162 15 3 4 NCShortFormula Length oo es 163 15 3 5 Getting Categories iia aa a er ae en 163 15 4 Typical use of the NCProcess command 0 0004 163 15 5 Details of NEPr ces aa ah sera er ia 165 15 5 1 NO Process command y Sach een amp 165 15 5 2 NO Process command pi eo y ae EPS da 166 15 6 NCProcessl and NCProcess2 The technical descriptions 166 NCAlgebra V NCGB FOR THE MORE ADVANCED USER 16 NCProcess The Concepts 16 1 NCProcess Input and Output os reed IE El mmehon erre a e a Bol oes Mets BE et de E De DA a ed tz 16 3 What is a prestrategy ti aa an EN 1 A NR eden ateet MN Es Hk ke eos Se i eh 16 3 3 Redundant Equations 2a 44 460 62 200 Soho A oleae 16 3 4 Summary of a Prestrategy 2 EEE nn 16A Asa er ee ee ee ee Er fan amos ead 17 Another Example Solving the H Control Problem 17 1 Problem statement 28 amp 27425 8872 25 SH e RS oe Re dar ar 17 2 The key relations executable form 2 2 2 22 CE nn 17 3 Solving HG RATE using NCProcess bos Fe bl ad I Step dee a ee ese Viel ern ee ee ee 17 3 2 Step 2 The user attacks a N ehe er era TSS Step Os a EB A ee TEIAS ea en E E a a Be a S TrA End Games sa at 2a er a o e 167 169 169 171 171 172 172 173 173 173 VI NCGB LISTS OF COMMANDS AND OTHER DETAILS189 18 Ordering on variables and monomials 18 1 Lex Ord
236. me effort Here is a brief overview of what would need to be done There are several gifs already created They are in a directory called GifDirectory in the directory containing the Mathematica source code for NCAlgebra If you do not have write permission then copy this directory to someplace where you do have write permission Also put the file HTMLHardWired m someplace where you have write permission It would be best to put it in your current working directory Adjust your Mathematica Path variable so that this copy of HTMLHardWired m will be loaded When that doesn t work send us e mail at ncalg osiris ucsd edu 40 1 Using an input file Because Mathematica is interpretive it is tempting to perform computations by starting Mathe matica and start typing Often however we have found that it is often the case that it is helpful to construct an auxilary file and then to load that file This has the benefit of allowing the user to modify the computation slightly and rerun it as well as the additional benefit of recording the computation A common input file may have the form First version of the file Get NCGB m start x x a Inv Ly y 1 y Inv y 1 1 x Inv 1i x 1 Inv 1 x 1 x 1 start NCExpand start NCExpand alias NCE is explained in the NCAlgebra document Print start start After the file is run one can see whether or not the file executed correctly It does not we forgot the
237. mutative function A Second Derivative Command NCHessian computes the Hessian of a function with noncommuting variables and coefficents Computing The Region Where A Noncommutative Function is Convex NC ConvexityRegion is a command used to determine the region of formal noncommutative inequalities where a given noncommutative function is convex Basic Changes NCGuts NCGuts holds set of options geared for simplifying transposing finding the inverse and multiplying matrices conaining noncommuting variables NCStrongProduct1 gt False is the first option of NCGuts When True serves to multiply matrices with noncommutative entries as well as maintaining its original function In addition tp and tpMat are the same The default setting is True NCStrongProduct2 gt False is the second option of NCGuts When set to True if M is a matrix with noncommutative entries inv M returns a formula expression for the inverse of M NCStrongProduct2 forces NCStrongProduct1 23 NCSetNC gt False is the last option of NCGuts When set to True all letters are automatically noncommutative unless SetCommutative makes them commutative This replaces the need for repeated calls to SetNonCommutative Commands For Matricies With Noncommuting Entries NCLDUDecomposition Given a square matrix M with noncommutative entries this com mand finds the LDU decomposition of M It returns a list of four elements namely L D U and P such tha
238. ncluded and see the appendix on running SYSTEMS We see this package as a competitor to the yellow pad Once you get used to it this might be considerably more effective for some types of hand calculations Like Mathematica the emphasis is on interaction with the program and flexibility see the section on Editing in the Helpful Tricks chapter Chapter 3 NCAlgebra uses a slight modification of the Mathematica operation NonCommutative Multiply denoted by Many of the NCAlgebra functions are noncommutative versions of Mathematica functions used for simplification of commutative algebraic expressions For ex ample the functions NCExpand and NCCollect extend the utility of the usual Mathematica functions Expand and Collect to algebraic expressions including noncommutative multiplica tions NCExpand expands complicated multi parentheses expressions and thus facilitates additive cancellation of terms NCCollect does the opposite it collects like terms In addi tion a number of more specialized functions are designed to assist in solving particular types of algebraic problems These currently include capabilities for block matrix manipulation multi dimensional differentiation and specialized applications in systems theory In Chapter 1 we present a few simple examples These actually contain more than you 17 18 NCAlgebra need to know to have a good time with NCAlgebra Once you have read about two pages you are already WELL INTO NCAlg
239. ncommutative variables H H Ho H and their transposes NCMatrixOfQuadratic O H Ha2 Hn generates the list left border vector coefficient matrix right border vector That is Q is factored into the vector matrix vector product V H MoV H The vector V H is linear in H and is called a border vector of the quadratic function Q The matrix Mo is called the coefficient matrix of the quadratic function Q Arguments Each term of Q is assumed to be a quadratic expression in terms of the variables H Ha H and their transposes Q is homogeneous For example suppose that Q 3tp x x xy 3tply xx and that H x y Then NCMatrix0fQuadratic Q H gives tple tplul yy 440 34 13 OFF aj ty In MatrixForm this looks like cta In general suppose Q is a quadratic function of two variables H H K with all transpose elements HT KT occuring before all non transpose elements Then NCMatrixOfQuadratic will return the left border vector V H the matrix Mo and gt the right vector V H where 82 Au An Are Ada o gt Ain T Aio Ag gt Asa Aa gt Aan T T Mo Alo As o rin Age Ag e141 rail Agi n T T T 1 41 1 A gt e41 Ay e Ag 41 41 Bee Ab n T T T T Ain An ae Ag Ay sin Ann HL 1 HL and V H HL KI KL 2 for some L i 1 The Lj i 1 2 are called the coefficients of the border vector The L corresponding to H are distinct and only one m
240. nd NCCollectOnVariables is an extremely useful command which collects knowns and products of knowns out of expressions For example suppose that A and B are knowns and X Y and Z are unknowns The collected form of XxxAxx BxxZ Y xx Axx BxxZ AxxX AxxY is X Y Ax xBx xZ Axx X Y This is discussed more in Appendix 19 The demonstration in this section will repeatedly call the NCProcess commands with the option NCCV gt True which is the default This displays formulas in the spreadsheet in an informative way Whenever a collected form of a polynomial is found the NCProcess command displays it in the collected form rather than as a rule A basic problem in systems engineering is to make a given system dissipative by designing a feedback law We now give a demonstration of how one discovers the algebraic part of the solution to this problem The following section is reasonably self contained 17 1 Problem statement Let Hs Hez H and H be defined as follows His En AHA Eu C Ci ER bC C3 b ET E By b7 ET Fy By Br Er Ey bb EL Ei2b BI Ey 175 176 a Ex El Ay En A 9 cT Ci Eb Co Ir c BI ET T Er Bb E ET 21 P1 21 15 E Bi Br ET EN Eo bb E EL 22 Eio Eso b BT ET E El Use A E eO cd Ea Bt En Byc Cy b Ey 2 Er By bT En Fy By Br EX ES Eia ER bBTER Ep ER b BIT El 2 2 Ho Eya a Ef c c En Bac c BE EL En B
241. nderstanding of n n 1 n 1 n 2 see the footnote in 815 2 Arguments Part V NCGB FOR THE MORE ADVANCED USER 167 Chapter 16 NCProcess The Concepts We turn to a much more adventurous pursuit which is in a primitive stage This is a highly computer assisted method for discovering certain types of theorems At the beginning of discovering a theorem an engineering or math problem is often presented as a large system of matrix or operator equations The point of the method is to isolate and to minimize what the user must do by running algorithms heavily Often when viewing the output of the algorithms one can see what additional hypothesis should be added to produce a useful theorem and what the relevant matrix quantities are Many theorems in engineering systems matrix and operator theory amount to giving hypotheses under which it is possible to solve large collections of equations It is not our goal to reprove already proven theorems but rather to develop technique which will be useful for discovering new theorems Rather than use the word algorithm we call our method a strategy since it allows for modest human intervention We are under the impression that many theorems might be derivable in this way A detailed description of a strategy is given in HS Prestrategies are a particular type of strategy which are easier to explain This chapter will describe the ideas behind a prestrategy In this chapter unlike C
242. ndex y tad a A a ea A A ee 340 16 NCAlgebra Preface NCAlgebra is a package which runs under Mathematica It is an algebra program designed to facilitate manipulation and reduction of noncommutative algebraic expressions Specifically it allows computer calculation in an ALGEBRA WITH TRANSPOSES OR ADJOINTS Such computations are common in many areas but our background is operator theory and engineering systems so we are aiming at applications in these areas rather than at the theory of symbolic computation A noncommutative Gr bner basis package is also available which is C linked to NCAI gebra At the moment we trust it under the Solaris Linux Mac OSX Someday we hope to support Microsoft Windows We have added files which allow one to use some of the functionality of the Mathematica package Control System Professional with noncommuting indeterminates Also included is a package for doing differentiation with complex variables This package manipulates expressions in terms of the variable z and Z rather than by using real and imaginary parts We are including a collection of files for doing system engineering These are focused specifically on computations which occur in doing H control research Our intent is not to produce a symbolic introduction to system theory but to focus on special areas of our own research with the hope that others will write more general systems packages The interested user should read SYSDOC dvi which is i
243. nes where the test problems are kept If you have some test problems of your own you may test them by giving the path to them as the value The default is NC TestInput StringJoin SNC TestPrefix TestProblems If you do several tests you can keep the results in separate directories by giving NC TestResults the path as its value TYou may want to type NC Developers False Note the default is NC Developers True This unsets an environment variable which means you get the fancy version of our testing programs We have forgotten what this does 245 The default setting is NC TestResults StringJoin NC TestPrefix TestResults NC Test References defines the directory in which the trusted answers to the test problems are stored When you run the test the files in TestResults will be compared to these reference files Also if you are creating your own reference files you may want to redefine the path to avoid overwriting the answer we so helpfully provide The default is NC TestReferences StringJoin NC TestPrefix TestReferences Remember before doing anything make sure the TestingEnvironment m file has the right definitions to avoid sending files in all directions Creating Test Results To create a set of test outputs stay in the Testing directory Make sure you have lots of test problem files in the TestProblems directory say cOl data m thru c85 data m Make sure the TestReference d
244. ning at the end of this note In 1 lt lt ComplexRules In 2 y Rel e w z 72 72 22 Out 2 Re e wz To rewrite this in terms of variables and their conjugates apply the list of rules Complex Rules as follows In 3 y ComplexRules 2 22 e wz Conjugatele Conjugate w Conjugate z You can get the same result with the function ComplexCoordinates In 4 ComplexCoordinates y 2 22 e wz Conjugatele Conjugate w Conjugate z 69 Suppose that you know that in the expression above e ranges in the unit circle of the complex plane and that w is real To simplify you can do this In 5 1Conjugatele gt 1 e Conjugate w gt w 2 1 22 e wz w Conjugatelz Complex derivatives are easy to produce with ComplexD In 6 ComplexD y z 2 Out 6 w e wz e w z 2 Conjugatele Conjugate w Conjugatelz Here is a differentiation with respect to Conjugate w In 7 ComplexD y Conjugate w Out 7 Conjugate z Conjugatele Conjugate w Conjugatelz 2 2 gt e wz Conjugatele Conjugate w Conjugatelz A mixed second order partial derivative is shown below In 8 ComplexD y Conjugatelz z 70 Out 8 2 w e w z Conjugate w gt Conjugatele Conjugate w Conjugate z Repeated differentiation is also possible In 9 ComplexD y Conjugate z 2 2 2 Out
245. nk of this package as being useful for at least 4 things 1 Simplifying complicated expressions Chapter 9 2 Eliminating unknowns from collections of polynomial equations and sorting the result Indeed the package is aimed at discovering algebraic theorems and appealing formulas semi automatically Chapters 16 and 15 with examples in Chapters 14 and 17 3 Finding small bases for ideals in a noncommuting algebra Chapter 21 4 Producing Groebner Bases in noncommuting situations Chapter 9 This package can be used with the NC Algebra package to add powerful automatic meth ods for handling collections of equations in noncommuting variables Most commutative algebra packages contain commands based on Gr bner Bases and uses of Gr bner Basis For example in Mathematica the Solve command puts collections of equations in a canonical form which for simple collections readily yields a solution Likewise the Mathematica Eliminate command tries to convert a collection of polynomial equations e g pj 1 Tn 0 1 lt j lt k in unknowns 21 2 t toa triangular form in unknowns that is a new collection of equations like q x g2 21 2 ys si q3 z1 12 0 0 da X1 T2 L3 ee 127 128 Here the polynomials q 1 lt j lt ka generate the same ideal that the polynomials p 1 lt j lt k generate Therefore the set of solutions to the collection of polynomial equations p 0
246. nomials are dependent if variables commute and independent if not So in this case or when the the ex pression does not collapse to zero when using the commuting coefficients with the non commuting polynomials then the list Undertermined expression list is returned The list element expression is the sum of the polynomials with their corresponding A s And finally list yields a list of the dependencies for the coefficents 4 8 4 NCBorder VectorGather alist varlist Aliases None Description NCBorderVectorGather alist varlist can be used to gather the polyno mial coefficents preceeding the elements given in varlist whenever they occur in alist That is to say alist is a vector with variable entries Each entry should end with some term from varlist or the transpose of some term from varlist Then for each element of varlist the coefficients that appear in front of that element in alist are gathered to gether and placed inside a list The list returned will be a list of lists each entry a list 85 of the coefficients corresponding to the respective entries in varlist and their transposes if they occur Arguments The first argument alist is a list of polynomials all of which end in terms from elements of the second argument varlist or in their transpose alist need not be ordered in a particular way with respect to varlist The preceeding is best explained in the following example Suppose List Ax xB x xk B x
247. notation Let A be an affine k algebra that is an algebra finitely generated over a field k Then A k V where V Spang 1 21 m for some x C A Define V ODA Ej Ej Lj 1 lt ji lt M Nji lt n so that k V V V gives the standard filtration of A Note also that Ha t dim V A quick fact about GK dimension It is known that there exist algebras of GK dimension r for any real number r 0 U 1 U 2 00 and moreover no other number is attained There are several reasons that the Gelfand Kirillov hereafter abreviated GK dimension is an apropriate measure of degrees of freedom The following four standard theorems tell us that the GK dimension behaves much like the transcendance degree from commutative algebra They follow easily from the definition and a little combinitorics Proofs can be found in the references at the end of the chapter 231 Theorem 24 2 If A is a commutative algebra then GK A Krull A Theorem 24 3 If B C A is a subalgebra then GK B lt GK A Theorem 24 4 If C is a homomorphic image of A then GK C lt GK A Theorem 24 5 Let A be an affine algebra with GK dimension r Then GK Alx r 1 where x is a new central indeterminate The following theorem shows that the GK dimension is well behaved with respect to quotient algebras Theorem 24 6 Let A be an affine algebra and I an ideal of A that contains a left or right non zero divisor ce A Then GK A I 1 lt GK A
248. npacking any of these files will create a directory NC which contains all the files necessary to run NC Algebra If you downloaded the NCAlgebra zip file e Use your favorite zip utility to unpack the file NC Algebra zip in your favorite location If you downloaded the NCAlgebra tgz file e You can uncompress the file using your favorite zip utility or using the command line tar xvzf NCAlgebra tgz If your tar version does not support zip files you may have to do it in two steps gunzip NCAlgebra tgz tar xvf NCAlgebra tar 1 1 3 Installing All that is needed for NCAlgebra to run is that its top directory the NC directory be on Mathematica s search path If you are on a unix flavored machine Solaris Linux Mac OSX then unpacking in your home directory is all you need to do You may want to try to run NCAlgebra as explained in the next section to see if that works If you want to put the files someplace else all you need to do is to modify Mathematica s search path You can do this in one of two ways If you are experienced with Mathematica e Edit your init m file to add the name of the directory which contains the NC folder to the Mathematica variable Path Or e You can use our InstallNCAlgebra nb notebook to automagically set up the Mathemat ica s Path variable Open this notebook and follow the directions which are found there 1 2 Running NCAlgebra In Mathematica notebook or text interface type
249. nspose relation while setting it to True will not add the transpose relation AllRelations False This option determines whether the Grobner Basis is computed using only the relation that motivated the candidate together with the candidate or if it uses all of the given relations plus the candidate The default False only uses the polynomial that motivated the unknown plus all relations of length 2 these we will consider important relations and include relations defining inverses and symmetry while setting it to True uses all of the relations CountV ariables True This option determines whether or not NCXPossibleChangeOfVariables eliminates the candidates which do not contail all of the unknowns present in the polynomial that motivated it and thus the candidate cannot reduce that polynomial to a polynomial in one variable The default True does eliminate these possibilities while setting it to False does not do this elimination MultiplyByMonomials False This option determines whether or not NCXMultiplyByMonomials is called so that if no candidate works it tries to multiply though by monomials on the left and or right The default False does no multiplying while setting it to True tries multiplying through by monomials SortByTermLength True This option decides whether or not to sort the results of NCXPossibleChangeOfVariables by the length number of terms in the candidate shortest to longest The defau
250. nv a b c d z x y wh Execute one of the cells below depending on whether you wish the output to be sorted and specially formated or not Now we compute a partial Groebner basis In 5 grobnerBasis NCMakeGB inputPolys 4 Out 5 1 ax w x x d ak ctx z 1 c x z 1 c xy wk xa detatzery 1 Invlal a l a Inv a 1 b d y w 1 z y c ctw x w cx x d wk xaxkkw Ck KZtWKKAKKC Z d d axxkW Z Z KZ A KAKKC AAA RCA AZ AZAR A dao Lt zt d x Now we compute a Groebner basis reduce some redundant polynomials sort the result and display it in TeX This may take a long time 145 146 equivalentPolySet NCProcess inputPolys 4 MyTexFileName Usually much faster than this is equivalentPolySet NCProcess inputPolys 4 SBByCat gt False MyTexFileName Also an unreduced but sorted partial GB is equivalentPolySet NCProcess inputPolys 4 SBByCat gt False RR gt False MyTexFileName Chapter 13 NCProcess What It Does What you saw in Chapter 11 was an example of the command NCProcess and of our favorite form for output called a spreadsheet Now we give a little bit of an idea of what it does Later we explain NCProcess in much more detail since we will not be providing descriptions of how to use commands or much else in this chapter See Chapters 9 and 14 For more on concepts see Chapter 16 The example in Chapter 14 is a very good illustration of these
251. o extract what is collected to either side of the known The program now keeps a list of pairs P C where P is the polynomial 265 266 on which NCCollectOnVariables was called and C is one of the things collected to either side of the knowns The resulting list has all such pairs related to the given list of polynomials Note that if nothing can be collected no entries are returned and our algorithm cannot find a motivated unknown 31 1 3 Eliminate candidates which are too small The next step is to look at the number of unknowns in the candidates for motivated unknowns and to try to eliminate some without running a Grobner basis algorithm This step counts the number of unknowns in the candidate C in the pair described above and compares it to the number of unknowns in the polynomial that motivated it P above Since the idea is that the candidate C will reduce P to a function of one variable we can eliminate the pair if C has less unknowns than P This is exactly what this step does It also eliminates pairs where C is just one variable 31 1 4 Eliminate purely numerical terms from candidates De fault is Off Here we eliminate purely numerical terms from the candidates for motivated unknowns Thus if our candidates starts as xy 1 we instead take as our candidate xy I m not sure if this step is still necessary but in the past there were difficulties matching when the candidate had a numerical term To turn off this step re
252. o not have version 2 6 3 or better talk to your system administrator 34 1 1 Compiling the C part of NCGB The file NC NCGB contains a README file This file describes how to compile the NCGB code There are in addition README files in each subdirectory of NC NCGB In short one wants to type make p9c in the NC NCGB Compile directory and copy and or link In s the binary from NC NCGB Compile dlink p9c into NC NCGB Binary p9c lWe know that 2 6 0 will not work We have not tried 2 6 1 or 2 6 2 We have tried 2 7 0 on an HP Version 2 7 2 works on Suns 283 284 34 2 Running NCGB This is described in the NCDOCUMENT but we repeat it here A session begins by Getting in the NC directory entering Mathematica and typing lt lt SetNCPath m lt lt NCGB m 34 2 1 Loading NCGB more quickly When you load NCGB it automatically loads NC Algebra When you load NCAlgbebra you have a choice of loading many files or huge numbers of files The default is the latter so you must sit and wait If you get mad as hell and won t take it any more stop Before loading Mathematica or anything type NC LongLoadTime False This sets an environment where the shorter version of NC Algebra m is loaded Note NC LongLoadTime True is the default Chapter 35 For the Home Team 35 1 How to make the PC version of NC The NC zip entire structure can be made from any person s account first use the command tar cvf NC tar This will c
253. o replace them with the appropriate multiple of the identity matrix e x gt PrimeMat n na k This is an auxillary function built in to NCXRepresent that will replace a variables by a matrix consisting of distinct prime entries To use this one just puts the rule above in the list aListOfExtraRules This will replace x with an n x na matrix with prime entries beginning at the kth prime 273 274 e Any other replacement rules may be listed in aListOfExtraRules such as tp gt Transpose or other hand made rules replacing a variable by some specific matrix Arguments aListOfVariables aListOfDims aListOfExpressions aListOfFunctions aListOfEx traRules Comments Limitations IfaListOfExpressions includes constant terms one must first replace them with a variable and then use the optional list of rules to replace them with identity matrices of appropriate size Mathematica does bad things to expressions that contain both a matrix and a constant namely it adds the constant to each entry of the matrix Any of the lists other than aListOfExpressions may be left as the empty set A warning if a variable appears only as the arguement in a function in aListOfFunctions one must still put the variable in the second arguement and its size in the third The reason is its size must be specified somewhere for the function to work aListOfVariables should include only those variables that are to be replaced by purely symbolic matrices and sh
254. of polynomials for Mathematica The strategy that the user follows at this point was described in 814 3 Recall that it led the user to select the relations mini Py nym 1 Na M 1 mans 1 M n and to declare the new variable P to be known Next we describe how this is input to NC Process1 in order to produce the second spreadsheet from 14 3 The Mathematica output of any of the NC Process commands is a list containing three lists In the example above that list is named result Recall that in Mma the way to get sublist number j inside result is to type result j The second round of this strategy session is In 7 SetKnowns A B C P1 In 8 digested result 2 In 9 undigested result 3 In 10 interesting m1 n1 P1 n1 m1 1 n2 m2 1 m2 n2 1 m1 n1 In 11 nextinput Union digested interesting undigested In 12 NCProcess1 nextinput 2 Spreadsheet2 UserSelect gt discovered DegreeCap gt 3 DegreeSumCap gt 6 Now we discuss the input to NCProcessl above The variables digested and undi gested hold the the last two lists from the list result which the first NC Process1 command returned and discovered includes the new definition of P The union of these three lists is taken as the input for the second NCProcessl run Once again we used two iterations This is a good number of iterations with which to start More iterations can be used if there is a lack of progress The next ar
255. of the two parameters in the statement One obvious helpful habit would be to use alphabetical order i e say SetCommutingOperators a b and not the reverse 4 6 5 LeftQ expr Aliases None Description See SetCommutingFunctions and SetCommutingOperators Arguments expr is an algebraic expression Comments Limitations None 75 4 6 6 CommutativeQ X Aliases CQ Description CommutativeQ X is True if X is commutative and False if X is noncommu tative Arguments X is a symbol Comments Limitations See the description of SetNonCommutative for the defaults 4 6 7 CommutativeAllQ expr Aliases None Description CommutativeAllQ expr is True if expr does not have any non commuting sub expressions and False otherwise Arguments expr is an algebraic expression Comments Limitations None 4 7 Operations on elements in an algebra 4 7 1 invix Aliases None Description Inverse a inv a inv a a Id Arguments x is a symbol Comments Limitations Warning NCAlgebra does not check that inv x exists or even that it makes sense e g non square matrices This is the responsibility of the user 76 4 7 2 invLix Aliases invL Description Left inverse invL a a Id Arguments x is a symbol Comments Limitations Warning NCAlgebra does not check that invL x exists This is the responsibility of the user 4 7 3 invR x Aliases invR Description invR x is the right
256. ome of the difficulties For example one might not instantly have all of the insight which leads to the second spreadsheet In practice a session in which someone discovers this theorem might use many spreadsheets 158 Chapter 15 NCProcess The Commands Now that the user has a feel for what we are doing we describe the NCProcess commands one runs over and over again to produce the example in Chapter 14 We are currently working on this command so it is changing with time 15 1 SetKnowns and SetUnknowns In most mathematics and engineering appications certain quantities are considered known and others are considered unknown The goal is usually to solve for unknowns in terms of the knowns or to solve for some unknowns in terms of others In a prestrategy session one must declare which variables are knowns and which ones are unknowns While this declaration evolves through the course of a session it is at any moment a part of the computing environment Indeed before any of the NC Process commands can be called it is necessary to set all variables to either be known or be unknown Mathematically the variables which are declared unknown are those which one wants to solve for An example is Example 15 1 SetNonCommutative A B C a b c SetKnowns A B C SetUnknowns a b c After the above three commands have been executed the user can run any ofthe NCPro cess commands NCProcess1 NCProcess2 or NCProcess on any equat
257. on of the Facts 37 2 37 3 and 37 4 In fact even if one realized from the beginning of the computation that a and c have no common eigenvalues there is no way to express this hypothesis using polynomial equations In fact a complete analytic argument which showed that b 0 would consist of an algebraic derivation of the identity ab bc followed by the use of the hypothesis that a and c have no common eigenvalues One would not in general know in advance that ab bc and so it would be premature to add b 0 to the collection of polynomial equations at the beginning of the computation 295 296 Chapter 38 Possibly Obsolete Command Descriptions 38 1 NCMakeGB Options maybe obsolete ction history 38 1 1 SupressCOutput False less output to the screen Aliases None Description SupressCOutput is an option of NCMakeGB As one of the last arguments of NC MakeGB you may include either the rule SupressCOutput True or SupressCOutput False If True is used then the C code will decrease the amount of information it prints to the screen during the run of NCMakeGB This option only effects the amount of information dis played to the screen The default value is False For example NCMakeGB aListOfPolynomials iterations SupressCOutput gt True Arguments None Comments Limitations Not available before NC Algebra 1 2 38 1 2 SupressAllCOutput False very little outp ut to the screen Aliases None Des
258. one should never use inv m to represent m in the input of any of the commands explained within this document because NCAlgebra has 137 already assigned a meaning to inv m It knows that inv m x m is 1 which will transform your starting set of data prematurely Besides Inv many more functions are facilitated by NCMakeRelations see Section 22 0 1 10 4 2 Saving time working in algebras with involution NCAd dTranspose NCAddAdjoint One can save time when working in an algebra with transposes or adjoints by using the command NCAddTranpose or NCAddAdjoint These commands symmetrize a set of relations by applying tp or aj to the relations and returning a list with the new expressions appended to the old ones This saves the user the trouble of typing both a b and tpla tplb NCAddTranspose a b tp b c ta returns a b _ tplb c a b tp c tplal tplal tp b gt 10 4 3 Saving time when setting orders NCAutomaticOrder One can save time in setting the monomial order by not including all of the indeterminants found in a set of relations only the variables which they are made of NC AutomaticOrder aM onomialOrde aListO f Polynomials inserts all of the indeterminants found in aListO f Polynomials into aMonomialOrder and sets this order NCAutomaticOrder aListO f Polynomials inserts all of the indeterminants found in aListO f Polynomials into the ambient monomial order If x is an in
259. onomial reverses what NCMonomial does NCUnMonomial changes the look of an expression by replacing a product of n copies of x with x For ex ample NCUnMonomial 2x xx 5x xx xx x xa evaluates to 22 5x and NCUnMonomial x x xx x z x xx evaluates to x xz xxx Arguments Any noncommutative expression Comments Limitations See NCMonomial NCAlgebra does not effectively manipulate expressions involving powers such as 1 4 2 Simplification This area is under developement so stronger commands will appear in later versions What we mean by simplify is not in the spirit of Mathematica s Simplify They tend to factor expressions so that the expressions become very short We expand expressions apply rules 54 to the expressions which incorporate special relations the entries satisfy Then we rely on cancelation of terms The theoretical background lies in noncommutative Gr bner basis theory and the rules we are implementing come from papers of Helton Stankus and Wavrik IEEE TAC March 1998 The commands in this section are designed to simplify polynomials in a b inv S a xb inv S b x xa inv S a inv S b and a few slightly more complicated inverses The commands in order of strength are NCSR NCS1R NCS2R Of course for a stronger the command more rules get applied and so the command takes longer to run First NCSIR normalizes inv S a x xb to ST x imv 1 a x xb S provided S is
260. ons Aliases None Description ShrinkBasis can take a long time to run and returns a L1 La Ly of lists of polynomials Each list L of polynomials is contained in aListOfPolynomials Each list L is a generating set for the ideal generated by aListOfPolynomials and the com puter makes a limited attempt to show that any proper subset of L does not generate the ideal Moreover the union of the L s is aListOfPolynomials Shrink Basis depends upon the monomial order which is set because it calls NCMakeGB where it iterates at most iterations times If all of the runs of NCMakeGB generate Grobner Bases in iterations iterations then no proper subset of an L is a generating set for the ideal generated by aListOfPolynomials The command works by brute force It selects a polynomial from aListOfPolynomials and computes a partial GB for the remaining polynomials with iterations iterations It uses these to eliminate the original polynomial 218 Arguments Comments Limitations Not available before NCAlgebra 1 2 21 3 First Example aListOfPolynomials is a list of polynomials fileName is a string For example after loading the files NCGB m SmallBasis m 21 1 1 we can execute the commands to compute a subset of a Gr bner Basis for the set of relations p x xp p p a p a x xp a a p p a a p a a p a a x a a p a k a kk a kk a KK a a KK p p P gt
261. orithms tries to generate this infinite set of relations and at any time has generated a finite subset of them When we are trying to discover a theorem or elegant formulas often these relations having higher powers are irrelevant and clutter the spreadsheet which merely serves to confuse the user This introduces the next topic which is shrinking a set of relations to eliminate redun dancy Our desire is to take the generated basis and to remove mathematical redundancy from the generating set without destroying the information which was gained while running the GB algorithm We have two lines of attack on this problem One will be described in this chapter another will be described in Chapter 30 21 1 Brute Force Shrinking Our second line of attack can be slower It finds a subset of the set of relations by applying the GB machinery For example if one knows that p is a member of the ideal generated 215 216 by p1 Pn 1 then the set p pn can be shrunk to pj Pn 1 Determining whether or not pn is a member of the ideal generated by p Pn can be partially decided by running the GB algorithm for several iterations 21 1 1 SmallBasis aListOfPolynomials anotherListOfPolynomials iter Aliases None Description SmallBasis aListO f Polynomials iter computes and returns a list aList which is a subset of aListO f Polynomials such that the ideal generated by aList equals the ideal generated by aListOfPol
262. ould not appear in the left hand side of a rule in aListOfOptionalRules Examples In 99 NCXRepresent A B A BF 2 1 1 1 0 0 Out 99 A11 B11 A21 B11 In 100 NCXRepresent A tp B A B 2 2 1 2 Y tp Out 100 A11 B11 A12 B12 A21 B11 A22 B12 Part VIII DETAILS ON INSTALLATION AND MAINTENANCE ONLY ON THE WEB 275 Chapter 33 NCAlgebra and NCGB Installation This chapter gives more detail on some aspects of Installation and running NCGB SYStems OldMmaGB These are kind of random remarks we wanted to hang onto but which are probably not too important 33 1 Running NCAlgebra See Chapter for the basics We have nothing to add to that here 33 2 Running NCGB See Chapter for the basics We remind the reader here A UNIX session begins by Getting in the NC directory entering Mathematica and typing In 1 lt lt SetNCPath m Then the file NCGB m is used to load all necessary files into Mathematica The command is In 2 Get NCGB m There are two configurations of this file it can load either NCAlgebra m or shortNCAlgebra m depending on the user s needs The file shortNCAlgebra m loads a smaller segment of the complete package 33 3 Running SYStems First edit the SYStems m file whose function is to load in the raw material for your problem Make sure it loads in what you need The file SYStems m is in the NCAlgebra directory The first thing t
263. permutation designated will be temporarily disregarded However NCLDUDecomposition will try and use the given permutation list for the next step In this way NCLDUDecomposition follows the user permutation as closely as possible If StopAutoPermutation True then NCLDUDecomposition will not automatically pivot and will strictly ad here to the user s permutation attempting to divide by zero if need be This will allow the user to determine which permutations are not possible Because NCLDUDecomposition will automatically pivot when necessary by default the ReturnPermutation was cre ated so that the permutation used in the decomposition can be returned to the user for further analysis if set to True To explain the last option it is somewhat necessary for the user to have an idea of how the pivoting strategy works The permutations used are always symmetrically ap plied Because of this we can only place other diagonal elements in the 1 1 position However it is possible to place any off diagonal element in the 2 1 position Thus our strategy is to pivot only with diagonal elements if possible If all the diagonal elements are zero then a permutation matrix is used to place a nonzero entry in the 2 1 position which will automaticaly place a nonzero entry in the 1 2 position if the matrix is symmetric Then instead of using the 1 1 entry as a pivot the 2x2 submatrix starting in the 1 1 position is used as a block pivot This has th
264. plays the KIEXed pdf output to the screen If you are in a notebook environment the resulting pdf file is imported back to the notebook Refer to Section for more details If you are in a text environment then it opens a pdf viewer with the following formula in its display ab e dt 34 The command In 113 NCTeX Sumlali i 1 50 ImportPDF gt False DisplayPDF gt True generates a window which contains the following formula in its display 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 a 11 a 12 a 13 a 14 a 16 18 a 19 a 20 a 21 a 22 a 23 a 24 a 25 a 26 a 27 a 28 a 29 30 a 31 a 32 a 33 a 34 a 35 a 36 a 37 a 38 a 39 a 40 a 41 a 42 a 43 a 44 a 45 a 46 a 47 a 48 a 49 a 50 a The above examples in this chapter demonstrate the most commonly used features in NCAlgebra Chapter 2 A More Sophisticated Demo This demo derives the Bounded Real Lemma for a linear system using NCAlgebra We will revisit this demo when we introduce NCGB This is a special case of this lemma for a more general system described in BHW First we load NCAlgebra and do some initialization In 1 lt lt NC In 2 lt lt NCAlgebra In 3 Clear F G A B x W XX In 4 SetNonCommutative F G A B C D x W XX In 5 Clearle F G pl In 6 elx_ tp x XX
265. plifyRational mtm does not provide the identity matrix even though it does equal the identity matrix The formula we use for NCInverse comes from the LDU decomposition Thus in principle it depends on the order chosen for pivoting even if the inverse of a matrix is unique 65 4 4 11 NCPermutationMatrix aList OfIntegers Aliases None Description NC PermutationMatrix laListO f Integers returns the permutation matrix associated with the list of integers It is just the identity matrix with its columns re ordered Arguments aListO f Integers is an encoding which specifies where the 1 s occur in each column e g aListOfintegers 2 4 3 1 represents the permutation matrix ooro OO O amp O oro coo oOo KF Comments Limitations None 4 4 12 NCMatrixToPermutation aMatrix Aliases None Description NCMatrixToPermutation aMatrix returns the permutation associated with the permutation matrix aMatrix Basically it is the inverse of NCPermutationMatrix Arguments aMatrix must be matrix whose columns or rows can be permuted to yield the identity matrix In other words aMatrix must be a permutation matrix For example if m 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 then NCPermutationMatrix m gives 2 4 3 1 Comments Limitations None 4 4 13 NCCheckPermutation SizeOfMatrix aListOfPermutations Aliases None Description If aListOfPermutations is consistent with the matrix size Size0f
266. polynomial in the variables of 10 1 We begin by setting the variables noncommutative with the following command In 5 SetNonCommutatively Invly Invli y a x Next we must give the computer a precise idea of what we mean by simple versus complicated This formally corresponds to specifying an order on the indeterminates If Invly and nv 1 y are going to stand for the inverses of y and 1 y respectively as the notation suggests then the order y lt Invly lt Inv l y lt a lt zx 133 134 sits well with intuition since the matrix y is simpler than 1 y To set this order input In 6 SetMonomialOrder y Invly Invli y a x Suppose that we want to connect the Mathematica variables Inv y with the mathematical idea of the inverse of y and Inv l y with the mathematical idea of the inverse of 1 y Then just type in the defining relations for the inverses involved In 7 resol y Invly 1 Invly y 1 1 y Inv 1 y 1 Invli y 1 y 1 Out 7 y Inv y 1 Invly y 1 1 y Inv 1 y 1 Invli y 1 y 1 As an example of simplification we simplify the two expressions x xx and x Inuly xInv 1 y assuming that y satisfies resol and ux x a The following command computes a Gr bner Basis for the union of resol and x a and simplifies the expressions x xx and x Invl y In
267. pt The TeX files are always kept whether or not you invoke Keep WARNING See KillTeX 85 4 3 This command requires that the SeeTeX be called before the use of See 107 5 4 6 KilllanInteger Aliases None Description KilllanInteger Arguments Kill k removes the window and the dvi file corresponding to Outl k Comments Limitations Not available before NCAlgebra 2 1 The file masterk dvi is deleted This command requires that the SeeTeX be called before the use of the command See The following two commmands require the loading of the file Extra TeXForm 5 4 7 LookAtMatrix aMatrix Aliases None Description LookAtMatrix aMatrix takes the Mathematica matrix aMatrix converts it to TEX outputs the string and surrounding KIIEXto a file TeXs the file and displays the TeXed output to the screen using the program dvipage this can be easily changed to other previewers such as xdvi or xpreview Arguments aMatrix is a matrix Comments Limitations Must have loaded the file Extra TeXForm 5 4 8 LookAtLongExpression anExpression Aliases None Description LookAtLongExpression anExpression takes the Mathematica expression an Expression converts it to TEX outputs the string and surrounding MIEXto a file TeXs the file and displays the TeXed output to the screen using the program dvipage this can be easily changed to other previewers such as xdvi or xpreview Arguments an Expression is an expression
268. put of NCProcess will only include equa tions whose unknowns are all contained in aListOfIndeterminates or are functions of them 163 15 3 4 NCShortFormula Length If NCShortFormula is set to an integer Length the output of NCProcess will only contain expressions whose Mathematica defined LeafCount is less than Length This could be useful in producing TFX output when very long expressions are involved This option also reduces run time significantly since there is much less output to process We often have good luck with NCShortFormulas 300 If set to 1 no length elimination will be done WARNING The two options given above NCShortFormula and MainUnknowns actually eliminate polynomials from the output of NCProcess If one of these options is set the system of equations which is the output of NCProcess is not equivalent to the system of equations which is input as is usually the case 15 3 5 Getting Categories GetCategory aListO f Variables NC PAns retrieves the polynomials in the category stored in NCP Ans corresponding to the list of variables in the list aListO fV ariables See Chapter 14 3 To be recognized immediately after an NCProcess run aListO fV ariables must equal a list of unknowns which corresponds to a category in that NCProcess run The NCProcess stores all category information in NCPAns The next NCProcess starts by clearing NCPAns and writes the category information it produces in NCPAns 15 4 Typical use of th
269. r x y rels x x y KY YRAYAKKKAX ORAR RAYA AR YARYARY yYRKYKAKAKY XHKKKAYAKK YRAXAKKKAX Y ARIARYARY yRKYKAVAAK KKKYKAVAAK Y ARA Y NCHilbertCoefficient 18 rels 3 ExpressionForm gt Homogeneous The call to NCMakeGB finishes after only 2 iterations so we know that the coefficients are being computed using a full Groebner basis hence they are exact The output is the following 2 4 8 10 12 16 20 25 30 36 42 49 56 64 72 81 90 100 After staring at this sequence for a while one sees that every other term is a square and the intermediate terms are products of sucessive integers after the 6th term A formula then is n n 1 where fa is the greatest integer less than or equal to a This is then clearly asymtotic to a quadratic polynomial This sequence came from a gradation so to get the sequence coming from the filtration we simply take the partial sums This in turn will be asymtotic to a cubic polynomial in n which we will call P n So the GK dimension of the quotient of the free polynomial algebra on two variables by the ideal generated by rels is log P n lim sup ae For further information on the function NCHilbertCoefficient used above see the docu mentation section 24 3 References 1 Nastasescu Constantin van Oystaeyen Freddy Dimesions of Ring Theory 2 McConnell J C Robson J C Noncommutative Noetherian rings 3 Krause G R Lenagan T H Growth of algeb
270. r than at the complete treatments of the basics in these subjects SYSTEMS is a package which runs under NCAlgebra It is in a primitive form with its main contents being a file for doing A control for linear and certain nonlinear systems This originated with a paper Aug91 by Ball Helton and Walker BHW which solves a collection of nonlinear H control problems The formulas in that paper are executable inside NCAlgebra which greatly facilitates further research along these lines 311 312 Chapter 42 How To Run The Systems Package The beginner should first print out the file NCDOCUMENT doc which explains how to use NCAI gebra A little practice with this would help To run SYSTEMS enter math at the UNIX prompt to execute Mathematica or whatever command is appropriate for your non UNIX system followed by lt lt SYStems m at the Mathematica In 1 prompt That is all there is to it Here SYStems m loads NCAlgbra m one of the SYSTEMS DEFINI TION files plus two of the SYSTEMS UTILITY files described below These files are currently limited primarily to the study of H control of a certain class of nonlinear systems There are additional files listed within comment delimiters in the SYSTEMS file which can be loaded to study slightly but not much different problems This includes the option of studying so called WIA systems in place of IA systems see SYSHinfl for definitions or specializing to certain linear probl
271. ras and Gelfand Kirillov dimension 24 4 Commands The commands and algorithms were done by Eric Rowell with help from Dell Kronewitter and Bill Helton 233 24 4 1 NCHilbertCoefficient integer1 aListOfExpressions integer2 anOption Aliases none Description NCHilbertCoefhcient integerl aListOfExpressions integer2 anOption attempts to compute the first integer1 coefficients of the Hilbert series for the algebra generated by the relations in aListOfExpressions There are four possible calls to this function here expressed in order of longest time used to least e The default no fifth arguement is for algebras that are nonhomogeneous This will compute a possibly partial Groebner Basis out to integer2 iterations of Mora s algorithm with respect to the ambient order convert this basis to rules and procede to compute the specified number of Hilbert series coefficients Unless the partial Groebner basis computed contains all the polynomials that will ever appear in the possibly infinite full Groebner basis up to degree integerl the dimensions of T computed will only be upper bounds e ExpressionForm Homogeneous This is only valid for homogeneous ideals This does as above only the resulting dimensions are for the standard grada tion and takes much less time In theory there should be no problem with the dimensions being inaccurate provided enough iterations are used There is an algorithm for homogeneous problems tha
272. re are some examples of how the NC Process commands are called NCProcess1 aListOfPolys 2 filname list NCProcess1 aListOfPolys 2 filname DegreeCap gt 8 DegreeSumCap gt 12 list2 NCProcess2 aListOfPolys 2 filname UserSelect gt anotherList DegreeCap gt 6 DegreeSumCap gt 10 2Up to four iteration numbers can be specified When only one is given NC Process uses that number to choose default values for the other iteration numbers If the user specifies four values J1 I2 Is I4 then I is the iterations for NCMakeGB I gt is the iterations for NCMakeGB on the digesteds I3 is the iterations for SmallBasis and J is the iterations for the knowns in SmallBasis 162 15 3 Commonly Used NCProcess Options and Com mands 15 3 1 UserSelect aListOfPolynomials A valuable option for NC Process is UserSelect Using the option U ser Select aListO f Polynomials forces the elements of the list aListOfPolynomials to appear in a User Selected part of the spreadsheet generated during this call to NC Process It also affects the order in which the polynomials are used inside NCMakeGB as well as reduction algorithms described in 819 1 The user selected polynomials are processed early and polynomials processed later tend to be eliminated 15 3 2 DegreeCap gt aNumberl and DegreeSumCap aNumber2 One way to reduce the run time for NC Process is to use the options capping the degree of the polynomials that are produc
273. reate the tar ed file in YOUR root directory Go to your root directory and make a new directory ncgbWIN with mkdir NCWin and move NC tar in to this directory mv NC tar NCWin NC tar change the current directory cd ncgbWin Untar the file with tar xvf NC tar This will recreate the NC structure 285 286 run the shell script in this directory makeWin sh in the ncgbWin directory This will make all the text files in subdirectories DOS add a M go to NCWin NCGB MmaSource and edit the file NCGBPlatformSpecific m Edit the file TypesOfStrategyOutput m to take the amp out of the xdvi command Xdvi You will have to change the Binary Name and LaTeXCommand and dviCommand to reflect a common LaTex setup on the Windows go back to rootdirectory NCWin NCGB Compile and remove the unnecessary object files usr bin rm o Similarly go to rootdirectory NCWin NCGB Binary and remove the UNIX executable Tm p9c return to rootdirectory NCWin and rm NC tar Now compress the NCAlgebra structure into a PC compatible form zip r NC zip ftp this onto your PC Make directory NC and decompress NC zip in it Make directory NC work and put a mathematica notebook 287 in it with the following Get c NC SetNCPath m Get NCGB m ClearMonomialOrderAlll SetMonomialOrder a b NCProcess a b a b b ax b a 2 TestFile 288 Part IX TRULY OLD MA
274. resenting the information Then a fast combinatorial DAG search can be done Note that the WhatIsHistory command only records one way in which a certain relation is generated For example suppose that ps is an S polynomial of p and pa and ps is not reduced It may also be the case the ps5 is an S polynomial of p3 and pa and ps is not reduced If the program computed ps by taking the S ppolynomials of p and pa first then the fact that ps is an S polynomial of p3 and pa will not be recorded 30 1 2 RemoveRedundant Aliases None Description RemoveRedundant calls RemoveRedundant aListOfPolynomials history with the default correct choices for aListOfPolynomials and history Arguments None Comments Limitations WARNING The execution of this command depends upon the last NCMakeGB run which was executed Some commands call NCMakeGB as they run such as SpreadSheet subsection 15 2 1 and SmallBasis 21 1 1 30 1 3 RemoveRedundant aListOfPolynomials history Aliases None Description RemoveRedundant aListO f Polynomials history generates a subset P of aListOf Polynomials which generates the same ideal as aListO f Polynomials We con jecture that this is a smallest such set whose descendents in the history DAG contain aListOf Polynomials We conjecture that this property charachterizes P uniquely This command is faster while maybe not as powerful at reducing as ShrinkBasis since this com mand relies on the history of how the
275. rgy function quadratic 332 e ruGEl then ruGEXY to make the energy function solve the Hinf problem max entropy soln e rulinearall contains all of the rules above and is what we usually use See Glossary 45 3 2 Specializing Using The Doyle Glover Khargonekar Francis Simplifying Assumptions A special class of IA systems are those satisfying D12 z Cil xz 0 and Bi x D21 x 0 denoted in this paper as the Doyle Glover Kargonekar Francis DGKF simplifying assumptions see DGKF These simplify algebra substantially so are good for tutorial purposes even though they are not satisfied in actual control problems Look for rules ruDGKF See Glossary 45 3 3 Demo Linear Doyle Glover Kargonekar Francis Equations The following demo verifies IAX and IAYI are same as DGX DGYI the Doyle Glover X and inv Y Riccati equations in the special case of a linear system In 24 lt lt SYStens n In 25 NCE IAX x rulinearal1 Out 25 tp x XX A x tp x tp A tp x XX tp x tp C1 C1 x tp x XX B1 tp B1 tp x XX tp x XX B2 invlei tp B2 tp x XX tp x XX B2 invleil tp D12 C1 x tp x tp C1 D12 invlei tp B2 tp x XX tp x tp C1 D12 invlei tp D12 C1 x In 26 Sub x gt 1 Out 26 XX A tp A XX tp C1 C1 XX B1 tp B1 XX XX B2 inv e1 tp B2 XX XX
276. rms of P and P 1 P Indeed it is easy to check with a little algebra that these are equivalent to 14 1 It is a question of taste not algebra as to which form one chooses For a more complicated example of an end game see 17 4 4Tt is not hard to see that NCProcess2 would not have an effect since the set of equations found on the previous spreadsheet can be easily seen to be minimal We include the run here for pedagogical reasons 157 14 4 1 Concluding Remarks We saw that this factorization problem could be solved with a 2 prestrategy It was not a l prestrategy because there was at least at one point in the session where the user had to make a decision about an equation in two unknowns On the other hand the assignment 14 3 was a motivated unknown We will see in 16 3 1 that this is a 1 prestrategy For example the equation 1 m n Am 1 m1 n BC m 14 5 in the two unknowns m and n can be transformed into an equation in the one unknown m n by multiplying by n on the right 1 m1 n Am n 1 m n BC min 14 6 If we do not restrict ourselves to the original variables but allow constructions of new variables according to certain very rigid rules then the factorization problem is solvable using a generalization of a 1 prestrategy called a 1 strategy Section 5 of HS describes 1 strategies The brevity of this presentation suppresses some of the advantages and s
277. rmulas and theorems is the sorting of relations according to which unknowns appear in them in other words sorting lists of polynomials into categories RegularOutput does this sorting and presents categories of relations by storing them in file Actually the core of RegularOutput is a command Create Categories which creates categories and gives them a name These categories can be summoned into your session using the GetCategory command 23 0 5 GetCategorylaListOfVariables NCPAns Aliases None Description GetCategory aListO fV ariables aN ame retrieves the polynomials in the cat egory stored in aN ame corresponding to the list of variables in the list aListO f Variables See Section 14 3 for an example To be recognized immediately after an NCProcess run aListO fV ariables must equal a list of unknowns which corresponds to a category in that NCProcess run The NCProcess stores all category information in NCPAns The next NCProcess starts by clearing NCPAns and writes the category information it produces in NCPAns Arguments aListOf Variables is a list of variables aName is a symbol which has not been used previously Comments Limitations Not available before NCAlgebra 1 2 See CreateCategories Another way to summon categories is by name 23 0 6 GetCategorylaCharString NCPAns Aliases None Description 225 226 1 If aCharString is Undigested then all of the undigested relations are returned 2 3
278. rresponds to an unsuccessful attempt at determining dependence or independence NCBorderVectorGather NCBorderVectorGather can be used to gather the polynomial coefficents preceeding the elements given in a list of variables whenever they occur NCPermutationMatrix NCPermutationMatrix returns the permutation matrix associated with the list of the first n integers It gives the identity matrix with its columns re ordered NCMatrixToPermutation NCMatrixToPermutation returns the permutation associated with the permutation matrix aMatrix It is the inverse of NCPermutation Matrix NCInverse NCInverse gives a symbolic inverse of a matrix with noncommutative entries A Second Derivative Command 24 NCHessian NCHessian computes the Hessian of a function with noncommuting variables and coefficents This is a second directional derivative which can be thought of as the second order term in the noncommutative Taylor expansion Output will be a symmetric quadratic function with respect to the directions of differentiation Computing The Region Where A Noncommutative Function is Convex NCConvexityRegion This command is used to determine the region of formal noncommu tative inequalities where a given noncommutative function is convex NCConvexityRe gion preforms three main operations Given a noncommutative function F the Hessian of F is computed with NCHessian Then using NCMatrixOfQuadratic the Hessian is factored into vector matrix
279. rst step is to run NCProcess2 whose output is a very small set of equations 5See Appendix 37 for an example of this 173 16 3 3 Redundant Equations We mentioned earlier that NCProcess uses the Gr bner Basis algorithm This GBA is implemented via the command NCMakeGB If NCProcess consisted of a call to the GBA and the formatted output 815 2 alone then NCProcess would not be a powerful enough tool to generate solutions to engineering or math problems This is because it would generate too many equations It is our hope that the equations which it generates contain all of the equations essential to solution of whatever problem you are treating For the problems we have considered this has been our experience On the other hand it contains equations derived from these plus equations derived from those derived from these as well as precursor equations which are no longer relevant That is a GB contains a few jewels and lots of garbage In technical language a GB is almost never a small basis for an ideal and what a human seeks in discovering a theorem is a small basis for an ideal Thus we have algorithms and substantial software for finding small or smallest sets of equations associated to a problem The process of running GBA followed by an algorithm for finding small sets of equations is what constitutes NCProcess 16 3 4 Summary of a Prestrategy We have just given the basic ideas As a prestrategy proceeds more and more equation
280. s are digested by the user and more and more unknowns become knowns Thus we ultimately have two classes of knowns original knowns Ko and user designated knowns Ky Often a theorem can be produced directly from the output by taking as hypotheses the existence of knowns Ky U Ko which are solutions to the equations involving only knowns Assume that we have found these solutions To prove the theorem that is to construct solutions to the original equations we must solve the remaining equations Fortunately the digested equations often are in a block triangular form which is amenable to backsolving This is one of the benefits of digesting the equations An example makes all of this more clear 16 4 A strategy A strategy is like a prestrategy except in addition the user can make and the program prompts certain changes of variables The nature of these changes of variables is explained in HS99 and sketched in Chapter 31 The NCProcess output prompts for changes of vari ables if NCCOV True by placing parentheses in carefully selected places The experimental commands described in 831 actually automate this change of variable business to some ex tent The use of the word small rather than minimal is intentional See 12 of HS 174 Chapter 17 Another Example Solving the H Control Problem In this section we give a more extensive example of a strategy For more information of strategies see HS The comma
281. s IncludeFiles opt tex 1ib texmf in it You may want to discuss this with your system administrator To run DoTeX if you really want to UNIX only DoTeX is old We include this instruction for old users who cannot part with it The file called NCTeX process should be transfered to the bin directory before you use our TeX setting command DoTeX 282 Chapter 34 Installing NCGB the Hard Way In this section we face the task of compiling NCGB If you are on a Solaris Linux or Windows system you do not have to since we included a complied version in what you have downloaded In order to compile the C version of this package one should obtain a copy of the GNU C compiler with version number at least 2 6 3 34 1 GNU C Version gt 2 6 3 The freely distributable GNU C compiler is available by anonymous ftp from prep ai mit edu The GNU C compiler is 1 freely distributed and 2 continually upgradable by the GNU organization GNU is responsible for producing many high quality software programs for free including the popular program GNU Emacs The easiest way for you to install the compiler would be through your system administrator You can see if you have the GNU compiler version 2 6 3 or better by typing the command g v You should get something like this Reading specs from software common gnu lib gcc 1ib sparc sun sunos4 1 2 2 6 3 specs gcc version 2 6 3 The version number must be 2 6 3 or higher If you d
282. s a Invla b Inv b c Invic d Invld SetUnknowns z x y wh Tell NC Algebra to solve for our unknown variables In 10 answer NCProcess allRelations 4 DemoGBMA gt Outputting results to the stream gt OutputStream DemoGBMA tex 11 gt Done outputting results to the stream OutputStream DemoGBMA tex 11 The TEX output which appears shows that if a b c and d are invertible then one can find x y z and w such that the matrices above are inverses of each other if and only if z b z z dac The TEX output also gives formulas for x y and w in terms of z Input l taw rd ac ttz bd yw 1l bz yc l cy wa cb wz da zy l dz zb lt ahaa l ata 1 bb 1 b b 1 cc 1 cte 1 dd 1 d d File Name DemoGBMA NCMakeGB Iterations 4 NCMakeGB on Digested Iterations 5 SmallBasis Iterations 5 SmallBasis on Knowns Iterations 6 Deselect UserSelect UserUnknowns NCShortFormulas 1 RR True RRByCat False SB False SBByCat True DegreeCap 1 DegreeSumCap 1 DegreeCapSB 1 DegreeSumCapSB 1 NCCV True 141 142 THE ORDER IS NOW THE FOLLOWING Beh Sexe Sade dI KZKE lt Y lt UW YOUR SESSION HAS DIGESTED sam THE FOLLOWING RELATIONS THE FOLLOWING VARIABLES HAVE BEEN SOLVED FOR w x y The corresponding rules are the following w atd zbd od i d zb y c bzc
283. s in the following way One does the following steps in determining whether a monomial m is greater in the order than a monomial n or not 1 First compute the total degree of m with respect to only the variables d e and f 2 Second compute the total degree of n with respect to only the variables d e and f 3 If the number from item 2 is smaller than the number from item 1 then m is smaller than n If the number from item 2 is bigger than the number from item 1 then m is bigger than n If the numbers from items 1 and 2 are equal then proceed to the next item If one wants to speak very loosely then we would say that a b and c are unknown and d e and f are very unknown 194 4 First compute the total degree of m with respect to only the variables a b and c 5 Second compute the total degree of n with respect to only the variables a b and c 6 If the number from item 5 is smaller than the number from item 4 then m is smaller than n If the number from item 5 is bigger than the number from item 4 then m is bigger than n If the numbers from items 4 and 5 are equal then proceed to the next item 7 First compute the total degree of m with respect to only the variables A Band C 8 Second compute the total degree of n with respect to only the variables A B and C 9 If the number from item 8 is smaller than the number from item 7 then m is smaller than n If the number fro
284. s the default Arguments None Comments Limitations None 4 9 3 NCSetNC Aliases None Description NCSetNC is an option of NCGuts When set to false all letters are automat ically noncommutative unless SetCommutative makes them commutative NCSetNC False is the default Arguments None Comments Limitations None 4 10 Setting Properties of an element in an algebra 4 10 1 SetInv a b c Aliases None Description SetInv a b c sets all the symbols a b c to be invertible i e invQla invQ b invQ c are set True Arguments Symbols separated by commands Comments Limitations If one does not set x to be invertible before the first use of inv L z or invR x then NCAlgebra may not make the substitution from invL z x xx to 1 or from x x xinvR z to 1 automatically 87 4 10 2 SetSelfAdjoint Symbols Aliases None Description SetSelfAdjoint a b will set a b to be self adjoint The rules tpfa a tp b b and ajla a aj b b will be automatically applied See SelfAdjointQ Arguments Symbols is one or more symbols separated by commas Comments Limitations If one does not set x to be self adjoint before the first use of aj x then NCAlgebra may not make the substitution from aj x to x automatically Similary for tp 4 10 3 SelfAdjointQ aSymbol Aliases None Description Self AdjointQ 1 will return True if SetSel f Adjoint x
285. sion computes the dimension of the span of a set of poly nomials as a vector space over the ground field Arguments alist Comments Limitations none Chapter 25 Commands which are not supported Here we list commands which we started to develop but did not pursue to the point of thorough testing If we pursue them we may change their calling sequences etc BlockPartition This probably does not work reliably NCEliminate ExpressionsList varsList opts This crudely generalizes the Mma command Eliminate to the noncommuting case You should have set a monomial order before running it If not there is an option UseNewOrder False which tells NCEliminate to use its stupid default ordering 25 1 A Mathematica Groebner Basis Package With out C The files containing the word Old in their names many residing in the directory OldM maGB contain a primative version of NCGB but all in Mma no C That was our first version Probably it still works but we have not tried it in a long time It is slow we remember that much Since there is no document about the best chance you have at deciphering it is to cruise thru the usage statements and function definitions 25 2 NCXWholeProcess polys orderList fileName groblters This very experimental function makes repeated calls to NCProcess changing the order at each iteration in an attempt to triangularize the set of relations polys Let us walk through the first iterat
286. subdiagonal 0 0 2 2H In both cases NCHessian x x xy y xx x h y k gives 2h x xk 2k xh NCMatrixOfQuadratic 2h x xk 2k x xh h k gives Uh 13 10 2 2 0 00 EHH and depending on if AllPermutation is set to True or False you have that either NCLDUDecomposition 0 2 2 0 gives 111 0 0 13 40 2 2 03 111 0 0 13 1 0 10 1 or NCAllPermutationLDU 0 2 2 0 gives 1 0 0 133 40 2 12 01 101 0 0 13 41 0 0 1 111 0 0 13 40 2 2 03 111 0 0 13 41 0 0 1 Arguments afunction is a function whose variables are listed in alistO fV ars where alistO fVars should be of the form x1 23 n The default options for NCConvexityRegion are NCSimplifyDiagonal False DiagonalSelection False ReturnPermutation False ReturnBorderVector False AllPermutation False NCSimplifyDiagonal is an option geared toward a similar option used in NCLDUDecomposition This will make sure that the pivots or diagonal entries are all first simplified with NCSimplifyRational before they are used to check that the 80 pivots are all nonzero Simplifying the pivots using NCSimplifyRational can be quite time consuming so by default we commute everything and then use Mathematica simplification commmands We do this only to convince ourselves that the pivot is nonzero If all the pivots are zero using CommuteEverything we then revert to using
287. t 1 E22 Inv E22 gt 1 Inv E21 E21 gt 1 We now obtain the collected form of equ4 In 21 equ5 NCCollectOnVariables equ4 Out 21 E11 E12 Inv E22 E21 A VVVV MV Tp A E11 E12 Inv E22 E21 E11 E12 Inv E22 E21 Tp C1 Tp B2 E11 E12 E11 E12 Inv E22 E21 E11 E12 Inv E22 E21 B2 C1 Inv E22 E21 Bi Tp B1 E11 E12 Inv EE22 E21 B2 Tp B2 E11 E12 Inv E22 E21 Now we can replace Ej Pia E Es with a new variable X In 22 Transform equ5 E11 E12 Inv E22 E21 gt X Dut 22 X A gt X B1 Tp B1 X X B2 Tp B2 X Tp A X X B2 C1 Tp C1 Tp B2 X Observe that this is an equation in the one unknown X Of course the only other undigested equation was in the one unknown E and the previous spreadsheet featured an equation in the single unknown b and its transpose and an equation in the single unknown c and its transpose Thus we have solved HGRAIL with a symmetrized liberalized 2 strategy see HS 184 17 4 End Game Now let us compare what we have found to the well known solution of HGRAIL In that theory there are two Riccati equations due to Doyle Glover Khargonekar and Francis These are the DGKF X and Y equations One can read off that the Ej equation which we found is the DGKF equation for Y while the R
288. t 87 4 10 4 SetIsometry Symbols o or seele a 87 4 10 5 IsometryQ aSymbol exista waren 88 4 10 6 SetColsometry Symbols o o 88 4 10 7 ColsaemetryQlasymboll alada a sed ds 88 4 10 8 SetUnitary Symbols dao ee Bk are 89 4 10 9 UnitaryQ aSymbol o 2nd ee En A Ee 89 NCAlgebra 4 10 10 SetProjection Symbol 22 4 se an ei 89 4 10 11 ProjectionQ S taste ee Dre ir 90 4 10 12 SetSignature Symbols Castro ae ne nee an 90 4 10 13 SignatureQ Symbol er una ahs o are er are 90 4 11 Setting Properties of functions on an algebra 22 22 00 91 4 11 1 SetSesquilinear Functions lt lt lt 91 4 11 2 SesquilinearQ aFunction o 91 4 11 3 SetBilinear Functions esa ele a sde ali ae 91 4 11 4 BilinearQ aFunction 2 2a za au 22a aaa 92 4 11 5 SetLinear Functions ea 2 06 4028 1k res ae 92 4 11 6 LinearQ aFunction Sr Er ee 92 4 11 7 SetConjugateLinear Functions 2222 92 4 11 8 ConjiigateLinearQ aFimetion crisis re 93 4 11 9 SetIdempotent Functions sera era 93 4 11 10 IdempotentQ aFunction Ai de a a 93 4 11 11 SetCommutingFunctions aFunction anotherFunction 93 4 11 12 SetNonCommutativeMultiplyAntihomomorphism Functions 94 4 12 Manipulating an Expression less useful commands 94 4 12 1 NC Terma rray expt aluist anv Array a AS A 94 4 12 2 NCReconstructFromTermArray anArray
289. t PXPT LDU The first element is the lower triangular matrix L the second element is the diagonal matrix D the third element is the up per triangular matrix U and the fourth is the permutation matrix P the identity is returned if no permutation is needed As an option it may also return a list of the permutations used at each step of the LDU factorization as a fifth element NCA11PermutationLDU NCAllPermutationLDU returns the LDU decomposition of a ma trix after all possible column permutations are applied The code cycles through all possible permutations and calls NCLDUDecomposition for each one As an option the permutations used for each LDU decomposition can also be returned NCMatrixOfQuadratic NCMatrixOfQuadratic gives a vector matrix factorization of a symmetric quadratic noncommutative function A three element list is the output The first element is the left border vector the second element is a symmetric coefficent matrix and the third is the right border vector The border vectors contain the variables in the given quadratic function and their transposes NCIndependenceCheck NCIndependenceCheck verifies whether or not a given set of polynomials are independent or not It analyzes each list of polynomials separately There are three possible types of outputs for each list Two of them correspond to NCIndependenceCheck successfully determining whether or not the list of polynomials is independent The third type of output co
290. t variable as unknown For simple mathematical problems one can take all of the variables to be known At this point in the exposition we assume that we have set a monomial order In 1 lt lt NCGB m In 2 SetNonCommutativela b x y In 3 SetMonomialOrder a b x y In 4 ourGB NCMakeGB y x a y x b x x a x x x b 10 The result is Out 5 atx x atb aty x atar x atx ka aty kra atarka Our favorite format as can be seen from the output to the screen for displaying lists of relations is ColumnForm In 5 ColumnForm Dut b a x x a b y xx xx xk l m pS gt q Y 9 m K w Someone not familiar with GB s might find it instructive to note this output GB triangu larizes the input equations to the extent that we have a compatibility condition on a namely 132 a a 0 we can solve for b in terms of a there is one equation involving only y and a and there are three equations involving only x and a Thus if we were in a concrete situation with a and b given matrices and x and y unknown matrices we would expect to be able to solve for large pieces of x and y independently and then plug them into the remaining equation yx a 0 to get a compatibility condition 9 4 Reducing a polynomial by a GB Now we reduce a polynomial or ListOfPolynomials by a GB or by any ListofPolynomials2 First we convert ListOfPolynomials2 to rules subordinate to th
291. t will return all the polynomials of a specified degree and less e ExpressionForm partialG BHomogeneous This is an option that will avoid the Groebner basis computation and simply convert the relations in aListOfExpressions to rules and use them to compute the Hilbert coefficients This is useful particu larly when one has already gone to the trouble of computing a partial Groebner basis This is only coded for homogeneous ideals The iteration number integer2 is ignored although it must be there so one may as well set it to 0 e ExpressionForm HomogeneousBinomial This is a very specific option for ideals whose generators are the difference of two monic monomials i e of the form zyaz yxzx This is essentially the same as the homogeneous version above only faster Arguments integerl aListOfExpressions integer2 anOption Comments Limitations The order is alway the ambient order Make certain that your order is only length lexicographic as this will save time There is no reason to use any order other than length lexicographic for Hilbert series computations that the author of this code can think of Currently the with the default version of this function the ambient order will be cleared during the computation as there is a new variable introduced that is later removed For now just remember to reset the order before proceding 234 24 4 2 NCX1VectorDimension alist Aliases none Description NCX1VectorDimen
292. tRegularOutput False 2 2 222 nennen 203 19 4 5 NCShortFormulas gt 1 2 2 EEE 203 19 5 NC Process Summary Table ds onc etn ee ep AA a 204 20 Commands for Making and Using GB s 207 20 1 DP Caco ep sun hose cs o AR E os 207 20 1 1 NCSimplifyAlllexpressions startRelations iterations 207 20 1 2 NCSimplifyRationalX1 expressions startRelations iterations 207 20 2 Making a Grobner Basis and various options with their defaults 208 20 2 1 NCMakeGBlaListOfPolynomials iterations 208 20 2 2 UserSelect Distinguishing important relations 209 20 2 3 ClearUserSelect ers he a tere Gut a Be Bl 209 20 2 4 Deselect gt DISABLED 2 2 a Got 22 SRO oie SO ns 210 20 2 5 FinishedComputingBasisQ Untested in 1999 210 20 2 6 WhatisPartialG 22 nee ee 210 20 2 7 NCGBSetIntegerOverflow False 22 22 2220 211 20 2 8 PartialBasis aNumber Untested in 1999 211 20 2 9 IterationNumber aList or IterationNumber aNumber UNTESTED ID iss cas a E NO 211 20 2 10 CleanUp er Be PU A a A ir Brain 212 20 2 11 SetCleanUpBasis n Untested in 1999 212 20 2 12 CleanUpBasisQ Untested in 1999 2 2 2m nennen 212 AW 21 3 o ui te Wr ra ee nn GAA ee a 212 20 2 14 Correspondence to sections Simplification and Reduction 213 20 2 15 Setting Monomial Orders See Chapter 18 213 20 2 16 Reinsta
293. te account of the terse and unmotivated calculations here In 4 lt lt SYStems m NOTE SYStems m loads in the following files NCAlgbra m NCAliasFunctions m SYSDefIA m SYSSpecialize m and SYSHinfFormulas m In 5 Substitute sHW dd z gt 0 Out 5 tp W W tp c z tp D12 x tp C1 x C1 x D12 x c z tp W tp B1 x tplclz tp B2 x1 tp A x GEx x z tp GEx x z Alx B1 x W B2 x c z 2 tp GEz x z blz C2 x D21 x W alzl tp w tp D21 x tp C2 x11 tp b z tplalz GEz x z 2 The critical W found by taking the gradient of and setting it to 0 is In 6 CriticalPoint W Out 6 W gt tp Bilx GEx x z 2 tp D21 x tp b z GEz x z 2 In 7 Substitute Out 7 tp GEx x z B1 x 2 tp GEz x z blz D21 x 2 tp B1 x GEx x z 2 tp D21 x tp b z GEz x z 2 tplelz tp D12 x1 tp C1 x 1 1 C1 x D12 x c zl CCtp GEx x z B1 x 2 tp GEz x z blz D21 x 2 tp Bilx tp c z tp B2 x tp Alx GEx x z tp GEx x z Alx B1 x tp B1 x GEx x z 2 tp D21 x tp b z GEz x z 2 B2 x c z 2 tp GEz x z b z C2 x D21 x tp B1 x GEx x z 2 tp D21 x1 tp b z GEz x z 2 alz CCtp GEx x z B1 x1 2 tp GEz x
294. teOrder ace aaa 213 20 3 Reductioi La IIS E A a late a TEE EEE 5 213 20 3 1 ReductionlaListOfPolynomials aListOfRules 213 20 3 2 PolyToRule aPolynomial dep 9 spar ees eal ewes fe 214 20 3 3 RuleToPoly aRule anta Hoke eg seiner Bal th ee 214 NCAlgebra 11 21 Commands for Making Small Bases for Ideals Small Basis Shrink Basis 215 21 1 Brute Force Shrink mor ne hy Sr a ed ee en 215 21 1 1 SmallBasis aListOfPolynomials anotherListOfPolynomials iter 216 21 1 2 SmallBasisByCategorylaListOfPolynomials iter 216 21 1 3 ShrinkOutput aListOfPolynomials fileName 217 21 2 Brute Forces Many shrinks 24 4 2 Br A A 217 21 2 1 ShrinkBasis aListOfPolynomials iterations 217 AIS Waa SW rs Example ta a Ter dE Ds ee ar ia Br nit 218 21 4 Second Examples Aia fa ea eS ee ee ee ee 219 21 5 Smaller Bases and the Spreadsheet command 219 21 6 How Small Basis commands relate to the similar NCProcess Options 220 22 Help in Typing Relations 221 22 0 1 NCMakeRelations aSpecialList aSpecialList 221 22 1 Output notation for pseudoinverse and perp s o nn nennen 222 22 1 1 NCAddTranspose aListOfExpressions 223 22 1 2 NCAddAdjoint aListOfExpressions o 223 22 1 3 Pulling important equations into your session from an NCProcess out put See GetCategories in 23 0 5 wer N A e 223 22 1 4 H
295. ter than SmallBasis As one sees below the information required for RemoveRedundant is a subset of the last GB produced in your session Before calling RemoveRedundent one must acquire the history of the last GB produced in your section This takes 2 commands which we now illustrate and which we explain afterward In 5 WhatAreNumbers Out 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 In 6 WhatIsHistory 7 Out 6 1 p p gt p 10 0 U 12 p a p gt a p 0 07 7 13 p a a p gt a a p 2 2 2 4 p a k a kk a kK p gt a k a KK a KK p 3 2 2 5 p a a k a a KK p gt a a K a KK a p 13 3 3 6 p a a r a K a K a HK p gt a k k a k a KK a KK a p 5 2 2 7 p a a a kka KK a KK AK p gt a a k a kk a ek a x a rk p 5 3 3 18 p a kk a k a kka kk a KK a KK A KK p gt a k a k a kk a ek ax a kk a x p 5 4 4 9 p a a kka kka KK a KK a EK a KK a KK p gt a a k a kk a k a xk a kK a kka kp 5 5 5 110 p a a a kk a KK a KK a KK a KK a KK a KK p gt a a k a kk a eK a KK a KK a KK a Kr a eK p 9 2 2 11 p a a xx a a KK a KK A KK a KK a KK a KK a KK p gt a a kka kk a k a KK a KK a eK a KK a KK a p 9 3 3 112 p a r a k a kk a KK a KK a KK a KK a KK a KK a KK A KK p gt a a kka kk a k a
296. tes a system which is the parallel connection of the two linear dynamic systems Systeml and System2 Arguments System1 System2 Comments Limitations More complete documentation can be found in the Control Systems Professional manual 119 7 2 Continuous vs Discrete The following commands allow one to determine the whether a system is discrete or contin uous 7 2 1 ContinuousTimeQ Systeml Aliases none Description ContinuousTimeQ System1 returns True if System1 is a continuous dy namic system and False otherwise Arguments Systeml Comments Limitations More complete documentation can be found in the Control Systems Professional manual 7 2 2 DiscreteTimeQ System1 Aliases none Description DiscreteTimeQ System1 returns True if Systeml is a discrete dynamic system and False otherwise Arguments Systeml Comments Limitations More complete documentation can be found in the Control Systems Professional manual 7 3 Transfer Function The following command will return the transfer function of a system 7 3 1 TransferFunction System1 Aliases none Description Transfer Function System1 returns the transfer function associated with the state space representation of Systeml Arguments System1 120 Comments Limitations More complete documentation can be found in the Control Systems Professional manual Changes to the CSP II package since the CSP I require that inside NCControl
297. the most obvious cancellations See page 14 of Chapter 1 or Section 5 1 1 3 2 Simplifying Expressions A person experienced in noncommutative calculations simplifies expressions in two ways 1 Write the expression in the shortest possible form with special attention given to subex pressions with physical or special mathematical meaning 2 The other is to expand expressions apply simplifying rules repeatedly to each term and see which terms cancel 3 2 1 Simplifying Rules The second method is the one which for commuting algebras has been developed to a high art in computer calculation The idea is very simple and intuitive Simplification is done with rules which replace complicated monomials with sums of simpler monomials e g inv i x x gt inv 1 x 1 invlatb c b c gt 1 invlatb c invlal throughout the expression to be simplified When you use NC Algebra you will often be mak ing up such rules and substituting them in expressions In a fixed collection of applications you can make your life easier if you save the rules and use them over and over again The best way to do this is to put them in a function say MyRules 43 44 inv i x_ gt inv x 1 inv atb c b c gt 1 invlatb c inv a MySimplifylexpr_ Substitutelexpr MyRules One of the trickier fine points is how to set the blanks in your rules If you do not use blanks that s fine provided you always use
298. the same letters and do not replace them with other notation in some equation Clearly using blanks is much more powerful The trick is how many For example x_ is ok here APPENDIX E discusses this 3 2 2 Orders The next major point is not to go into a loop To this end one must select an ordering call it COM on monomials For mnemonic purposes it is best to select the ordering to reflect your intuitive idea of which monomials are more complicated than others For example if all of your formulas involve polynomials in x inv x invli x y invli y x y invlyl a natural partial ordering is given by low degree lt high degree We then subdivide equivalence classes of this ordering with x inv x inv 1 x y commutative expr lt lt lt y inv y inv 1 y x then we subdivide equivalence classes of this ordering with lexicographical order i e x lt y A reasonable convention is that higher order expressions move RIGHT For example a basic equality is inv 1 x y x x inv 1 y x This translates to the rule inv 1 x y x gt x inv 1 y x because inv 1 x y is complicated and we move it RIGHT To harp on an earlier point we would suggest using the more powerful delayed assignment form of the rule 45 inv 1 x__ y_ x__ gt x inv 1 y x IMPORTANT these are the ordering conventions we use in NCSR If you write rules con sistent with them then you wi
299. the set of polynomials in A which are undigested 15 5 2 NCProcess2 command The input to NCProcess2 is a set of starting equations start a number of iterations n for SmallBasis and a collection of user selects The steps taken by NCProcess2 are I Shrinking the input equations 1 Shrink start using the RemoveRedundantProtected operation Call this shrunken set D 2 Let Dp be the set of polynomials in D which do not involve any unknowns Let D D D Let FE be a set of the normal forms of the elements of D with respect to D Let E Dy U Ey 3 Let F be the union of E and the user selects Let G be a reduced form of F see the beginning of 815 5 4 Shrink G by SmallBasis Set H equal to the result of the shrinking II The Attempt Decompose Displaying the results and Return a three tuple to the user for future use as in 815 5 1 15 6 NCProcessl and NCProcess2 The technical de scriptions Below aList is a list of polynomials n is a positive integer filename is a character string and rules is a sequence of zero or more Mathematica rules which correspond to NCProcess options NCProcess1laList_ n_ filename_ rules___Rule NCProcess laList n filename SBByCat gt True RR gt True rules NCProcess2 aList_ n_ filename_ rules___Rule NCProcess aList n filename SB gt True RR gt True rules which is the same as NCProcess laList n n 1 n 1 n 2 filename SB gt True RR gt True rules For an u
300. the specified DisplayOptions indeterminant will be regarded as known for purposes of sorting by categories in the NCProcess display Not implemented as of NCGBDebug gt False July 19 1999 False turns off the beginning part of the spreadsheet which displays the input to PrintScreenOutput False NCProcess Creates lots of files that an NCProcess specialist can use to asses problems with the Mma paprts of NCProcess Suppresses some NCProcess diagnostic output 206 Chapter 20 Commands for Making and Using GB s This section contains a glossary of commands available for generating and using non commutative Gr bner Basis 20 1 Simplification Before using these commands a monomial order must be specified See the section after this for information on how to set the monomial order 20 1 1 NCSimplify Alllexpressions startRelations iterations Aliases GroebnerSimplify NCGroebnerSimplify Description NCSimplifyAll expressions startRelations iterations calls NCMakeGB startRelations iterations and uses the result to reduce the expressions in expressions This is useful when the form the Gr bner Basis is irrelevant and is only used to simplify some set of predetermined equations Arguments exprs can be either an expression or a list of expressions startRelations is a list of polynomials iterations is a positive integer Comments Limitations Not available before NCAlgebra 1 2 20 1 2 NCSimpli
301. tions 302 39 1 Very Technical Commands Ossa rt ha a a e Bie ar 302 39 1 1 GroebnerCutOffFlag n Integer 2 22222220 302 39 1 2 GroebnerCutOfMin n_Inteper lt a roer Hr Pa ees 302 39 1 3 GroebnerCutOffSum n Integer 302 40 Commands for Producing HTML Output 303 40 0 4 ToH TMLStrinelexpressi d Cd ae ae 303 40 0 5 MakeGillhle expression 4 2 2G pe zu ana au nr aan 303 A IE 2 20 ee Yes 25s a area A 304 40 1 Using an inp t file 2 sa 5 ee EEE Ele 304 NCAlgebra 15 X THE PACKAGE SYStems ONLY ON THE WEB 307 41 Preface 311 42 How To Run The Systems Package 313 43 How To Contribute 315 44 What SYStems Does 317 45 Sample Applications 319 45 1 Bounded Real Lemma a 2 Kae Buche are ie tad dae id Od es 319 45 2 Measurement Feedback H Control o o o o 319 45 2 1 Derivation of Crit Wand sHWo o a Leinen 323 45 2 2 The MIN MAX in U haa Ra ee 324 45 2 3 Derivations of IAX Crite and Hopt aoaaa a 324 45 2 4 Derivation of IAYI a ee a 325 45 2 5 Derivation of critical q k and bien gt 34 42 are a 327 45 3 Specializing to less general systems yea a a 331 45 3 1 Specializing to linear systems 2 a a a 331 45 3 2 Specializing Using The Doyle Glover Khargonekar Francis Simplifying Assumptions ia ee he S 4 332 45 3 3 Demo Linear Doyle Glover Kargonekar Francis Equations 332 46 References 335 47 Glossary For System Hamiltonian Calculations 337 Complete T
302. to a Mathematica session The default is ASCII False 19 44 NCGBFastRegularOutput False If NCGBFastRegularOutput True processing of equations done by NCProcess will be done by the C kernel rather than Mathematica This is much faster but not quite as pretty as with Mathematica The default is NCGBFastRegularOutput False We hope this option is functional as of August 1999 19 4 5 NCShortFormulas 1 See Section 15 3 4 204 19 5 NCProcess Summary Table NCProcess aListO f Polynomials iter Filename Options UserSelect This list of polynomials will appear in the UserSelects category in the file Filename Deselect Polynomials in this list will not be used to do something or other MainUnknowns Indeterminates in this list will cause the output of NCProcess to only contain equations containing these indeterminates or functions of them RR True Setting RR True will cause the algo rithm to use RemoveRedundant to reduce partial Grobner bases RemoveRedundant is very fast RRByCat False Specifies whether or not to use RemoveRe dundantByCategory This is slower than RemoveRedundant but it is still fast SB False Specifies whether or not to use SmallBa sis This can be very slow SBByCat False Specifies whether or not to use SmallBa sisByCategory which is a slower but more particular form of SmallBasis This can be SBFlatOrder Fals
303. tp C1 z D12 z invleilz tp D12 x C1 x tp GEx x z B2 x invleilz tp B2 z XX z1 2 tp GEx x z B2 x invleilz tp D12 z1 C1 z 2 tp GEz x z B2 z invleilz tp B2 z XX z1 2 tp GEz x z B2 z invleilz tp D12 z1 C1 z 2 tp XX z B2 z invleilz tp B2 x GEx x z 2 tp XX z B2 z invleilz tp B2 z GEz x z 2 tp XX z B2 z invleilz tp D12 x C1 x tp C1 z D12 z invleilz eilx invleilz tp B2 z XX z tp C1 z1 D12 z invleilz e1 x invleilz tp D12 z C1 z tp XX z B2 z invleilz e1 x invleilz tp B2 z XX z tp XX z B2 z invleilz eilx invleilz tp D12 z1 c1 z In 7 Crit tp q x z Out 7 tp q x z gt 2 inv e2 x C2 x 2xinv e2 x C2 z invle2 x D21 x tp B1 x GEx x z 2 invle2 x D21 z tp B1 z1 XX z In 8 K NCE SubSym 19 20 Out 8 tplAlx GEx x z 2 tplAlz GEz x z1 2 tp cC1 x C1 x tp GEx x z A x 2 tp GEz x z Alz 2 330 In Out tp C2 x invle2 x C2 x tp C2 x invle2 x C2 z tp C2 z invle2 x C2 x tp C2 z invle2 x C2 z tp GEx x z B1 x tp B1 x GEx x z 4 tp GEz x z Bilz tp Bi z XX z 2 tp XX z
304. ts the order to the screen Arguments None Comments Limitations See Chapter 18 Not available before NCAlgebra 1 2 18 4 6 NCAutomaticOrder aMonomialOrder aListOfPolynomi als Aliases None Description This command assists the user in specifying a monomial order It inserts all of the indeterminants found in aListO f Polynomials into the monomial order If x is an indeterminant found in aMonomialOrder then any indeterminant whose symbolic representation is a function of x will appear next to x For example NCAutomati cOrder a b a Invla l tpla tp b would set the order to be a lt tpla lt Invla lt b lt tpl0 Arguments A list of indeterminants which specifies the general order A list of polynomials which will make up the input to the Gr bner basis command Comments Limitations If tp Invfal is found after Inv al NCAutomaticOrder would generate the order a lt tplInvlal lt Inv al If the variable is self adjoint the input contains the relation tp Inv a Inv a we would have the rule Inv a tplInv a when the user would probably prefer tp Inv a Invja 18 5 Fancier Order Setting Commands The following commands were created for a project long ago and we have not used them recently 18 5 1 SetMonomialOrder aListOfIndeterminants n Aliases None Description SetMonomialOrder aListOfIndeterminates n sets the order of monomials e g if aListOfIndeterminates is a b c d
305. typing GBTEST 1 48 to run tests 1 thru 48 or for those with less patience GBTEST 12 28 to run tests 12 thru 28 etc Yet another class of specialized tests is run simply by loading the file NCGBXTEST99 These tests follow the format of the NCAlgebra tests NCTEST exactly After you load the file lt lt NCGBXTEST99 you hope to get True True printing to the screen The tests in NCGBXTEST99 test programs which run under NCGB and were developed in 1999 They give NCGB a pretty good work out Someday we plan to integrate our testing procedures As you see we now have a mixed bag of tests Fancy test program DOES NOT WORK THE COMPAREING STEP DOES NOT WORK in 2001 When you download NCGB from the net the directories TestProblems and TestReference contain many files Those in TestProblems supply mathematical exercises to the testing programs Those in TestReference are the result of running NCGB in ideal circumstances To see if the version of NCGB you downloaded is complete and functioning load NCGBTEST If you do not have write access to NC NCGB Testing you may have to change the variable 243 244 NC TestResults TestingEnvironment m defines the default depository for Test Result files This is described in greater detail in Section 27 3 1 Enter Mathematica lt NCGBTEST Go get a cup of coffee or two cups of coffee or a good night s sleep When you come back look at the resulting screen output by typing test You should get test
306. uilinear Arguments aFunction is a symbol Comments Limitations None 4 11 3 SetBilinear Functions Aliases None Description SetBilinearla b c sets a b c to be functions of two variables which is linear in the first variable and linear in the second variable See SetSesquilinear Arguments Functions is one or more symbols separated by commas Comments Limitations None 92 4 11 4 BilinearQ aFunction Aliases None Description BilinearQ x will return True if SetBilinear x was executed previously See SetBilinear Arguments aFunction is a symbol Comments Limitations None 4 11 5 SetLinear Functions Aliases None Description SetLinear b c d sets b c d to be functions of one variable which are linear See LinearQ Arguments Functions is one or more symbols separated by commas Comments Limitations None 4 11 6 LinearQlaFunction Aliases None Description LinearQ x will return True if SetLinear x was executed previously See SetLinear Arguments aFunction is a symbol Comments Limitations None 4 11 7 SetConjugateLinear Functions Aliases None Description SetConjugateLinear b c d sets b c d to be functions of one variable which are conjugate linear See ConjugateLineard Arguments Functions is one or more symbols separated by commas Comments Limitations None 93 4 11 8 ConjugateLinearQ aFunction Aliases None Description
307. ults Before using any of these commands you must set a monomial order See Chapter 18 20 2 1 NCMakeGBjlaListOfPolynomials iterations Aliases NCMakeRules MorasAlgorithm Description The GB algorithm proceeds through at most iterations iterations until a Grobner basis is found for the list of polynomials aListofPolynomials with respect to the order imposed by SetMonomialOrder see 18 5 1 NCMakeGB calls a C pro gram and while the C program is running it prints intermediate lists of rules to the screen When the C program finishes it is either because it has run iterations number of iterations or it has found a Gr bner Basis If it has found a Gr bner Basis it prints a message saying so One may also use the command FinishedComputingBa sis in 20 2 5 The Mathematica output of NCMakeGB is a list of polynomials 209 The following computes the Gr bner basis for the ideal generated by 1 a and x b NC MakeG Bl z a x b 20 For options which can be used inside NC MakeGB see ReturnRelationsToMma Su pressCOutput SupressAllCOutput UserSelect and Deselect DISABLED Arguments aListofPolynomials is a list of polynomials iterations is a natural number Comments Limitations Not available before NCAlgebra 1 2 20 2 2 UserSelect Distinguishing important relations Aliases None Description UserSelect is an option for NCMakeGB and for Spreadsheet If UserSelect aListOfPolynomia
308. ument commutative or noncommutative We may change this Arguments Symbols separated by commas Comments Limitations None 4 6 2 CommuteEverything expr Aliases CE Description It changes NonCommutativeMultiply to Times in expr Arguments expr is an algebraic expression Comments Limitations Very useful for getting ideas in the middle of a complicated calcuation If expr has you baffled type exprcom C Elexpr exprcom is commuta tive and therefore is easy to analyze Now expr is uneffected so you can get back to working on it armed with new ideas 74 4 6 3 SetCommutativela b c Aliases None Description SetCommutativela b c sets all the symbols a b c to be commutative Arguments Symbols separated by commas Comments Limitations None 4 6 4 SetCommutingOperators b c Aliases None Description SetCommutingOperators takes exactly two parameters SetCommutingOper ators b c will implement the definitions which follow They are in pseudo code so that the meaning will not be obscured b c becomes c b if LeftQ b c and c b becomes b c if LeftQ b c See SetCommutingFunctions and LeftQ Arguments b c are symbols Comments Limitations NOTE The above implementation will NOT lead to infinite loops WARNING If one says SetCommutingOperators b c and then sets only LeftQ c b then neither of the above rules will be executed Therefore one must remember the order
309. unctionality as Substitute Comments Limitations expr is an algebraic expression aListO f Rules is a single rule or list of rules specifying the substitution to be made Beware Transform only applies rules once rather than repeatedly 4 1 12 GrabIndeterminants aListOfPolynomialsOrRules Aliases none Description GrabIndeterminants L returns the indeterminates found in the list of non commutative expressions or rules L For example GrabIndeterminants x Inv x x Tp In 3 4 Inv a b Inv a x returns x Inv x Tp Inv xt a Invlal b Arguments aListOfPolynomialsOrRules is a list of noncommutative expressions or rules Comments Limitations 92 4 1 13 GrabVariables aListOfPolynomialsOrRules Aliases none Description GrabVariables aListOfPolynomialsOrRules returns the variables found in the list of noncommutative expressions or rules aListOfPolynomialsOrRules It is similar to the Mathematica command Variables which takes as an argument a list of polynomials in commutative variables or functions of variables For example GrabVariables x Inv x x Tp Inv x a 3 4 Inv a b Inv a x returns f xpa bp Arguments aListOfPolynomialsOrRules is a list of noncommutative expressions or rules Comments Limitations 4 1 14 NCBackwardlexpr Aliases NCB Description It applies the rules inv Id B x xA x xB B x xinv Id A B inv Id B x xA x xinv A
310. used to do the example in Chapter 14 then read Chapter 15 If you want to compute Gr bner Bases read Chapter 9 3 or read Chapter 20 without first reading anything else In addition 1 The computer commands given in the text are generally shown in verbatim e g NCProcess1 or italics 2 The Mathematica variables are in bold face e g MathVariable 3 Filenames are in bold face e g output txt Chapter 9 Simple Demos of Basic Commands In this chapter we will give a number of demonstrations of how one would use our computer program to simplify expressions Demonstrations for proving theorems using this program are given in Chapters 14 15 and 17 Throughout this document we shall use the word relation to mean a polynomial in noncommuting indeterminates 9 1 To start a C GB session The first step is to start Mathematica 7 math Mathematica 2 2 for SPARC Copyright 1988 93 Wolfram Research Inc The next step is to load the appropriate software In 1 lt lt NCGB m Hi there NCSetRule m loaded NCPInverses m loaded NCMono m loaded NCSolve m loaded NCMatMult m loaded If an analyst saw the equation AB 1 for matrices A and B then he might say that A and B satisfy the polynomial equation xy 1 0 An algebraist would say that xy 1 is a relation When the file NCGB m is loaded it loads the file NCAlgebra m which in turn loads lots or few files depending on how one
311. ut aListOfPolynomials fileName takes the list of polynomials in aListOfPolynomials and organizes this list in a certain way and places the orga nized information in a file called fileName It is the heart of the NCProcess dis play The organization performed is based on the monomial order which was specified using SetMonomialOrder Think of every variable in aList1 declared via SetMono mialOrder aList1 1 to be lowest in the ordering as a known The unknowns are the remaining variables denoted var which are defined via SetMonomialOrder aList n where alist is a list of variables and var in a member of this list and n gt 2 For RegularOutput the only thing that counts is unknowns RegularOutput sorts polyno mials in aListOfPolynomials into categories consisting of polynomials having the same unknowns Arguments fileName is a character string aListOfPolynomials is a list of polynomials Comments Limitations Not available before NCAlgebra 1 2 23 4 How to Really Change Regular Output Important to research is how one sorts the output of a GB algorithm Serious changes might prompt you to edit the command itself We now give a very few tips The only files we have modified in the last few years are OutputArrayForTeX m OutputSingleCategory m TypesOfStrategyOutput m NCProcess m NCCollectOnVariables m NCMakeRelations m oCategories m The top three of which could be useful for those who wish to make serious changes
312. ut or a spreadsheet Recall the digested relations are the polynomials involving no unknowns single variable expressions together with user selected relations Let the digested relations from the list aListOfPolynomials be called D Suppose we denote each category of undigested polynomials by X where j runs from 1 to the number of these categories Then RemoveRedundentByCategory aListOfPolynomials history is the union over j of RemoveRedundent Union D X history Arguments aListOfPolynomials is a list of polynomials history is a list from the command WhatlsHistory Comments Limitations It is wise to execute WhatIsHistory to set history right after you call NCMakeGB WARNING The history one gets from the WhatIsHistory command comes from the last run of the NCMakeGB command The NCMakeGB command is called by several other commands such as NCProcess subsection 15 2 1 30 2 Discussion of RemoveRedundent command RemoveRedundent requires a history and a list of polynomials NCMakeGB records part of what it is doing during its computation and that can be used to determine some facts about ideal 260 membership This history can be though of as a directed acyclic graph abbreviated as dag The the list of polynomials is a subset V of all of the nodes and the output of RemoveRedundent is another set R of nodes v in V Let denote a connected path which runs from v backward in time until it reaches a leaf Now P ends at v in the set
313. v 1 y using the Gr bner Basis Experts will note that since we are using an iterative Gr bner Basis algorithm which may not terminate we must set a limit on how many iterations we permit here we specify at most 3 iterations In 8 NCSimplifyA11 x x x Inv y Inv 1 y Join x x a resol 3 Out 8 fa x Invli y Inv y We name the variable Inv y because this has more meaning to the user than would using a single letter Inv y has the same status as a single letter with regard to all of the commands which we have demonstrated Next we illustrate an extremely valuable simplification command The following example performs the same computation as the previous command although one does not have to type in resol explicitly More generally one does not have to type in relations involving the definition of inverse explicitly Beware NCSimplifyRationalX1 picks its own order on variables and completely ignores any order that you might have set There are many orders which sit well with intuition Perhaps the order Inv y lt y lt Inv l y lt a lt x does not set well since if possible it would be preferable to express an answer in terms of y rather than Ur 2This sets a graded lexicographic on the monic monomials involving the variables y Inv y Inv 1 yl a and x with y lt Invly lt Inv l y lt a lt z 3See also 10 4 1 135 In 9 lt lt NCSRX1 m In 10 NCSimplifyRationalX1
314. ve the lowest set of bold lines The symbol f indicates that the polynomial equation also appears as a user select on the spreadsheet We relist these particular equations simply as a convenience for categorizing them We will see how this helps us in 14 4 Since all equations are digested we have finished using NCProcess1 see S4 As we shall see this output spreadsheet leads directly to the theorem about factoring systems 156 14 4 The end game The first step of the end game is to run NCProcess2 on the last spreadsheet which was produced in 814 3 The aim of this run of NCProcess2 is to shrink the spreadsheet as ag gressively as possible without destroying important information The spreadsheet produced by NCProcess2 is the same as the last spreadsheet which was produced in 814 3 Note that it is necessary that all of the equations in the spreadsheet have solutions since they are implied by the original equations The equations involving only knowns play a key role In particular they say precisely that there must exist a projection P such that P AP P A and P BCOP PLA AP BCP 14 4 are satisfied The converse is also true and can be verified with the assistance of the above spreadsheet To do this we assume that the matrices A B C and P are given and that 14 4 holds and wish to define m Ma n na a b c e f and g such that each of the equations in the above spreadsheet hold If we can do this then each o
315. vector form Finally NCAllPermutationLDU finds the LDU decomposition of the symmetric coefficent matrix The diagonal elements in the diagonal matrix in the LDU decomposition is returned ReleaseNotes NCAlgebra 3 0 NCAlgebra 3 0 has several added functions iF 2 LDU decomposition for block matices to include a block Cholesky decompsition Formulas for inverses of block matrices A command which differentiates functions of the form trace P X Y etc log det P X Y etc Support for the Mathematica toolbox Control System Professional It gives CSP the ability to handle non commuting objects A function which represents elements of an algebra as n x n matrices with commuting symbolic entries or with inegers Online Help While we have not set up help browsers at this time in the Mma style one can get searchable online help by viewing NCBIGDOCUMENT html with Netscape etc When you are in an NCAlgebra session just keep a web browser open with NCBIG DOCUMENT html loaded in The powerfulsearch features of these browsers allow you to look up things in the document An X in commands e g NCXetc always means that this command is experimental and we reserve the right to change it Chapter 1 A Short Tutorial on NCAlgebra NCAlgebra is a Mathematica package which allows one to do noncommutative algebraic computations We will begin by presenting some calculations done with our package which should give some
316. where CAPs are followed by 2 lower case letters This prevents ambiguities and two letter aliases Function names are written in a certain order Command or action you wish taken comes first The special properties of what you apply it to are second For example let s look at NCSimplifyRational The action is Simplify The range of validity is Rational functions Files whose only function is to call other files have names which are all capital letters Chapter 4 NC Commands Mathematica 3 0 has a lovely graphical user interface which uses Palettes Mathematica Palettes display the most important commands and prompt the user We have such a Palette for NCAlgebra and NCGB which contain most of the commands in this chapter See the TEAR OFF Section in the back for a picture of the Mma Palettes for NCAlgebra and NCGB To pop up this Palette open a notebook load NCAlgebra or NCGB then open the file NCPalette nb If you are in a directory containing the file NCPalette nb you can open it directly from a notebook 4 1 Manipulating an expression 4 1 1 ExpandNonCommutativeMultiply expr Aliases NCE NCExpand Description ExpandN onCommutativeMultiply expr expands out NonCommutativeMul tiply s in expr It is the noncommutative generalization of the Mma Expand command Arguments expr is an algebraic expression Comments Limitations None 4 1 2 NCCollect expr aListOf Variables Aliases NCC Description NCCollectl expr
317. will sometimes not work if Relm m has been loaded Mathematica can manipulate complex analysis via X I Y where X and Y are commuta tive e g numbers However it is often more convenient to calculate in terms of z and the conjugate of z We implement a few commands in the file NCComplex m We discuss these commands below One may also look at the file NCComplex m for further documentation 4 5 2 ComplexRules Aliases None Description Complex Rules is a set of replacement rules for writing expressions in terms of the variables and their complex conjugates For example use this with input containing numbers and variables as well as operators functions such as Ref Im Conjugate Expl Power Sin Cos and others Apply the command expr ComplexRules Try the following example Rel 1 2w ComplexRules 72 Arguments None Comments Limitations This only works for expressions defined with the commutative multiplication 4 5 3 ComplexCoordinates expr Aliases None Description ComplexCoordinateslexpr expands expr in terms of the variables and their complex conjugates The difference between ComplexCoordinates expr and Complex Rules is in the case Abs z ComplexRules This case returns the same expression instead of z and Conjugate z If you desire to use the latter expression you can use Complex Coordinates expr This function replaces Abs z by Sqrt z Conjugate z after applying
318. x C1 x tp GEx x z A x 2 tplGEz x z alz 2 tplalz1 GEz x z1 2 tp C2 x tp b z GEz x z 2 tp GEz x z blz C2 x 2 tp GEx x z B1 x tp B1 x GEx x z 4 tp C1 x D12 x invleilx tp B2 x GEx x z 2 tp c1 x D12 x invleilx tp D12 x C1 x tp GEx x z B1 x tp D21 x tp b z GEz x z 4 tp GEx x z B2 x invleilx tp B2 x GEx x z1 4 tp GEx x z B2 x inv e1 x tp D12 x C1 x 2 tp GEz x z blz D21 x tp B1 x GEx x z 4 tp GEz x z blz e2 x tp b z GEz x z 4 In 7 Sub Hopt x gt z Out 7 tp Alz1 GEx z z 2 tp C1 z C1 z 325 tp GEx z z Alz 2 tp GEz z z alz 2 tplalz1 GEz z z 2 tp C2 z tp b z GEz z z 2 tp GEz z z blz C2 z 2 tp GEx z z Bilz tp B1 z GEx z z 4 tp Ci z D12 z invleilz tp B2 z GEx z z 2 tp C1 z D12 z invleilz tp D12 z C1 z tp GEx z z B1 z tp D21 z tp b z GEz z z 4 tp GEx z z B2 z invleilz tp B2 z GEx z z 4 tp GEx z z B2 z invleilz tp D12 z C1 z 2 tp GEz z z blz D21 z tp B1 z1 GEx z z 4 tp GEz z z blz e2 z tpl b z GEz z z 4 In 8 ruXXYYI Out 8 GEz x_ x_ gt 0 GEx x_ x_ gt 2
319. x inv e2 x 2 tp YYI x B1 x tp D21 x inv e2 x C2 x 2 tp A x YYI x tp C1 x C1 x tp C2 x 2 inv e2 x C2 x 2 xinvle2 x D21 x tp B1 x YYI x 2 tp YYI x Alx 2 tp C2 x inv e2 x 2 xtp YYI x B1 x tp D21 x inv e2 x e2 x 2 inv e2 x C2 x 2 inv e2 x D21 x tp B1 x YYI x 4 2 tp C2 lx invle2 x 2 tp YYI lx B1 x tp D21 x inv e2 x D21 x tp Bi x YYI x 2 tp YYI x B1 x tp Bi x YYI x tp YYI x B1 x tp D21 x 2 inv e2 x C2 x 2 inv e2 x D21 x tp Bi lx YYI x 2 327 In 12 NCE Out 12 tplAlx YYI x tp C1 x C1 x tp YYI lx Alx tp C2 x invle2 x C2 x tp YYI x1 B1 x tp B1 x YYI x tp C2 x invle2 x D21 x tp B1 x YYI x tp YYI x B1 x tp D21 x invle2 x C2 x tp YYI x1 B1 x tp D21 x invle2 x D21 x tp B1 x YYI x In 13 NCE IAYI x Out 13 0 45 2 5 Derivation of critical q k and bterm In 2 lt lt SYStems m In 3 SubSym sHWo ruc NOTE ruc c z_ gt invleilz tp B2 z XX z tp D12 z C1 z Out 3 tp A x GEx x z1 2 tp C1 x C1 x tp GEx x z Alx 2 tp GEz x z alz 2 tplalz1 GEz x z 2 tp C2 x tp b z GEz x z 2
320. x tp D21 x inv e2 x D21 x tp B1 x GEx x z 4 tp GEx x z B1 x tp D21 x inv e2 x D21 z tp B1 z1 XX z 2 tp XX z Bilz tp D21 z invle2 x D21 x tp B1 x GEx x z 2 tp XX z Bilz tp D21 z1 inv e2 x D21 z tp Bi z XX z tp XX z B2 z invleilz e1 x invleilz tp B2 z XX z tp XX z B2 z invleilz e1 x invleilz tp D12 z C1 z XX X X A XX XX 9 K NCC NCC K inv e2 x inv e1 z 9 tp A x GEx x z 2 tplAlz GEz x z1 2 tp C1 x C1 x tp GEx x z A x 2 tp GEz x z Alz 2 tp GEx x z B2 x tp GEz x z B2 z invleilz tp B2 z XX z1 2 tp D12 z C1 z 2 tp C1 z1 D12 z tp XX z1 B2 z invleilz tp B2 x GEx x z 2 tp B2 z GEz x z 2 tp D12 x C1 x tp C2 x invle2 x C2 x C2 z D21 x tp B1i x GEx x z 2 D21 z tp B1 z XX z tp XX z Bilz tp D21 z tp C2 z inv e2 x C2 x C2 z D21 x tp B1 x GEx x z 2 D21 z tp B1 z XX z tp C1 x D12 x invleilz tp B2 z XX z tp D12 z 1 C1 z tp GEx x z B1 x tp B1 x GEx x z 4 331 tp GEz x z Bilz tp B1 z XX z1 2 tp XX z1 Bilz tp B1 z1 GEz x z 2 tp c1 z1
321. x x x x Inv z Inv 1 z x x a 3 Dut 11 a x x Invli z invlz WARNING Never use inv with NCGB since it has special properties given to it in NC Algebra and these are not recognized by the C code behind NCGB 10 2 MakingGB s and Inv Tp Here is another GB example This time we use the fancy Inv notation In 1 lt lt NCGB m In 2 SetNonCommutatively Invly Invli y a x In 3 SetMonomialOrder y Invly Invli y a x In 4 resol y Invly 1 Inv y y 1 1 y Inv 1 y 1 Inv 1 y 1 y 1 The following commands makes a Gr bner Basis for resol with respect to the monomial order which has been set In 8 NCMakeGB reso1l 3 Out 8 1 Inv 1 y y Inv i y 1 y Inviy gt 1 Inv 1 y Inv 1 y y 1 Invly y gt Inv 1 y Invly Invly Inv 1 yl gt Inv 1 y Invly Inv 1 y Inv y 10 3 Simplification and GB s revisited Changing polynomials to rules The following command converts a list of relations to a list of rules subordinate to the monomial order specified above In 9 Out 9 gt Inv 1 y y gt 1 Inv 1 y Invly y gt 1 PolyToRule y Inv 1 y gt 1 Inv 1 yl y Inv y gt 1 gt Inv y Inv 1 y gt Inv 1 y Invly gt Inv 1 y Invly gt Inv 1 y Inv y 136 Changing rules to polynomials The
322. x to x 90 4 10 11 ProjectionQ S Aliases None Description ProjectionQ will return true if SetProjection x was executed previously See SetProjection Arguments S is a symbol Comments Limitations None 4 10 12 SetSignature Symbols Aliases None Description When SetSignaturela and SetSel f Adjointla are executed the rule a a 1 will be automatically applied See SetSel f Adjoint and SignatureQ Arguments Symbols is one or more symbols separated by commas Comments Limitations If one does not set x to be a signature matrix and self adjoing before the first use of x then NCAlgebra may not make the substitution from x xx to 1 4 10 13 SignatureQ Symbol Aliases None Description SignatureQ x will return True if SetSignature x was executed previously See SetSignature Arguments Symbol is a symbol Comments Limitations None 91 4 11 Setting Properties of functions on an algebra 4 11 1 SetSesquilinear Functions Aliases SetSesq Description SetSesquilinearla b c sets a b c to be functions of two variables which are linear in the first variable and conjugate linear in the second variable See SetBilinear Arguments Functions is one or more symbols separated by commas Comments Limitations None 4 11 2 SesquilinearQ aFunction Aliases None Description SesquilinearQ x will return True if SetSesquilinear x was executed previ ously See SetSesq
323. x_ gt D21 D12 x_ gt D12 a x_ gt axx x b x_ gt b c x_ gt c x dd x_ gt dd eilx_ gt ei e2 x_ gt e2 tp e1 gt e1 tp e2 gt e2 rulinearXY XX x_ gt XX x YY p_ gt p YY YYI x_ gt inv YY x ruinvYY YYI gt inv YY Lin expr_ SubSyml expr rulinearall Energy Ansatzes which are true for linear systens rulinearEB sets GEx x z GEz x z to be linear ruGEz0 GEz x_ x_ gt 0 Ansatz in BHW 5 1 ruGE1 Flatten ruGEz0 SubSym ruGEz0 ruGEx1 ruGEz1 ruXXYYI where ruGEx1 GEx x_ z_ gt GEx x x GEx x z 0 GEx x z x z ruGEz1 GEz x_ z_ gt GEx x z 0 GEx x z x z Homogeneous Systems ruhomog AL 0 gt 0 C1 0 gt 0 C2 0 gt 0 a 0 gt 0 c 0 gt 0 Doyle Glover Khargonekar Francis Simplifying Assumptions ruDGKFNL Apply DGKF simplifying assumptions for IA systems ruDGKFlin Apply DGKF simplifying assumptions for linear systems ruCRcDGKF c z_ gt tp B2 z tp XX z 340 ruCRqDGKF q x_ z_ gt tp C2 x z ruaDGKF alz_ gt A z1 B1 z1 tp B1 z11 tp XX z11 B2 z1 tp B2 z1 tp XX z1 blz C2 z cheat z ruaDGKF2 a z_ gt AA1 z z b z C2 z More Rules Available For Substitution CHANGE OF VARIABLES Convert energy Hamiltonians from dual or mixed state dual to state variables only ruxz p gt GEx x z PP gt GEz x z Convert energy Hamiltonian from dual or mixed state dual to dual variables only rudual rudualx rudualz wh
324. ynomial If expression is a string then no attempt is made to convert it to TpXform This is good for complicated expressions 303 304 if the user is familiar with TEX MakeGif tries to display the result with xv by default The option DisplayFunction string will attempt to view the gif with the command string DisplayFunction Identity will not display the gif Comments Limitations MakeGif uses the following external programs to create the gifs Latex dvips pstogif and giftrans 40 0 6 HTML HERE IS ANOTHER ACCOUNT OF THIS MATTERIAL THEY SHOULD BE MERGED SOMEDAY This options creates a directory with several files in HTML format This was constructed before Mma 3 0 and has not been tested for compatibility with it The spreadsheet file is called index html and there is a seperate file for every category There are several complications which makes this option impractical The indeterminates which contain subscripts and superscripts are stored as gif files These gif files are created with latex dvips pstogif and giftrans The command which creates them needs to know what directory they are stored in Also the HTML text which calls the correct gif file needs to be stored in a Mathematica file When an indeterminate is used for the first time the HTML text needs to be added to this file This means that the user needs write access to this file Most computer systems can be set up to handle these idiosyncracies but not without so
325. ynomials anotherListOfPolynomials adds the fea ture that when one includes it in the call it just joins to the answer above without being changed In other words SmallBasis computes and returns a list aList which is a subset of aListO f Polynomials such that the ideal generated by Join aList anoth erListOfPolynomials equals the ideal generated by Join aListOfPolynomials anoth erListOfPolynomials This is done via calls to NC MakeGB NCMakeGB iterates at most iter times Here is how it works Let LP denote pi po pu First SmallBasis LP 4 y iter generates a partial GB for p p2 and reduces p3 Pa Pu with this GB If the re sult is 0 then SmallBasis stops and returns p p2 If not SmallBasis generates GB p1 p2 p3 and reduces the remaining polynomials Etc Finally SmallBasis re turns p1 p2 px with the property that the partial G bner Basis GB p Pr reduces p1 Pp2 Pny to zero Clearly the result is very dependent on the order if the entries lie in LP The integer iter determines the number of iterations used to produce the partial GB s SmallBasis LP1 LP2 iter has the same functionality as Complement SmallBasis Join LP2 LP1 iter LP2 i e SmallBasis Joim LP2 LP1 iter minus the set LP2 but is much faster Arguments aListO f Polynomials and anotherListO f Polynomials are lists of polynomi als ter is a natural number Comments Limitations WARNING This command calls NCMa
326. zes NCProcess options that were not described in Chapter 16 19 1 Creating small generating sets RR True RRByCat True SB False SBByCat True Section 16 3 3 discusses why the NCProcess commands used algorithms for creating small sets X from a partial GB Y such that the ideal generated by X equals the ideal generated by Y The options of the NCProcess commands are RR RRByCat SB SBByCat These actually abbreviate longer names For example RR abbreviates Remove Redundant See 819 5 Any combination of options will leave the output of NCProcess a generating set for the ideal generated by the input relations The more redundant relations you try to remove the slower NC Process runs The options indicate which algorithms will be used to remove the redundant relations RemoveRedundant for instance runs very quickly but does not do a very thorough job A complete list of options together with indications of their speed can be found at the end of the chapter If two overlapping options are set to True like RR and RRByCat then only one of them is actually run The amount of time that it takes to run NC Process depends on which options are set The defaults for NC Process are SBByCat and RR are set to True while SmallBasis and SBFlatOrder are set to False SBFlatOrder False If SBFlatOrder True the small basis algorithm will be performed under the length lexi cographic monomial order Relations which have a leading ter

Download Pdf Manuals

image

Related Search

Related Contents

South Shore Furniture 3650035 Instructions / Assembly  Samsung SM-P901 Hướng dẫn sử dụng  ダウンロード - グリーンハウス  Panasonic Toughpad FZ-A1 16GB Silver  Samsung HG32EA590LS 32" Full HD Smart TV Wi-Fi Black  Mode d`emploi  

Copyright © All rights reserved.
Failed to retrieve file