To compute generic points of a k-dimensional solution set of a polynomial system, we add k random linear equations to the system.
i1 : R = CC[x,y,z];
|
i2 : f = { x^2 - y, x^3 - z };
|
i3 : fe1 = phcEmbed(f,1);
writing output to file /tmp/M2-7866-0/1PHCoutput
calling phc -c < /tmp/M2-7866-0/2PHCbatch > /tmp/M2-7866-0/3PHCsession
output of phc -c is in file /tmp/M2-7866-0/1PHCoutput
|
i4 : toString fe1
o4 = {x^2-y+(-.222271+.974985*ii)*zz1, x^3-z+(-.400532+.916283*ii)*zz1, zz1,
(-.77595-.630794*ii)*x+(-.514717+.85736*ii)*y+(.994552+.104239*ii)*z
+(-.519328+.854575*ii)*zz1+.690389-.723438*ii}
|
The ring in which the original system lives is extended with as many slack variables as the dimension provided as the second argument k to phcEmbed. The slack variables start with zz. Solutions of the embedded system with zero values for the slack variables are candidate generic points.
If the system on input is overdetermined (there are more equations than unknowns), then as many surplus variables are introduced as the difference between the number of equations and the number of variables. Surplus variables start with ss.
i5 : R = CC[x,y,z];
|
i6 : f = { x^2-y, x^3-z, x*y-z, x*z-y^2 };
|
i7 : fe1 = phcEmbed(f,1);
writing output to file /tmp/M2-7866-0/5PHCoutput
calling phc -c < /tmp/M2-7866-0/6PHCbatch > /tmp/M2-7866-0/7PHCsession
output of phc -c is in file /tmp/M2-7866-0/5PHCoutput
|
i8 : toString fe1
o8 = {x^2-y+(-.595216-.876813*ii)*ss1+(.848334-.529461*ii)*zz1,
x^3-z+(-.446481+.211552*ii)*ss1+(-.997636+.0687197*ii)*zz1,
x*y-z+(-.752435-.000401763*ii)*ss1+(-.975269-.221022*ii)*zz1,
-y^2+x*z+(-.271683-.172801*ii)*ss1+(-.651816-.758377*ii)*zz1,
(-.0808144-.996729*ii)*x+(.547955-.836508*ii)*y+(-.992909+.118873*ii)*z
+(.131044-.991377*ii)*ss1+(.260352-.965514*ii)*zz1+.724372+.689409*ii}
|
In the example above we gave four equations in three unknowns and phcEmbed added one surplus variable ss1 and one slack variable zz1. Only solutions with zero values for the surplus variable ss1 matter.