# NCAlgebra

Our Non Commutative Algebra Packages run under Mathematica and give it the capability of manipulating noncommuting algebraic expressions.

NCGB an NCGBX compute Non Commutative Groebner Bases and has extensive sorting and display features.

NCSDP and SDP a numerical semidefinite programing package.

Our distribution has moved to Github in April of 2017.

Contribute to the development of NCAlgebra by clicking on the button:

NCAlgebra - Version 5.0 runs considerably faster for many problems.

See the documentation for a complete list of changes. A few specialized applications have not yet been completely ported to the new version yet.

## Documentation

Extensive documentation is found in the directory DOCUMENTATION in our distribution.

An online version of the documentation can be found here:

You will find companion notebooks in the directory DEMOS in our distribution.

## User Contributed Notebooks

We also mantain a repository where we collect notebooks and papers contributed by users:

## Dated Material

The rest of this website contain material that could be seriously dated.

### NCAlgebra

For an introduction to NCAlgebra see the short tutorial of some of the most basic commands in HTML or a Mma notebook;

The rather extensive NC DOCUMENT is available in html or pdf.

#### NONCOMMUTATIVE INEQUALITIES

Is a given noncommutative function "convex"? You type in a function of noncommutative variables; the command NCConvexityRegion[Func, ListOfVariables] tells you where the (symbolic) Function is convex in the Variables. This corresponds to papers of Camino Helton and Skelton.

#### LINEAR SYSTEMS AND CONTROL

NCAlgebra integrates with Mathematica's version 8.0 control toolbox to work on noncommutative block systems, just as a human would do...
Look for NCControl.nb in the NC/DEMOS subdirectory.

#### SEMIDEFINITE PROGRAMMING

NCAlgebra now comes with a numerical solver that can compute the solution to semidefinite programs, aka linear matrix inequalities.
Look for demos in the NC/NCSDP/DEMOS subdirectory.

You can find examples of systems and control linear matrix inequalities problems being manipulated and numerically solved by NCAlgebra on the UCSD course webpage.
Look for the .nb files, starting with the file sat5.nb at Lecture 8.

### NCGB

Computes NonCommutative Groebner Bases and has extensive sorting and display features as well as algorithms for automatically discarding "redundant" polynomials, as well as "kludgy" methods for suggesting changes of variables (which work better than one would expect).

NCGB runs in conjunction with NCAlgebra. A very brief TEMPLATE/DEMO is given here. The whole story appears in the rather long NC DOCUMENT obtainable as PDF

#### SIMPLE DEMOS

(You NEED Mma too view all but (1a)):

#### GROUPS

You can compute a complete list of rewrite rules for Groups using NCGB. See demos below.

### NCGBX

NCGB is a 100% Mathematica version of NC Groebner Basis Algorithm and does not require C/C++ code compilation

Look for demos in the NC/NCPoly/DEMOS subdirectory of the most current distributions.

Do not load NCGB and NCGBX simultaneously.

### SOME ACCOMPLISHMENTS OF NON COMMUTATIVE COMPUTER ALGEBRA

This part of the site contains examples of problems which have been investigated with the aid of the features in NCAlgebra for DISCOVERING FORMULAS. Exactly what can be done for engineering systems theory and operator theory with NonCommuting GB's (Mora's algorithm) and techniques we are developing is thoroughly unexplored. Our goal is to test these methods on a variety of problems, most of which are classic theorems in some field. Classifying existing mathematics according to what is required to discover it is an extremely valuable gauge of these symbolic techniques. However, some of the results described here are new, and a few contain open questions.

• Systems Engineering
• Operator Theory
• Problems Ordered According To Methodology Required To Solve
• Use Of NCGB On Groups-- to generate a complete list of rewrite rules

### OPERATOR THEORY

• Matrix completion problems
• Pseudoinverses : Gröebner Bases for basic situations
• Some notes(.dvi) (.tex) on the runs below which give finite and, in one case, an infinite Gröebner Basis for situations involving pseudoinverses.
• PseudoInverse of A has a finite GB. (.dvi) (.tex)
• PseudoInverse of A,B, and A + B has a finite GB. (.dvi) (.tex)
• PseudoInverse of A,B, and AB does NOT have a finite GB. (Four recursion laws.)
dvi: (3 iters) (4 iters) (5 iters)
tex: (3 iters) (4 iters) (5 iters)
• PseudoInverse of A,B, and A**Pinv[A]+B**Pinv[B] has a finite GB. (.dvi) (.tex)
• PseudoInverse of A,B, and A**Pinv[A] + Pinv[B]**B has a finite GB. (.dvi) (.tex)
• PseudoInverse of A,B, and (1-Pinv[B]**B)**A**Pinv[A] has a finite GB. (.dvi) (.tex)
• PseudoInverse of A,B, and (1-Pinv[B]**B)**A**Pinv[A] AND A**Pinv[A]+Pinv[B]**B has a finite GB. (.dvi) (.tex)
• Here is the mathematica file with all of the previous runs.
• Pseudoinverse of a column matrix.
• Here is the mathematica file for the pseudoinverse of a column matrix.
• Here is the (.dvi) (.tex) file for its output.
Note that we are solving for the pseudoinverse of a 2x1 matrix with entries a and b where the pseudoinverse is a 1x2 matrix with entries c and d. It turns out that c = Pinv[tp[a]**a+tp[b]**b]**tp[a] and d = Pinv[tp[a]**a+tp[b]**b]**tp[b].
• Other
• Sum of Idempotents Jun 96
• Contributed by H. Bart and J. Stampfli
Solutions by Stankus and Sloboda
• H. Bart and J. Kaashoek problem (open)
• A solution to Yongge Tian's EP Matrices problem proposed in Image April 2001 volume 26.

### USE OF NCGB ON GROUPS-- to generate a complete list of rewrite rules

• Gröbner basis only-demos by E. Rowell

Some of these examples along with more about ``strategies'' is in the paper Computer assistance for ``discovering'' formulas in system engineering and operator theory by J. William Helton and Mark Stankus, Journal of Functional Analysis 1999. It is available via anonymous ftp in either dvi or PostScript formats. It is also on the World Wide Web in HTML