%************************************************************************** % Toolbox for symbolic computation with polynomials in noncommuting * % variables * %************************************************************************** % ------------------------------------------------------------------------- % First we construct some symbolic noncommuting variables. % ------------------------------------------------------------------------- >> NCvars x y z % ------------------------------------------------------------------------- % Now we can define some polynomials in noncommuting variables. % ------------------------------------------------------------------------- >> f = x^2 + 5*x*y - y*z + 3*x*y*z; >> g = 2*y*z - z^2; % ------------------------------------------------------------------------- % All basic arithmetic operations are defined in standard way. % ------------------------------------------------------------------------- >> f + g, f - g, f*g, -f, g^2, g' ans = x^2+5*x*y+3*x*y*z+y*z-z^2 ans = x^2+5*x*y+3*x*y*z-3*y*z+z^2 ans = 2*x^2*y*z-x^2*z^2+10*x*y^2*z+6*x*y*z*y*z-5*x*y*z^2-3*x*y*z^3-2*y*z*y*z+y*z^3 ans = -x^2-5*x*y-3*x*y*z+y*z ans = 4*y*z*y*z-2*y*z^3-2*z^2*y*z+z^4 ans = 2*z*y-z^2 % ------------------------------------------------------------------------- % We can also define matrices of such polynomials. % ------------------------------------------------------------------------- >> A = [2*x*y, x] A = 2*x*y x >> B = [x*y + x, y; y^2, x - y] B = x+x*y y y^2 x-y % ------------------------------------------------------------------------- % All basic operations on such matrices are defined. % ------------------------------------------------------------------------- >> A*B, B*B, B.*B, A', trace(B), diag(B), triu(B), [A; sum(B)] ans = 2*x*y*x+2*x*y*x*y+x*y^2 x^2-x*y+2*x*y^2 ans = x^2+x^2*y+x*y*x+x*y*x*y+y^3 x*y+x*y^2+y*x-y^2 x*y^2+y^2*x+y^2*x*y-y^3 x^2-x*y-y*x+y^2+y^3 ans = x^2+x^2*y+x*y*x+x*y*x*y y^2 y^4 x^2-x*y-y*x+y^2 ans = 2*y*x x ans = 2*x+x*y-y ans = x+x*y x-y ans = x+x*y y 0 x-y ans = 2*x*y x x+x*y+y^2 x % ------------------------------------------------------------------------- % We can also do symbolic (in)equality test. % ------------------------------------------------------------------------- >> B B = x+x*y y y^2 x-y >> B + diag(diag(B)) == tril(B) + triu(B) ans = 1 1 1 1 >> B ~= B' ans = 1 0 1 0 % ------------------------------------------------------------------------- % We can evaluates a polynomial with substitutions and write monomials % shortly using exponents or in expanded form without using exponents % regardless of the parameter NC_using_exponents set in NCparam.m. % ------------------------------------------------------------------------- >> f f = x^2+5*x*y+3*x*y*z-y*z >> NCeval(f,{{x,x+y},{y,x-y},{z,0}}) ans = 6*x^2-4*x*y+6*y*x-4*y^2 >> NCexpand(ans) ans = 6*x*x-4*x*y+6*y*x-4*y*y >> NCsimplify(ans) ans = 6*x^2-4*x*y+6*y*x-4*y^2 |
Documentation > NCSOStoolsdemo >