> restart; > with(LinearAlgebra): > Digits:=14: > read`RootRefinerv1.mpl`: > infolevel[MultipleRootRefinerBreadthOne]:=3: Ojika1, (1,2) is 3-fold zero. > tol:=10.^(-2); tol := 0.010000000000000 > appx:=RandomVector(2,generator=0..1.)*1/100.+RandomVector(2,generator=0..1.)*sqrt(-1)/100.+Vector([1,2]); [1.00905791937076 + 0.00913375856139019 I] appx := [ ] [2.00814723686393 + 0.00126986816293506 I] > lsys:=[x^2+y-3,x+0.125*y^2-1.5]; 2 2 lsys := [x + y - 3, x + 0.125 y - 1.5] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.000532950190552461 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0399989880598736 MultipleRootRefinerBreadthOne: The multiplicity:, 3 [1.00000667496553 + 0.0000195790083349248 I] appx := [ ] [2.00005469593376 + 0.000108892912495648 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0000119327328546081 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0398320141597261 MultipleRootRefinerBreadthOne: The multiplicity:, 3 [ -8 ] [1.00000000107502 - 0.145235935910003 10 I] appx := [ ] [ -8 ] [1.99999999480825 + 0.792461566941733 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol); MultipleRootRefinerBreadthOne: -8 The smallest singular value:, 0.110923727892135 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0398295722310824 MultipleRootRefinerBreadthOne: The multiplicity:, 3 [ -16 ] [1.00000000000000 + 0.171433066146329 10 I] appx := [ ] [ -16 ] [ 2. - 0.531737638133096 10 I ] Ojika2, (1,0,0), (0,1,0), (0,0,1) are 2-fold zeros. > tol:=10.^(-2); tol := 0.010000000000000 > appx:=RandomVector(3,generator=0..1.)*1/100.+RandomVector(3,generator=0..1.)*sqrt(-1)/100.+Vector([1,0,0]); [ 1.00278498218867 + 0.00964888535199277 I ] [ ] appx := [0.000975404049994095 + 0.00957506835434298 I] [ ] [0.00632359246225410 + 0.00546881519204984 I ] > lsys:=[x^2+y+z-1,x+y^2+z-1,x+y+z^2-1]; 2 2 2 lsys := [x + y + z - 1, x + y + z - 1, x + y + z - 1] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y,z],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.187816035383053 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ 0.999930384766473 + 0.000159420742367432 I ] [ ] appx := [0.0000230357544078537 - 0.0000259807680342472 I] [ ] [0.0000490353996796253 - 0.000143219207267848 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y,z],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.189298337863152 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ -7 ] [ 0.999999965697428 - 0.349489903630785 10 I ] [ ] appx := [ -7 -7 ] [0.283876986776057 10 + 0.290244820309274 10 I] [ ] [ -7 -7 ] [0.232976017543120 10 + 0.243149542110795 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y,z],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.189346223882159 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ -14 ] [ 1.00000000000000 + 0.527543258694979 10 I ] [ ] appx := [ -15 -14 ] [0.289842495143082 10 - 0.406925981742054 10 I] [ ] [ -15 -14 ] [0.201257324521002 10 - 0.420336741390787 10 I] > Ojika3, (-2.5,2.5,1) is 2-fold zero. > tol:=10.^(-2); tol := 0.010000000000000 > appx:=RandomVector(3,generator=0..1.)*1/100.+RandomVector(3,generator=0..1.)*sqrt(-1)/100.+Vector([-2.5,2.5,1]); [-2.49042833051757 + 0.00141886338627215 I] [ ] appx := [2.50970592781761 + 0.00800280468888800 I ] [ ] [1.00157613081678 + 0.00485375648722841 I ] > lsys:= [x1+x2+x3-1, 0.2*x1**3+0.5*x2**2-x3+0.5*x3**2+0.5, x1+x2+0.5*x3**2-0.5]; 3 2 2 lsys := [x1 + x2 + x3 - 1, 0.2 x1 + 0.5 x2 - x3 + 0.5 x3 + 0.5, 2 x1 + x2 + 0.5 x3 - 0.5] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,x3],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0252801051596461 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [-2.50009851374819 - 0.0000817990836719496 I] [ ] appx := [2.50009038324393 + 0.0000926424629358563 I ] [ ] [ -5 ] [1.00000102875574 - 0.130395087261244 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,x3],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0252346732406105 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ -8 ] [-2.50000000118627 - 0.873365918595151 10 I] [ ] appx := [ -7 ] [2.50000000140272 + 0.119736668414858 10 I ] [ ] [ -8 ] [0.999999999883001 - 0.218602671586617 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,x3],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0252320572394233 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ -16 ] [-2.50000000000000 - 0.143387672913841 10 I] [ ] appx := [ -16 ] [2.50000000000000 + 0.199133574694219 10 I ] [ ] [ -17 ] [ 1. - 0.393381704885415 10 I ] > Ojika4, six triple zeros, (0,0,10) is 3-fold. > tol:=10.^(-2); tol := 0.010000000000000 > appx:=RandomVector(3,generator=0..1.)*1/1000.+RandomVector(3,generator=0..1.)*sqrt(-1)/1000.+Vector([0,0,10]); [0.000792207329559554 + 0.0000357116785741896 I] [ ] appx := [0.000915735525189067 + 0.000655740699156587 I ] [ ] [ 10.0004217612826 + 0.000959492426392903 I ] > lsys:=[x1+x3*x1**3+x1*x3*x2**2-x1*x3,10*x2-2*x2*x3*x1**2-x3*x2**3-x2*x3, > -6*x3**2*x1**4-3*x1**2*x2**2*x3**2-x3**2*x1**2+28*x3*x1**2 > -3*x3**2*x2**4+2*x3**2*x2**2+7*x3*x2**2+x3**2-11*x3+10]; 3 2 lsys := [x1 + x3 x1 + x1 x3 x2 - x1 x3, 2 3 2 4 10 x2 - 2 x2 x3 x1 - x3 x2 - x2 x3, -6 x3 x1 2 2 2 2 2 2 2 4 - 3 x1 x2 x3 - x3 x1 + 28 x1 x3 - 3 x3 x2 2 2 2 2 + 2 x3 x2 + 7 x2 x3 + x3 - 11 x3 + 10] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,x3],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.00210708989781572 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.168617527632948 MultipleRootRefinerBreadthOne: The multiplicity:, 3 [ -7 -7 ] [0.416054151415276 10 + 0.885563352251051 10 I ] [ ] appx := [ -5 -5 ] [-0.893006105887929 10 - 0.603435927822840 10 I] [ ] [ 10.0000231627431 + 0.0000336716031779991 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,x3],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0000214919460743526 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.665793767152222 MultipleRootRefinerBreadthOne: The multiplicity:, 3 [ -12 -12 ] [-0.203348167491797 10 + 0.428287619455082 10 I] [ ] appx := [ -11 -11 ] [0.928005763698575 10 + 0.635338694123715 10 I ] [ ] [ -8 ] [ 10.0000000012355 + 0.340966535873516 10 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,x3],appx,tol); MultipleRootRefinerBreadthOne: -10 The smallest singular value:, 0.224917171225032 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.666296604652769 MultipleRootRefinerBreadthOne: The multiplicity:, 3 [ -21 -24 ] [-0.199296632648235 10 + 0.931941340766378 10 I] [ ] appx := [ -17 -18 ] [0.105308818571904 10 - 0.281091420389693 10 I ] [ ] [ -17 ] [ 10. + 0.109234519048023 10 I ] > Decker2, (0,0) is 4-fold zero. > tol:=10.^(-2); tol := 0.010000000000000 > appx:=RandomVector(2,generator=0..1.)*1/1000.+RandomVector(2,generator=0..1.)*sqrt(-1)/1000.+Vector([0,0]); [0.000933993247757551 + 0.000757740130578333 I] appx := [ ] [0.000849129305868777 + 0.000678735154857773 I] > lsys:=[x+y**3,x**2*y-y**4]; 3 2 4 lsys := [x + y , x y - y ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol); MultipleRootRefinerBreadthOne: -5 The smallest singular value:, 0.709018214072266 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.00307465959131150 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.707101574462912 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -9 -8 ] [ 0.224626141213964 10 + 0.340393037691621 10 I ] appx := [ ] [ -10 -10 ] [0.329629912775020 10 - 0.158620289212458 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol); MultipleRootRefinerBreadthOne: -20 The smallest singular value:, 0.802897653275466 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -9 The smallest singular value:, 0.103466429549264 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.707106781186548 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -31 -30 ] [0.328061114491349 10 - 0.143142395187979 10 I] appx := [ ] [ -25 -26 ] [0.129246970711411 10 - 0.323117426778526 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol); MultipleRootRefinerBreadthOne: -50 The smallest singular value:, 0.106492968917736 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -25 The smallest singular value:, 0.376816434386357 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.707106781186548 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -77 -77 ] [0.526266611278444 10 - 0.475664074813391 10 I ] appx := [ ] [ -32 -33 ] [-0.240634972734166 10 + 0.922019931843120 10 I] > Dayton2, (0,0,0) is 5-fold zero. > tol:=10.^(-2); tol := 0.010000000000000 > appx:=RandomVector(3,generator=0..1.)*1/1000.+RandomVector(3,generator=0..1.)*sqrt(-1)/1000.+Vector([0,0,0]); [0.000655477890177557 + 0.0000318328463774207 I] [ ] appx := [0.000392227019534168 + 0.000706046088019609 I ] [ ] [0.000743132468124916 + 0.000171186687811562 I ] > lsys:=[2*x^2-x-x^3+z^3,x-y-x^2+x*y+z^2,x*y^2*z-x^2*z-y^2*z+x^3*z]; 2 3 3 2 2 lsys := [2 x - x - x + z , x - y - x + x y + z , 2 2 2 3 x y z - x z - y z + x z] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y,z],appx,tol); MultipleRootRefinerBreadthOne: -9 The smallest singular value:, 0.738088074361394 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -5 The smallest singular value:, 0.210368016377325 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.00191627783386295 MultipleRootRefinerBreadthOne: The multiplicity:, 5 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.423440623900847 MultipleRootRefinerBreadthOne: The multiplicity:, 5 [ -6 -7 ] [-0.859007019515717 10 - 0.838172911056761 10 I] [ ] appx := [ -5 -6 ] [-0.118292378100542 10 - 0.769775221917024 10 I] [ ] [ -5 -5 ] [0.371828291082226 10 + 0.175752643513964 10 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y,z],appx,tol); MultipleRootRefinerBreadthOne: -15 The smallest singular value:, 0.461241242020413 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -10 The smallest singular value:, 0.828098198342855 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0000102820265095409 MultipleRootRefinerBreadthOne: The multiplicity:, 5 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.420874425454982 MultipleRootRefinerBreadthOne: The multiplicity:, 5 [ -11 -12 ] [-0.146177074721861 10 - 0.288134516153899 10 I] [ ] appx := [ -10 -10 ] [-0.124189705683859 10 - 0.139736308239579 10 I] [ ] [ -10 -10 ] [0.656750143109469 10 + 0.788925656969779 10 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y,z],appx,tol); MultipleRootRefinerBreadthOne: -29 The smallest singular value:, 0.763912861065546 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -19 The smallest singular value:, 0.526647238931298 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: -9 The smallest singular value:, 0.256627702516660 10 MultipleRootRefinerBreadthOne: The multiplicity:, 5 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.420861431662368 MultipleRootRefinerBreadthOne: The multiplicity:, 5 [ -23 -23 ] [-0.410823613309723 10 - 0.168349228061406 10 I] [ ] appx := [ -20 -19 ] [0.189464302963481 10 - 0.103873901920659 10 I ] [ ] [ -19 -19 ] [-0.160429224112216 10 + 0.870558739357133 10 I] > DZ3, (2/5*7^(1/2)+1/5*5^(1/2),-1/5*7^(1/2)+2/5*5^(1/2)) is 5-fold zero. > tol:=10.^(-2); tol := 0.010000000000000 > appx:=RandomVector(2,generator=0..1.)*1/1000.+RandomVector(2,generator=0..1.)*sqrt(-1)/1000.+evalf(Vector([2*sqrt(7)/5+sqrt(5)/5,-sqrt(7)/5+2*sqrt(5)/5])); [1.50561166033079941 + 0.000546881519204983842 I ] appx := [ ] [0.365909288033225422 + 0.000278498218867048416 I] > lsys:=[14*x+33*y-3*sqrt(5)*(x^2+4*x*y+4*y^2+2)+sqrt(7)+x^3+6*x^2*y+12*x*y^2+8*y^3,41*x-18*y-sqrt(5)+8*x^3-12*x^2*y+6*x*y^2-y^3+3*sqrt(7)*(4*x*y-4*x^2-y^2-2)];mroot:=Vector([2*sqrt(7)/5+sqrt(5)/5,-sqrt(7)/5+2*sqrt(5)/5]); 1/2 2 2 1/2 3 lsys := [14 x + 33 y - 3 5 (x + 4 x y + 4 y + 2) + 7 + x 2 2 3 1/2 3 + 6 x y + 12 x y + 8 y , 41 x - 18 y - 5 + 8 x 2 2 3 1/2 2 2 - 12 x y + 6 x y - y + 3 7 (4 x y - 4 x - y - 2)] [ 1/2 1/2 ] [ 2 7 5 ] [ ------ + ---- ] [ 5 5 ] mroot := [ ] [ 1/2 1/2] [ 7 2 5 ] [- ---- + ------] [ 5 5 ] > #Truncate the coefficients > Digits:=14;lsys:=evalf(lsys);Digits:=14: Digits := 14 2 lsys := [14. x + 33. y - 6.7082039324994 x - 26.832815729998 x y 2 3 2 - 26.832815729998 y - 10.770656553934 + x + 6. x y 2 3 3 + 12. x y + 8. y , 41. x - 18. y - 18.110575843888 + 8. x 2 2 3 - 12. x y + 6. x y - 1. y + 31.749015732774 x y 2 2 - 31.749015732774 x - 7.9372539331938 y ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol);appx-evalf(Vector([2*sqrt(7)/5+sqrt(5)/5,-sqrt(7)/5+2*sqrt(5)/5])); MultipleRootRefinerBreadthOne: The new approximation:, [1.50579161498839298 + 0.000575741981111397044 I ] [ ] [0.365369428040473010 + 0.000191915022582387209 I] MultipleRootRefinerBreadthOne: The nullvector:, [ -0.948682962748262136 - 0. I ] [ ] [ -5 ] [-0.316228771918701190 + 0.140339997967103518 10 I] MultipleRootRefinerBreadthOne: [ -5 ] The new Jacobian:, [-3.1622743071433 + 0.84203242846258 10 I] [ ] [-3.1622810131283 + 0.000016840747966546 I ] MultipleRootRefinerBreadthOne: -7 The smallest singular value:, 0.763471277358580328 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0000594367583421776327 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0441122754575281537 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ 1.50565286750007021 + 0.000287870874215694052 I ] appx := [ ] [0.365323178288384788 + 0.0000959578530527821158 I] [ 0.000138747574270237096 + 0.000287870874215694052 I ] [ ] [0.0000462495013847652459 + 0.0000959578530527821158 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol);appx-evalf(Vector([2*sqrt(7)/5+sqrt(5)/5,-sqrt(7)/5+2*sqrt(5)/5])); MultipleRootRefinerBreadthOne: The new approximation:, [ -11 ] [1.50551411992165352 - 0.449326868088033282 10 I ] [ ] [ -11 ] [0.365276928785460864 - 0.149775622476504932 10 I] MultipleRootRefinerBreadthOne: The nullvector:, [ -0.948683298050548518 - 0. I ] [ ] [ -21 ] [-0.316227766016733468 + 0.164543847584283254 10 I] MultipleRootRefinerBreadthOne: [ -21 ] [-3.162277660166 + 0.9608149458116 10 I ] The new Jacobian:, [ ] [ -20 ] [-3.162277660166 + 0.19619743106708 10 I] MultipleRootRefinerBreadthOne: -11 The smallest singular value:, 0.212132034355962334 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -12 The smallest singular value:, 0.971885335138680207 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: -9 The smallest singular value:, 0.424821281122987898 10 MultipleRootRefinerBreadthOne: The multiplicity:, 5 MultipleRootRefinerBreadthOne: The smallest singular value:, 4.47213595499621520 MultipleRootRefinerBreadthOne: The multiplicity:, 5 [ -21 ] [1.50551411992585904 - 0.658638523777513554 10 I ] appx := [ ] [ -20 ] [0.365276928786862742 + 0.197496580804620354 10 I] [ -13 -21 ] [0.590638649100583280 10 - 0.658638523777513554 10 I] [ -12 -20 ] [-0.137279076994900606 10 + 0.197496580804620354 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol);appx-evalf(Vector([2*sqrt(7)/5+sqrt(5)/5,-sqrt(7)/5+2*sqrt(5)/5])); MultipleRootRefinerBreadthOne: The new approximation:, [ -23 ] [1.50551411992489492 - 0.229896779409982158 10 I ] [ ] [ -24 ] [0.365276928786826382 - 0.766322597032348262 10 I] MultipleRootRefinerBreadthOne: The nullvector:, [ -0.948683298050527978 - 0. I ] [ ] [ -34 ] [-0.316227766016795198 + 0.168865627053137878 10 I] MultipleRootRefinerBreadthOne: [ -33 ] [-3.1622776601678 + 0.1030203392322 10 I] The new Jacobian:, [ ] [ -33 ] [-3.1622776601635 + 0.2076323615798 10 I] MultipleRootRefinerBreadthOne: -12 The smallest singular value:, 0.707106781197605158 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -11 The smallest singular value:, 0.286039595496493140 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: -10 The smallest singular value:, 0.608818938601628382 10 MultipleRootRefinerBreadthOne: The multiplicity:, 5 MultipleRootRefinerBreadthOne: The smallest singular value:, 4.47213595499571960 MultipleRootRefinerBreadthOne: The multiplicity:, 5 [ -33 ] [1.50551411992579243 - 0.300143013357285621 10 I ] appx := [ ] [ -33 ] [0.365276928787125532 + 0.900762862100391161 10 I] [ -14 -33 ] [-0.754951656745106448 10 - 0.300143013357285621 10 I] [ -12 -33 ] [0.125510712933873948 10 + 0.900762862100391161 10 I] > Menzel1, (1,1) is 2-fold zero. > tol:=10.^(-2); tol := 0.010000000000000 > appx:=RandomVector(2,generator=0..1.)*1/100.+RandomVector(2,generator=0..1.)*sqrt(-1)/100.+Vector([1,1]); [1.00317099480061 + 0.000344460805029088 I] appx := [ ] [1.00694828622976 + 0.00950222048838355 I ] > lsys:=[x^2-x*y+y^2+x-2, 3*x^2+2*x*y+2*y-7, 2*x^2-8*x+y^2-4*y+9]; 2 2 2 lsys := [x - x y + y + x - 2, 3 x + 2 x y + 2 y - 7, 2 2 2 x - 8 x + y - 4 y + 9] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 1.81069453292339 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ -5 ] [1.00000450842229 + 0.798163937906163 10 I] appx := [ ] [ -5 ] [1.00000541101090 + 0.506535060229660 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 1.81128045482994 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ -10 ] [0.999999999992935 + 0.201070629888513 10 I] appx := [ ] [ -10 ] [0.999999999993305 + 0.183181951401479 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x,y],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 1.81128079784205 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ -22 ] [1.00000000000000 - 0.728060302920880 10 I] appx := [ ] [ -22 ] [ 1. - 0.656946196254761 10 I ] > SY5, (1,1) is 2-fold zero. > > tol:=10.^(-2); tol := 0.010000000000000 > appx:=RandomVector(2,generator=0..1.)*1/100.+RandomVector(2,generator=0..1.)*sqrt(-1)/100.+Vector([1,1]); [1.00381558457093 + 0.00795199901137063 I] appx := [ ] [1.00438744359656 + 0.00765516788149002 I] > lsys:=[x1+x2-2,x1^2+x2^2-2]; 2 2 lsys := [x1 + x2 - 2, x1 + x2 - 2] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.430037052848612 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [0.999982797316065 + 0.0000259660798364880 I] appx := [ ] [0.999982797295823 + 0.0000259660659220408 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.430031503119013 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ -9 ] [0.999999999848667 - 0.357348843932076 10 I] appx := [ ] [ -9 ] [0.999999999848668 - 0.357348843932076 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.430031503070037 MultipleRootRefinerBreadthOne: The multiplicity:, 2 [ -19 ] [1. + 0.432627609580480 10 I] appx := [ ] [ -19 ] [1. + 0.432627609580480 10 I] > Example 1, provided by the reviewer > lsys:=[32*y-24*z+8*u-v-16,-x^2+y,-y^2+z,-y*z+u,-z^2+v];mroot:=Vector([8,16,sqrt(2),2,4]);ord:=[u,v,x,y,z]; 2 2 lsys := [32 y - 24 z + 8 u - v - 16, -x + y, -y + z, -y z + u, 2 -z + v] [ 8 ] [ ] [ 16 ] [ ] mroot := [ 1/2] [2 ] [ ] [ 2 ] [ ] [ 4 ] ord := [u, v, x, y, z] > fsolve(lsys); {u = 7.9999570279158, v = 15.999885407878, x = 1.4142122962931, y = 1.9999964189866, z = 3.9999856759591} > appx:=Vector([7.9999570279158, 15.999885407878, 1.4142122962931, 1.9999964189866, 3.9999856759591]); [7.9999570279158] [ ] [15.999885407878] [ ] appx := [1.4142122962931] [ ] [1.9999964189866] [ ] [3.9999856759591] > evalf(appx-mroot); [ -0.0000429720842 ] [ ] [ -0.000114592122 ] [ ] [ -5] [-0.126607999505 10 ] [ ] [ -5 ] [ -0.35810134 10 ] [ ] [ -0.0000143240409 ] > tol:=10.^(-8); -7 tol := 0.100000000000000000 10 > appx:=MultipleRootRefinerBreadthOne(lsys,ord,appx,tol); MultipleRootRefinerBreadthOne: [7.99995702791578191] [ ] [15.9998854078780074] [ ] The new approximation:, [1.41421229629308838] [ ] [1.99999641898657000] [ ] [3.99998567595910366] MultipleRootRefinerBreadthOne: [-0.348577881500303416 ] [ ] [-0.929539352984709217 ] [ ] The nullvector:, [-0.010270120295924381 ] [ ] [-0.0290482608138109267] [ ] [-0.116192835210819510 ] MultipleRootRefinerBreadthOne: The new Jacobian:, [-40.8014311663932038 , 0.4168318977846392 , 0.094137979750908790 , 0.24617876398061905] [-0.782793618430718317 , 0.695516175954546116 , -2.80765441018371721 , 0.143365926397840613] [3.71334187237021737 , -1.62598811861243494 , 0.0250117685437131744 , 0.752709699886995316] [1.73228338329784098 , -4.00247313302384415 , 0.0220299628532254469 , 1.40669430365885693] [-4.75377172524278978 , -6.42080706413472846 , -0.318086573625157532 , -1.03597953292099498] MultipleRootRefinerBreadthOne: -14 The smallest singular value:, 0.361816660659519783 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -10 The smallest singular value:, 0.195659024392702594 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: -7 The smallest singular value:, 0.396793039771032274 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [7.99999999893680162] [ ] [15.9999999970622202] [ ] appx := [1.41421356234460379] [ ] [1.99999999991781166] [ ] [3.99999999965842358] > evalf(appx-mroot); [ -8] [-0.106319838 10 ] [ ] [ -8 ] [-0.29377798 10 ] [ ] [ -10 ] [-0.2849126 10 ] [ ] [ -10 ] [-0.8218834 10 ] [ ] [ -9 ] [-0.34157642 10 ] > appx:=MultipleRootRefinerBreadthOne(lsys,ord,appx,tol); MultipleRootRefinerBreadthOne: [7.99999999890415711] [ ] [15.9999999970777523] [ ] The new approximation:, [1.41421356234080847] [ ] [1.99999999990867976] [ ] [3.99999999963471904] MultipleRootRefinerBreadthOne: [-0.348577351881362534 ] [ ] [-0.929539604974523743 ] [ ] The nullvector:, [-0.010270058721312363 ] [ ] [-0.0290481126594328876] [ ] [-0.116192450632426195 ] MultipleRootRefinerBreadthOne: The new Jacobian:, [-40.8014311234147996 , 0.4168353357192425 , 0.094138203894668131 , 0.24617998030191027] [-0.782793579450739678 , 0.695515728398414583 , -2.80765705710741048 , 0.143366428534706548] [3.71334734196204652 , -1.62599261335769223 , 0.0250121718369312272 , 0.752711052827381619] [1.73229211972360704 , -4.00248449824786079 , 0.0220308446449184924 , 1.40669701493454720] [-4.75378939018908267 , -6.42082950797905535 , -0.318086196126219789 , -1.03598070606363744] MultipleRootRefinerBreadthOne: -19 The smallest singular value:, 0.710887393229433617 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -15 The smallest singular value:, 0.498940359112664358 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: -7 The smallest singular value:, 0.396772802814016018 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [7.99999999999999317] [ ] [15.9999999999999818] [ ] appx := [1.41421356237309485] [ ] [1.99999999999999943] [ ] [3.99999999999999773] > evalf(appx-mroot); [ -14] [-0.683 10 ] [ ] [ -13] [-0.182 10 ] [ ] [ -15 ] [-0.20 10 ] [ ] [ -15 ] [-0.57 10 ] [ ] [ -14] [-0.227 10 ] > cluster of 4 zeros centered at (0,0,0). > tol:=10.^(-2); tol := 0.010000000000000 > N:=5:lsys:=[10^(-4*N) +3*x1+5*x2+y+x2*y^2+6*x1^3*x2+5*x1*x2*y^2- > 5*x1*y^3-x1*y^4,10^(-4*N)-x1+2*x2+x1*y-x1*x2*y-x1*y^3-4*x2*y^3+ > 3*x1*x2^3*y, 10^(-4*N)+x1+11/2*x1^2-2*x2+1419*x2^3+y^3]; 2 lsys := [1/100000000000000000000 + 3 x1 + 5 x2 + y + x2 y 3 2 3 4 + 6 x1 x2 + 5 x1 x2 y - 5 x1 y - x1 y , 3 1/100000000000000000000 - x1 + 2 x2 + x1 y - x1 x2 y - x1 y 3 3 - 4 x2 y + 3 x1 x2 y, 1/100000000000000000000 + x1 2 3 3 + 11/2 x1 - 2 x2 + 1419 x2 + y ] > appx:=RandomVector(3,generator=0..1.)*1/1000.+RandomVector(3,generator=0..1.)*sqrt(-1)/1000.; [0.000445586200710899 + 0.000754686681982361 I] [ ] appx := [0.000489764395788231 + 0.000709364830858073 I] [ ] [0.000186872604554379 + 0.000646313010111265 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,y],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0000202854319635851 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.00266657590520466 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 1.35379076905143 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -5 -5 ] [-0.104812646484251 10 + 0.111582612634334 10 I] [ ] appx := [ -6 -6 ] [0.577963229642172 10 - 0.578234988152845 10 I ] [ ] [ -6 -6 ] [0.362994491845619 10 - 0.268135697659155 10 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,y],appx,tol); MultipleRootRefinerBreadthOne: -10 The smallest singular value:, 0.323915105117217 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -5 The smallest singular value:, 0.391414620676568 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 1.35375207910173 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -12 -11 ] [-0.373524845466487 10 - 0.245085397575220 10 I] [ ] appx := [ -12 -11 ] [0.179195539614711 10 + 0.134067754335221 10 I ] [ ] [ -12 -12 ] [0.105872251722442 10 + 0.783535011719703 10 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,y],appx,tol); MultipleRootRefinerBreadthOne: -16 The smallest singular value:, 0.861348624650975 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -11 The smallest singular value:, 0.670022214093324 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 1.35375204238887 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -16 -23 ] [0.204536212036565 10 + 0.145094870752939 10 I ] [ ] appx := [ -16 -24 ] [0.102268174777545 10 - 0.828594251295184 10 I ] [ ] [ -15 -24 ] [-0.112504951072785 10 - 0.660977086153823 10 I] > GLSY2, N=10, there is a cluster of 4 zeros centered at (0,0,0). > tol:=10.^(-2); tol := 0.010000000000000 > N:=10:lsys:=[10^(-4*N) +3*x1+5*x2+y+x2*y^2+6*x1^3*x2+5*x1*x2*y^2- > 5*x1*y^3-x1*y^4,10^(-4*N)-x1+2*x2+x1*y-x1*x2*y-x1*y^3-4*x2*y^3+ > 3*x1*x2^3*y, 10^(-4*N)+x1+11/2*x1^2-2*x2+1419*x2^3+y^3]; lsys := [1/10000000000000000000000000000000000000000 + 3 x1 + 5 x2 2 3 2 3 4 + y + x2 y + 6 x1 x2 + 5 x1 x2 y - 5 x1 y - x1 y , 1/10000000000000000000000000000000000000000 - x1 + 2 x2 3 3 3 + x1 y - x1 x2 y - x1 y - 4 x2 y + 3 x1 x2 y, 2 1/10000000000000000000000000000000000000000 + x1 + 11/2 x1 3 3 - 2 x2 + 1419 x2 + y ] > appx:=RandomVector(3,generator=0..1.)*1/1000.+RandomVector(3,generator=0..1.)*sqrt(-1)/1000.; [0.000655098003973841 + 0.000498364051982143 I] [ ] appx := [0.000679702676853675 + 0.000118997681558377 I] [ ] [0.000276025076998578 + 0.000162611735194631 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,y],appx,tol); MultipleRootRefinerBreadthOne: The smallest singular value:, 0.0000157540705185162 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.000661458674439277 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 1.35374324211088 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -6 -5 ] [0.472241945412074 10 + 0.103253579720403 10 I ] [ ] appx := [ -6 -6 ] [-0.239122747473544 10 - 0.536991587409369 10 I] [ ] [ -7 -6 ] [-0.824157962417470 10 - 0.334496277755294 10 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,y],appx,tol); MultipleRootRefinerBreadthOne: -10 The smallest singular value:, 0.193179882532860 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -5 The smallest singular value:, 0.297150126786000 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 1.35375203168148 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -12 -11 ] [-0.863732701965831 10 + 0.122140154375948 10 I] [ ] appx := [ -12 -12 ] [0.478693115146200 10 - 0.650133865671380 10 I ] [ ] [ -12 -12 ] [0.241127923548629 10 - 0.324129126636496 10 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,y],appx,tol); MultipleRootRefinerBreadthOne: -16 The smallest singular value:, 0.646011468488786 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -11 The smallest singular value:, 0.361220385348217 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 1.35375204238888 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -16 -23 ] [0.299830518328670 10 - 0.220268897399432 10 I ] [ ] appx := [ -16 -23 ] [0.149915269205272 10 + 0.120257111835512 10 I ] [ ] [ -15 -24 ] [-0.164906790200312 10 + 0.738020397601328 10 I] > GLSY3, N=20, there is a cluster of 4 zeros centered at (0,0,0). > tol:=10.^(-2); tol := 0.010000000000000 > N:=20:lsys:=[10^(-4*N) +3*x1+5*x2+y+x2*y^2+6*x1^3*x2+5*x1*x2*y^2- > 5*x1*y^3-x1*y^4,10^(-4*N)-x1+2*x2+x1*y-x1*x2*y-x1*y^3-4*x2*y^3+ > 3*x1*x2^3*y, 10^(-4*N)+x1+11/2*x1^2-2*x2+1419*x2^3+y^3]; lsys := [1/10000000000000000000000000000000000000000000000000000\ 2 0000000000000000000000000000 + 3 x1 + 5 x2 + y + x2 y 3 2 3 4 + 6 x1 x2 + 5 x1 x2 y - 5 x1 y - x1 y , 1/100000000000\ 0000000000000000000000000000000000000000000000000000000000\ 3 3 00000000000 - x1 + 2 x2 + x1 y - x1 x2 y - x1 y - 4 x2 y 3 + 3 x1 x2 y, 1/10000000000000000000000000000000000000000\ 2 0000000000000000000000000000000000000000 + x1 + 11/2 x1 3 3 - 2 x2 + 1419 x2 + y ] > appx:=RandomVector(3,generator=0..1.)*1/1000.+RandomVector(3,generator=0..1.)*sqrt(-1)/1000.; [0.000585267750979777 + 0.000255095115459269 I] [ ] appx := [0.000340385726666133 + 0.000751267059305653 I] [ ] [0.000959743958516081 + 0.000223811939491137 I] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,y],appx,tol); MultipleRootRefinerBreadthOne: -5 The smallest singular value:, 0.520748080968759 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: The smallest singular value:, 0.00496842419200397 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 1.35380996250394 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -6 -6 ] [0.190526288080915 10 + 0.411566641166243 10 I ] [ ] appx := [ -6 -6 ] [-0.172803502924106 10 - 0.232771071086438 10 I] [ ] [ -6 -8 ] [0.383018965655069 10 - 0.698734499836209 10 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,y],appx,tol); MultipleRootRefinerBreadthOne: -11 The smallest singular value:, 0.526089983207342 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -5 The smallest singular value:, 0.221316860299301 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 1.35375206906432 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -12 -12 ] [-0.117237340538545 10 + 0.290133508820094 10 I] [ ] appx := [ -13 -12 ] [0.468808578396204 10 - 0.145618133164793 10 I ] [ ] [ -12 -12 ] [0.128545686617511 10 - 0.125051351739837 10 I ] > appx:=MultipleRootRefinerBreadthOne(lsys,[x1,x2,y],appx,tol); MultipleRootRefinerBreadthOne: -15 The smallest singular value:, 0.236870871779001 10 MultipleRootRefinerBreadthOne: The multiplicity:, 3 MultipleRootRefinerBreadthOne: -11 The smallest singular value:, 0.131687444230620 10 MultipleRootRefinerBreadthOne: The multiplicity:, 4 MultipleRootRefinerBreadthOne: The smallest singular value:, 1.35375204238887 MultipleRootRefinerBreadthOne: The multiplicity:, 4 [ -16 -25 ] [-0.276526471663760 10 - 0.531629141246544 10 I] [ ] appx := [ -16 -25 ] [-0.138263234993542 10 + 0.338579100520858 10 I] [ ] [ -15 -26 ] [0.152089558993730 10 - 0.350885330642306 10 I ] >