Contents
Table of Contents
Preface
I NCAlgebra
0.1 ReleaseNotes NCAlgebra
1 A Short Tutorial on NCAlgebra
1.1 Installing NCAlgebra
1.1.1 Downloading
1.1.2 Unpacking
1.1.3 Installing
1.2 Running NCAlgebra
1.3 A Short Tutorial
1.4 Where to Find More Examples
1.5 Pretty Output
2 A More Sophisticated Demo
3 Helpful Tricks
3.1 Expanding
3.2 Simplifying Expressions
3.2.1 Simplifying Rules
3.2.2 Orders
3.2.3 Automatic generation of rules
3.3 Edit - For those without Notebooks
3.4 Conventions
4 NC Commands
4.1 Manipulating an expression
4.1.1 ExpandNonCommutativeMultiply[expr]
4.1.2 NCCollect[expr, aListOfVariables]
4.1.3 NCStrongCollect[expr, aListOfVariables]
4.1.4 NCCollectSymmetric[expr]
4.1.5 NCTermsOfDegree[expr,aListOfVariables,indices]
4.1.6 NCSolve[expr1==expr2,var]
4.1.7 Substitute[expr,aListOfRules,(Optional On)]
4.1.8 SubstituteSymmetric[expr, aListOfRules, (optional On)]
4.1.9 SubstituteSingleReplace[expr, aListOfRules, (optional On)]
4.1.10 SubstituteAll[expr, aListOfRules, (optional On)]
4.1.11 Transform[expr,aListOfRules]
4.1.12 GrabIndeterminants[ aListOfPolynomialsOrRules]
4.1.13 GrabVariables[ aListOfPolynomialsOrRules ]
4.1.14 NCBackward[expr]
4.1.15 NCForward[expr]
4.1.16 NCMonomial[expr]
4.1.17 NCUnMonomial[expr]
4.2 Simplification
4.2.1 NCSimplifyRational[ expr ], NCSimplify1Rational[ expr
], and NCSimplify2Rational[ expr ]
4.2.2 NCSimplify1Rational[expr]
4.2.3 NCSimplify2Rational[expr]
4.3 Vector Differentiation
4.3.1 DirectionalD[expr, aVariable, h]
4.3.2 Grad[expr, aVariable]
4.3.3 CriticalPoint[expr, aVariable]
4.3.4 NCHessian[afunction, {X1,H1},…,{Xk,Hk} ]
4.4 Block Matrix Manipulation
4.4.1 MatMult[x, y, …]
4.4.2 ajMat[u]
4.4.3 coMat[u]
4.4.4 tpMat[u]
4.4.5 NCMToMatMult[expr]
4.4.6 TimesToNCM[expr]
4.4.7 Special Operations with Block Matrices
4.4.8 NCLDUDecomposition[aMatrix, Options]
4.4.9 NCAllPermutationLDU[aMatrix]
4.4.10 NCInverse[aSquareMatrix]
4.4.11 NCPermutationMatrix[aListOfIntegers]
4.4.12 NCMatrixToPermutation[aMatrix]
4.4.13 NCCheckPermutation[SizeOfMatrix, aListOfPermutations]
4.4.14 Diag[aMatrix]
4.4.15 Cascade[P, K]
4.4.16 Chain[P]
4.4.17 Redheffer[P]
4.4.18 DilationHalmos[x]
4.4.19 SchurComplementTop[M]
4.4.20 SchurComplementBtm[M]
4.5 Complex Analysis
4.5.1 A tutorial
4.5.2 ComplexRules
4.5.3 ComplexCoordinates[expr]
4.5.4 ComplexD[expr, aVariable]
4.6 Setting symbols to commute or not commute
4.6.1 SetNonCommutative[A, B, C, …]
4.6.2 CommuteEverything[expr]
4.6.3 SetCommutative[a, b, c, …]
4.6.4 SetCommutingOperators[b,c]
4.6.5 LeftQ[expr]
4.6.6 CommutativeQ[X]
4.6.7 CommutativeAllQ[expr]
4.7 Operations on elements in an algebra
4.7.1 inv[x]
4.7.2 invL[x]
4.7.3 invR[x]
4.7.4 invQ[x]
4.7.5 ExpandQ[inv]
4.7.6 ExpandQ[tp]
4.7.7 OverrideInverse
4.7.8 aj[expr]
4.7.9 tp[expr]
4.7.10 co[expr]
4.8 Convexity of a NC function
4.8.1 NCConvexityRegion[afunction,alistOfVars,opts]
4.8.2 NCMatrixOfQuadratic[ , {H1,…,Hn} ]
4.8.3 NCIndependenceCheck[aListofLists,variable]
4.8.4 NCBorderVectorGather[alist,varlist]
4.9 NCGuts
4.9.1 NCStrongProduct1
4.9.2 NCStrongProduct2
4.9.3 NCSetNC
4.10 Setting Properties of an element in an algebra
4.10.1 SetInv[a, b, c, …]
4.10.2 SetSelfAdjoint[Symbols]
4.10.3 SelfAdjointQ[aSymbol]
4.10.4 SetIsometry[Symbols]
4.10.5 IsometryQ[aSymbol]
4.10.6 SetCoIsometry[Symbols]
4.10.7 CoIsometryQ[aSymbol]
4.10.8 SetUnitary[Symbols]
4.10.9 UnitaryQ[aSymbol]
4.10.10 SetProjection[Symbols]
4.10.11 ProjectionQ[S]
4.10.12 SetSignature[Symbols]
4.10.13 SignatureQ[Symbol]
4.11 Setting Properties of functions on an algebra
4.11.1 SetSesquilinear[Functions]
4.11.2 SesquilinearQ[aFunction]
4.11.3 SetBilinear[Functions]
4.11.4 BilinearQ[aFunction]
4.11.5 SetLinear[Functions]
4.11.6 LinearQ[aFunction]
4.11.7 SetConjugateLinear[Functions]
4.11.8 ConjugateLinearQ[aFunction]
4.11.9 SetIdempotent[Functions]
4.11.10 IdempotentQ[aFunction]
4.11.11 SetCommutingFunctions[ aFunction, anotherFunction]
4.11.12 SetNonCommutativeMultiplyAntihomomorphism[ Functions]
4.12 Manipulating an Expression — less useful commands
4.12.1 NCTermArray[expr,aList,anArray]
4.12.2 NCReconstructFromTermArray[anArray]
4.12.3 NCCompose[aVerySpecialList]
4.12.4 NCDecompose[expr, listofsymbols]
4.13 Utilities
4.13.1 SaveRules[expression, ’optional tag → ”message”’]
4.13.2 SaveRulesQ[]
4.13.3 FunctionOnRules[Rules, Function1, Function2, (optional On)]
4.14 Deprecated Commands
4.14.1 RandomMatrix[m,n,min,max,options]
4.14.2 CEEP
5 Pretty Output and Tex Commands
5.1 Pretty Output
5.1.1 NCSetOutput[ optionlist,…]
5.2 TEX Typesetting with NCTEXForm
5.2.1 NCTeXForm[exp]
5.3 Simple TEX Commands with NCTEX
5.3.1 NCTeX[]
5.4 Deprecated Commands
5.4.1 SeeTeX[] or SeeTeX[anInteger]
5.4.2 NoTeX[]
5.4.3 KillTeX[]
5.4.4 See[aListOfIntegers]
5.4.5 Keep[anInteger]
5.4.6 Kill[anInteger]
5.4.7 LookAtMatrix[aMatrix]
5.4.8 LookAtLongExpression[anExpression]
6 Aliases
II NONCOMMUTATIVE CONTROL SYSTEM PROFESSIONAL
7 State Space Systems Constructions
7.1 System Interconnections
7.1.1 SeriesConnect[ System1, System2 ]
7.1.2 FeedbackConnect[ System1, System2 ]
7.1.3 ParallelConnect[ System1, System2 ]
7.2 Continuous vs. Discrete
7.2.1 ContinuousTimeQ[ System1]
7.2.2 DiscreteTimeQ[ System1]
7.3 Transfer Function
7.3.1 TransferFunction[ System1]
7.4 Systems from Systems
7.4.1 Dual[ System1]
7.4.2 InverseSystem[ System1]
III NONCOMMUTATIVE GRÖBNER BASES–NCGB
ReleaseNotesNCGB
IV NCGB: Easy Introduction
8 Introduction
How to read this document
9 Simple Demos of Basic Commands
9.1 To start a C++ GB session
9.1.1 NCGBSetIntegerOverflow[False]
9.2 Simplifying Expressions
9.3 Making a Groebner Basis
9.4 Reducing a polynomial by a GB
9.4.1 Simplification via GB’s
10 NCGB Facilitates Natural Notation
10.1 A Simplification example
10.2 MakingGB’s and Inv[], Tp[]
10.3 Simplification and GB’s revisited
10.4 Saving lots of time when typing
10.4.1 Saving time when typing relations involving
inverses:NCMakeRelations
10.4.2 Saving time working in algebras with involution:
NCAddTranspose, NCAddAdjoint
10.4.3 Saving time when setting orders: NCAutomaticOrder
11 Demo on NCGB - Matrix Computation
11.1 The Partially Prescribed Inverse Problem
12 To Run NCGB - Template.nb
12.1 Making a Groebner basis and NCProcess template
13 NCProcess: What It Does
13.1 NCProcess: Input and Output
13.1.1 When to stop
13.2 Changing Variables
14 NCProcess: An Example
14.1 Background
14.2 The Problem
14.3 Solution via a Prestrategy
14.4 The end game
14.4.1 Concluding Remarks
15 NCProcess: The Commands
15.1 SetKnowns and SetUnknowns
15.2 NCProcess
15.2.1 NCProcess[aListOfPolynomials,iterations,fileName, Options ]
15.2.2 Examples
15.3 Commonly Used NCProcess Options and Commands
15.3.1 UserSelect → aListOfPolynomials
15.3.2 DegreeCap→ aNumber1 and DegreeSumCap→ aNumber2
15.3.3 MainUnknowns→ aListOfIndeterminates
15.3.4 NCShortFormula→ Length
15.3.5 Getting Categories
15.4 Typical use of the NCProcess command
15.5 Details of NCProcess
15.5.1 NCProcess1 command
15.5.2 NCProcess2 command
15.6 NCProcess1 and NCProcess2: The technical descriptions
V NCGB: FOR THE MORE ADVANCED USER
16 NCProcess: The Concepts
16.1 NCProcess: Input and Output
16.2 Elimination
16.3 What is a prestrategy?
16.3.1 Prestrategy
16.3.2 When to stop
16.3.3 Redundant Equations
16.3.4 Summary of a Prestrategy
16.4 A strategy
17 Another Example: Solving the H∞ Control Problem
17.1 Problem statement
17.2 The key relations: executable form
17.3 Solving (HGRAIL) using NCProcess
17.3.1 Step 1
17.3.2 Step 2: The user attacks
17.3.3 Step 3
17.3.4 Step 4
17.4 End Game
VI NCGB: LISTS OF COMMANDS AND OTHER DETAILS
18 Ordering on variables and monomials
18.1 Lex Order: 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
18.4.1 SetMonomialOrder[aListOfListsOfIndeterminates, . . . ]
18.4.2 SetUnknowns[aListOfIndeterminates]
18.4.3 SetUnKnowns[aListOfVariables]
18.4.4 ClearMonomialOrder[]
18.4.5 PrintMonomialOrder[]
18.4.6 NCAutomaticOrder[ aMonomialOrder, aListOfPolynomials ]
18.5 Fancier Order Setting Commands
18.5.1 SetMonomialOrder[aListOfIndeterminants, n]
18.5.2 ClearMonomialOrderN[n]
18.5.3 ClearMonomialOrderAll[]
18.5.4 WhatIsMultiplicityOfGrading[]
18.5.5 WhatIsSetOfIndeterminants[n]
19 More NCProcess Options
19.1 Creating small generating sets: RR→ True, RRByCat→ True,
SB→ False, SBByCat→ True
19.2 NCCollectOnVars
19.2.1 NCCollectOnVars[aListOfExpressions, aListOfVariables]
19.3 Turning screen output off
19.4 Output Options
19.4.1 Turning screen output off: PrintScreenOutput→ False
19.4.2 TeX→ True
19.4.3 ASCII→ False
19.4.4 NCGBFastRegularOutput→ False
19.4.5 NCShortFormulas→-1
19.5 NCProcess Summary Table
20 Commands for Making and Using GB’s
20.1 Simplification
20.1.1 NCSimplifyAll[expressions, startRelations, iterations]
20.1.2 NCSimplifyRationalX1[expressions, startRelations, iterations]
20.2 Making a Gröbner Basis and various options (with their defaults)
20.2.1 NCMakeGB[aListOfPolynomials, iterations]
20.2.2 UserSelect→{}(Distinguishing important relations)
20.2.3 ClearUserSelect[]
20.2.4 Deselect→{} (DISABLED)
20.2.5 FinishedComputingBasisQ[] - Untested in 1999
20.2.6 WhatIsPartialGB[]
20.2.7 NCGBSetIntegerOverflow[False]
20.2.8 PartialBasis[aNumber] - Untested in 1999
20.2.9 IterationNumber[aList] or IterationNumber[ aNumber
] - UNTESTED 1999
20.2.10 CleanUp
20.2.11 SetCleanUpBasis[n] - Untested in 1999
20.2.12 CleanUpBasisQ[] - Untested in 1999
20.2.13 History Off
20.2.14 Correspondence to sections ‘Simplification’ and ‘Reduction’
20.2.15 Setting Monomial Orders- See Chapter 18
20.2.16 ReinstateOrder[]
20.3 Reduction
20.3.1 Reduction[aListOfPolynomials, aListOfRules]
20.3.2 PolyToRule[aPolynomial]
20.3.3 RuleToPoly[aRule]
21 Commands for Making Small Bases for Ideals: Small Basis, Shrink Basis
21.1 Brute Force: Shrinking
21.1.1 SmallBasis[aListOfPolynomials, anotherListOfPolynomials, iter]
21.1.2 SmallBasisByCategory[aListOfPolynomials, iter]
21.1.3 ShrinkOutput[aListOfPolynomials,fileName]
21.2 Brute Force: Many shrinks
21.2.1 ShrinkBasis[aListOfPolynomials,iterations]
21.3 First Example
21.4 Second Example
21.5 Smaller Bases and the Spreadsheet command
21.6 How Small Basis commands relate to the similar NCProcess Options
22 Help in Typing Relations .
22.0.1 NCMakeRelations[aSpecialList, aSpecialList, . . . ]
22.1 Output notation for pseudoinverse and perp’s
22.1.1 NCAddTranspose[aListOfExpressions]
22.1.2 NCAddAdjoint[aListOfExpressions]
22.1.3 Pulling important equations into your session from
an NCProcess output - See GetCategories in §23.0.5.
22.1.4 Help in typing Monomial Orders - See NCAutomaticOrder
Section 18.4.6
23 Retrieving Categories and Regular Output
23.0.5 GetCategory[aListOfVariables, NCPAns]
23.0.6 GetCategory[aCharString,NCPAns]
23.0.7 Clear[NCPAns]
23.1 Example
23.2 Creating Categories
23.2.1 CreateCategories[aListOfPolynomials, aName]
23.3 RegularOutput[aListOfPolynomials,“fileName”]
23.3.1 RegularOutput[aListOfPolynomials,“fileName”]
23.4 How to Really Change Regular Output
24 The Dimension of the Solution Set of a Set of Polynomial Equations
24.1 The Commuting Case
24.2 Noncommutative Case: Gelfand-Kirillov dimension
24.3 References
24.4 Commands
24.4.1 NCHilbertCoefficient[integer1, aListOfExpressions,
integer2, anOption]
24.4.2 NCX1VectorDimension[alist]
25 Commands which are not supported
25.1 A Mathematica Groebner Basis Package Without C++
25.2 NCXWholeProcess[ polys, orderList, fileName, grobIters]
26 Getting NCALGEBRA and NCGB
26.1 Getting NCAlgebra and NCGB off the web
26.2 Getting NCAlgebra and NCGB through anonymous ftp
26.2.1 The “.Z” file
26.2.2 The “.gz” file
26.2.3 The “.zip” file
26.2.4 Look at the document
26.3 The last step
26.4 The NC directory structure
26.5 Directory structure of NCAlgebra alone
27 Testing your version of NCGB
27.1 Beginners
27.2 Turning On Screen Output
27.3 More Testing for Developers - DOES NOT WORK 2001
27.3.1 Setting the Testing Environment
28 References
VII DETAILS AND OLD OR NEW COMMANDS -ONLY
ON THE WEB
29 History of the Production of a GB and Playing By Numbers
29.1 Play By Numbers
29.1.1 WhatAreGBNumbers[]
29.1.2 WhatAreNumbers[]
29.1.3 WhatIsPartialGB[aListOfIntegers]
29.1.4 NumbersFromHistory[aPolynomial,history]
29.2 History of the production of a GB
29.2.1 WhatIsHistory[aListOfIntegers]
29.2.2 WhatIsKludgeHistory[aListOfIntegers]
29.2.3 More on the History of how NCMakeGB produced its answer
29.2.4 The DAG associated with a History
30 Commands for Making Small Bases for Ideals: Remove Redundant
30.1 Removing excess relations
30.1.1 Introduction
30.1.2 RemoveRedundant[]
30.1.3 RemoveRedundant[aListOfPolynomials,history]
30.1.4 RemoveRedundentByCategory[]
30.1.5 RemoveRedundentByCategory[ aListOfPolynomials, history]
30.2 Discussion of RemoveRedundent command
30.3 Examples
30.4 First Example
30.5 Second Example
30.6 Smaller Bases and the Spreadsheet command
31 NCXFindChangeOfVariables: The Long Description
31.1 Details of the Algorithm
31.1.1 Preparation
31.1.2 Collect and extract
31.1.3 Eliminate candidates which are too small
31.1.4 Eliminate purely numerical terms from candidates - Default is Off
31.1.5 Sort list of candidates by number of terms
31.1.6 Multiply through by monomials - Default is off
31.1.7 Run the Grobner basis algorithm
31.1.8 Options
31.2 Finding Coefficients of Variables in a Polynomial
31.2.1 NCCoefficientList[Expression, aListOfIndeterminants]
31.3 Main Change Of Variables Command
31.3.1 NCXFindChangeOfVariables[ aListofPolynomials, anInteger,
aString, Options]
31.3.2 NCXPossibleChangeOfVariables[ aListofPolynomials, Options]
31.4 Less Valuable Change of Variables Commands
31.4.1 NCXMultiplyByMonomials[ aVerySpecialList]
31.4.2 NCXAllPossibleChangeOfVariables[ aListOfPolynomials]
32 Representing Noncommutative Expressions with Commutative Ones.
32.0.3 NCXRepresent[aListOfExpressions, aListOfVariables,
aListOfDims, aListOfFunctions, aListOfExtraRules]
VIII DETAILS ON INSTALLATION AND MAINTENANCE
- ONLY ON THE WEB
33 NCAlgebra and NCGB Installation
33.1 Running NCAlgebra
33.2 Running NCGB
33.3 Running SYStems
33.4 Running OldMmaGB (which we do not support)
33.5 Environment Settings
33.5.1 NCAlgebra $NC$ Variables
33.5.2 NCGB $NC$ Variables
33.6 How to set up if someone else compiled the code — UNIX
33.6.1 When your system administrator installed the code
33.6.2 When your friend installed the code
33.7 Informing TEX about notebook.sty
34 Installing NCGB the Hard Way
34.1 GNU C++ Version ≥ 2.6.3
34.1.1 Compiling the C++ part of NCGB
34.2 Running NCGB
34.2.1 Loading NCGB more quickly
35 For the Home Team
35.1 How to make the PC version of NC
IX TRULY OLD MATERIAL - ONLY ON THE WEB
36 An Old Example of Get Categories- Lots of info
37 Example of Hypothesis Selection in Discovering
38 Possibly Obsolete Command Descriptions
38.1 NCMakeGB Options -maybe obsolete
38.1.1 SupressCOutput→ False (less output to the screen )
38.1.2 SupressAllCOutput→ False (very little outp ut to the screen)
38.1.3 NCContinueMakeGB[iterationNumber]
38.2 Special GB related commands- may not work
38.3 Starting Relations
38.3.1 SortRelations[aListOfRules]
38.3.2 SortMonomials[aListOfVariables]
38.4 Changing the default options for NCMakeGB
38.4.1 ChangeNCMakeGBOptions[option,value] — need to
update description
39 Generating Universal Gröbner Basis- MAY NOT WORK -
untested in 1999
39.0.2 AllOrders[aListofPolynomials, aListofIndeterminants]
39.0.3 EquivalenceClasses[aListOfPolynomials] or
EquivalenceClasses[aListOfPolynomials, Simpler]
39.0.4 UniversalBasis[aListOfPolynomials, NumberOfIterations]
39.1 Very Technical Commands
39.1.1 GroebnerCutOffFlag[n_Integer]
39.1.2 GroebnerCutOffMin[n_Integer]
39.1.3 GroebnerCutOffSum[n_Integer]
40 Commands for Producing HTML Output
40.0.4 ToHTMLString[expression]
40.0.5 MakeGif[file,expression]
40.0.6 HTML
40.1 Using an input file
X THE PACKAGE SYStems - ONLY ON THE WEB
41 Preface
42 How To Run The Systems Package
43 How To Contribute
44 What SYStems Does
45 Sample Applications
45.1 Bounded Real Lemma
45.2 Measurement Feedback H∞ Control
45.2.1 Derivation of CritW and sHWo
45.2.2 The MIN/MAX in U
45.2.3 Derivations of IAX, Critc, and Hopt
45.2.4 Derivation of IAYI
45.2.5 Derivation of critical q, k, and bterm
45.3 Specializing to less general systems
45.3.1 Specializing to linear systems
45.3.2 Specializing Using The Doyle Glover Khargonekar
Francis Simplifying Assumptions
45.3.3 Demo: Linear Doyle Glover Kargonekar Francis Equations
46 References
47 Glossary For System Hamiltonian Calculations
Complete Index