% Copyright 2015 by Jonathan D. Hauenstein % Deflate family from Example 5.2 % N. Li and L. Zhi % Computing the multiplicity structure of an isolated singular solution: case of breadth one % Journal of Symbolic Computation, 47, 700-710, 2012. function [Fd,Vd] = LiZhi52_deflate(s) % Input: s - integer >= 2 % Output: Fd - deflated polynomial system % Vd - variables of deflated polynomial system % error checking Fd = []; Vd = []; if nargin < 1 || s < 2 disp(['The degree d must be at least 2!']); return; end; % setup the original system X = sym('x',[1,s]); F = [X(end)^3]; for j = s-1:-1:1 F = [X(j)^2 + X(j) - X(j+1); F]; end; Vd = X; % we need to perform 2 deflations using the upper left hand block % first deflation -- adds one new equation J = jacobian(F,X); A = J(1:end-1,1:end-1); B = J(1:end-1,end); dA = det(A); AB = A\B; N = dA*[-AB;1]; F1 = J(end,:)*N; % second deflation -- uses same upper left hand block % this adds another new equation J1 = jacobian(F1,X); Fd = [F;F1;J1*N]; % display summary of deflation disp(['Deflated system']); disp([' functions: ',num2str(length(Fd))]); disp([' variables: ',num2str(length(Vd))]); return;