ApCoCoA-1:CharP.NLASolve

From ApCoCoAWiki
This article is about a function from ApCoCoA-1.

CharP.NLASolve

Computes the unique F_2-rational zero of a given polynomial system over F_2.

Syntax

CharP.NLASolve(F:LIST, Sparse:BOOL):LIST

Description

Please note: The function(s) explained on this page is/are using the ApCoCoAServer. You will have to start the ApCoCoAServer in order to use it/them.


This function computes the unique zero in F_2^n of a polynomial system over F_2 . It uses NLA-Algorithm to find the unique zero. The NLA-Algorithm generates a sequence of linear systems to solve the given system. The NLA-Algorithm can find the unique zero only. If the given polynomial system has more than one zeros in F_2^n then this function does not find any zero. In this case a massage for non-uniqueness will be displayed to the screen after reaching the maximum degree bound. You can also choose between sparse and dense implementation of gaussian elimination. In sparse case it uses Slinalg.SEF and in dense case it uses LinAlg.EF.


  • @param F: List of polynomials of given system.

  • @param Sparse: Sparsity of given polynomial system. Set Sparse to True if the given polynomial system is sparse. Set Sparse to False if the given polynomial system is dense.

  • @return The unique solution of the given system in F_2^n.

Example

Use Z/(2)[x[1..4]];
F:=[
    x[1]x[2] + x[2]x[3] + x[2]x[4] + x[3]x[4] + x[1] + x[3] + 1, 
    x[1]x[2] + x[1]x[3] + x[1]x[4] + x[3]x[4] + x[2] + x[3] + 1, 
    x[1]x[2] + x[1]x[3] + x[2]x[3] + x[3]x[4] + x[1] + x[4] + 1, 
    x[1]x[3] + x[2]x[3] + x[1]x[4] + x[2]x[4] + 1
    ];

Sparse:=True;
-- Then we compute the solution with
CharP.NLASolve(F,Sparse);

-- And we achieve the following information on the screen together with the solution at the end.
----------------------------------------
    Finding Variable: x[4]
	The size of Matrix is:
		No. of Rows=11
		No. of Columns=5
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=11
		No. of Columns=5
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=15
		No. of Columns=21
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=15
		No. of Columns=21
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
x[4] = 1
 Finding Variable: x[3]
	The size of Matrix is:
		No. of Rows=7
		No. of Columns=5
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=7
		No. of Columns=5
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=8
		No. of Columns=17
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
x[3] = 0
 Finding Variable: x[2]
	The size of Matrix is:
		No. of Rows=4
		No. of Columns=4
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=4
		No. of Columns=4
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
x[2] = 1
[0, 1, 0, 1]


Example

Use Z/(2)[x[1..4]];
F:=[ 
    x[2]x[3] + x[1]x[4] + x[2]x[4] + x[3]x[4] + x[1] + x[2] + x[3] + x[4], 
    x[2]x[3] + x[2]x[4] + x[3]x[4] + x[2] + x[3] + x[4],  
    x[1]x[2] + x[2]x[3] + x[2]x[4] + x[3]x[4] + x[1] + x[2],  
    x[1]x[2] + x[2]x[3] + x[2]x[4] + x[3]x[4] + x[1] + x[2]
   ];

Sparse:=False;

-- Solution is not unique i.e. [0, 1, 1, 1], [0, 0, 0, 0], and [1, 1, 1, 1] are solutions 

-- Then we compute the solution with
CharP.NLASolve(F,Sparse);

-- And we achieve the following information on the screen.
----------------------------------------
        Finding Variable: x[4]
	The size of Matrix is:
		No. of Rows=9
		No. of Columns=5
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=9
		No. of Columns=5
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=14
		No. of Columns=21
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=14
		No. of Columns=21
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=15
		No. of Columns=57
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
	The size of Matrix is:
		No. of Rows=15
		No. of Columns=57
Appling Gaussian Elimination...
-- CoCoAServer: computing Cpu Time = 0
-------------------------------
Gaussian Elimination Completed.
x[4] = NA
	Please Check the uniqueness of solution.
	The Given system of polynomials does not
	seem to have a unique solution or it has
	no solution over the finite field F2.



See also

CharP.MXLSolve

Introduction to CoCoAServer

Introduction to Groebner Basis in CoCoA

CharP.GBasisF2

CharP.XLSolve

CharP.IMXLSolve

CharP.IMNLASolve

CharP.MNLASolve