restart;with( plots ):with( plottools ):Shrinking Sphere ProblemDerivation of General Formula for Intersection of S and S_r,and Its Projection from the Top of S_r onto the z=0 PlaneWhen S is an EllipsoidDouglas B. Meade9 February 2007Initial Configuration: the S (ellipsoid) and S_r (sphere) and the point PS := (a,b,c) -> (x/a)^2+((y-b)/b)^2+(z/c)^2=1; # fixed surfaceSr := r -> x^2+y^2+z^2=r^2; # shrinking sphereP := r -> [ 0, 0, r ]; # top of shrinking sphereplotP := r -> plot3d( P(r), x=-1..1, y=-1..1, style=point, symbol=circle, symbolsize=10, color=blue ):plotS := (a,b,c) -> implicitplot3d( S(a,b,c), x= -a..a, y=0..2*b, z=-c..c,
color=pink, style=patchnogrid, transparency=0.8, grid=[25,25,25] ):plotSr := r -> implicitplot3d( Sr(r), x=-r..r, y=-r..r, z=-r..r,
color=cyan, style=patchnogrid, transparency=0.8 ):P1 := (r,a,b,c) -> display( [plotP(r),plotS(a,b,c),plotSr(r)],
axes=normal, labels=["x","y","z"], orientation=[25,65], args[5..-1] ):P1(1,1,2,3, scaling=constrained);Construction of Q: Intersection of S and S_rThe intersection between these two spheres is a circle, parallel to the x=0 plane.Intersection := allvalues( solve( {S(a,b,c),Sr(r)}, {x,y} ) ):simplify( [Intersection] ) assuming a>b, b>c, c>0;There are two parts to this solution.xPOS := (p,q)->evalb( eval(x, eval(p,[r=1.,a=1.,b=1/2.,c=2.,z=1/2.]))>0 ) = q:Q := [ unapply( eval( [x,y,z], select( xPOS, [Intersection], true )[] ), [z,r,a,b,c] ), unapply( eval( [x,y,z], select( xPOS, [Intersection], false )[] ), [z,r,a,b,c] ) ]:piecewise( x>0, Q[1](y,r,a,b,c), x<0, Q[2](y,r,a,b,c) );To construct the projection from the top of the shrinking sphere through Q onto the z=0 plane, the parameterization of Q can be done in terms of z. The minimum and maximum values of z occur when x=0. We now find the highest point, which we call Qstar.yzPOS := (p,q) -> evalb( eval([y,z], eval(p,[r=1.,a=1.,b=1.,c=2.]))::[positive,positive] ) = q:Q0 := allvalues( solve( eval({S(a,b,c),Sr(r)},x=0), {y,z} ) ):Qstar := unapply( eval( [0,y,z], select( yzPOS, [Q0], true )[] ), [r,a,b,c] ):yM := unapply( Qstar(r,a,b,c)[2], [r,a,b,c] );zM := unapply( Qstar(r,a,b,c)[3], [r,a,b,c] );This curve is not easily identified.plotQ := (r,a,b,c) -> display( [seq( spacecurve( Q[i](z,r,a,b,c), z=-zM(r,a,b,c)..zM(r,a,b,c), color=gold, thickness=2 ), i=1..2 )] ):P2 := (r,a,b,c) -> display( [plotP(r),plotS(a,b,c),plotSr(r),plotQ(r,a,b,c)],
axes=normal, labels=["x","y","z"], orientation=[45,60], scaling=constrained ):P2(1,3,2,1);Construction of R: Projection of Q, from P, onto z=0 planeFor each value of z, the lines passing through P and the corresponding point on Q can be parameterized in terms of the (scaled) distance measured along this line.LinePQ := [seq( unapply( expand( (1-alpha)*P(r) + alpha*Q[i](z,r,a,b,c) ), [alpha,z,r,a,b,c] ), i=1..2 )]:piecewise( x>0, LinePQ[1](alpha,z,r,a,b,c), x<0, LinePQ[2](alpha,z,r,a,b,c) );The value of the parameter alpha when these lines hit the z=0 plane are given byalpha0 := unapply( [simplify( solve( LinePQ[1](alpha,z,r,a,b,c)[3]=0, alpha ) ) assuming a>0, r>0][],
[z,r,a,b] );Thus, the parametric representation of of the projected curve, R, in the z=0 plane isR := [seq( unapply( LinePQ[i](alpha0(z,r,a,b,c),z,r,a,b,c), [z,r,a,b,c] ), i=1..2 )]:map( simplify, piecewise( x>0, R[1](z,r,a,b,c), x<0, R[2](z,r,a,b,c) ) );This completes the constructions needed to put all of this together in one animation.plotR := (r,a,b,c) -> display( [seq( spacecurve( R[i](z,r,a,b,c), z=-zM(r,a,b,c).. zM(r,a,b,c), numpoints=201, color=red, thickness=1 ), i=1..2 )] ):P3 := (r,a,b,c) -> display( [P2(r,a,b,c),plotR(r,a,b,c)] ):animQ := (r,a,b,c) -> display( [seq( animate( spacecurve, [LinePQ[i](alpha,z,r,a,b,c), alpha=0..alpha0(z,r,a,b,c)], z=-zM(r,a,b,c).. zM(r,a,b,c),
color=blue, thickness=2, orientation=[25,65], background=P3(r,a,b,c),
scaling=constrained, frames=41 ), i=1..2 )] ):P3(1,3,2,1);animQ( 1 ,3,2,1);animQ(1/2,3,2,1);animQ(1/4,3,2,1);Limit as r -> 0These plots already illustrate the rapid convergence of every point on the curves R - except the one on the x-axis - to the origin (as r->0). Let's look at the parametric form of R. The three components are (for x>0):X,Y,Z := R[1](zeta,r,a,b,c)[]:
x=X;
y=Y;
z=Z;It is not surprising that Maple reports that every point converges to the origin.map( limit, [X,Y,Z], r=0, right );We know there might be something interesting happening at the highest points on Q (along the positive y-axis). These points are given byQstar := eval( [X,Y,Z], zeta=zM(r,a,b,c) ):These expressions do not simplify much, but we do see that the z-component is 0.simplify( Qstar ) assuming a>b,b>c,c>0;In the limit, we expect that x approaches zero and y approaches twice the radius of the limiting circle. The general limit is still the originmap( limit, Qstar, r=0, right );but, at the highest point on Q:map( limit, Qstar, r=0, right ) assuming a>b,b>c,c>0;This suggests that the limiting curve approached by R is the circle centered at [ 0, NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USFGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjgvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKDJEfk1hdGhGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1GJDYlRiwtSSZtZnJhY0dGJTYqLUYkNiYtSSNtbkdGJTY5USIyRihGMEYzRjYvRjpGOEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ24vRmpuUSdub3JtYWxGKEZcby1JI21vR0YlNjNRMSZJbnZpc2libGVUaW1lcztGKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUSQwZW1GKC8lJ3JzcGFjZUdGaXAvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiVGLC1JJW1zdXBHRiU2JS1GLTY5USJjRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZW8vJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYoRixGLC1GJDYjLUYtNjlRImJGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby8lLmxpbmV0aGlja25lc3NHUSIxRigvJStkZW5vbWFsaWduR1EnY2VudGVyRigvJSludW1hbGlnbkdGaXMvJSliZXZlbGxlZEdGOEZgckZickYsRiw3IywkKigiIiMiIiIpSSJjR0YoRmF0RmJ0SSJiR0YoISIiRmJ0, 0 ] with radius NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USFGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjgvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKDJEfk1hdGhGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1GJDYlRiwtSSZtZnJhY0dGJTYqLUYkNiYtSSNtbkdGJTY5USIyRihGMEYzRjYvRjpGOEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ24vRmpuUSdub3JtYWxGKEZcby1JI21vR0YlNjNRMSZJbnZpc2libGVUaW1lcztGKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUSQwZW1GKC8lJ3JzcGFjZUdGaXAvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiVGLC1JJW1zdXBHRiU2JS1GLTY5USJjRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG9GZW8vJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYoRixGLC1GJDYjLUYtNjlRImJGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby8lLmxpbmV0aGlja25lc3NHUSIxRigvJStkZW5vbWFsaWduR1EnY2VudGVyRigvJSludW1hbGlnbkdGaXMvJSliZXZlbGxlZEdGOEZgckZickYsRiw3IywkKigiIiMiIiIpSSJjR0YoRmF0RmJ0SSJiR0YoISIiRmJ0 : NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USFGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjgvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKDJEfk1hdGhGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1GJDYlRiwtRiQ2J0YsLUYkNidGLC1GJDYlRiwtSSVtc3VwR0YlNiUtRi02OVEieEYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUkjbW5HRiU2OVEiMkYoRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8vJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYoRiwtSSNtb0dGJTYzUSIrRigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EwbWVkaXVtbWF0aHNwYWNlRigvJSdyc3BhY2VHRmNxLyUpc3RyZXRjaHlHRjgvJSpzeW1tZXRyaWNHRjgvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHUSIxRigvJShsYXJnZW9wR0Y4LyUubW92YWJsZWxpbWl0c0dGOC8lJ2FjY2VudEdGOC8lMGZvbnRfc3R5bGVfbmFtZUdGWC8lJXNpemVHRjUvJStmb3JlZ3JvdW5kR0ZELyUrYmFja2dyb3VuZEdGRy1GJDYlRiwtRmdvNiUtRiQ2JS1GZ3A2M1EiKEYoL0ZbcVEncHJlZml4RigvRl5xRjtGX3EvRmJxUS50aGlubWF0aHNwYWNlRigvRmVxRlt0L0ZncUY7RmhxRmpxRl1yRmByRmJyRmRyRmZyRmhyRmpyRlxzLUYkNiYtRi02OVEieUYoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvLUZncDYzUSgmbWludXM7RihGanBGXXFGX3FGYXFGZHFGZnFGaHFGanFGXXJGYHJGYnJGZHJGZnJGaHJGanJGXHMtSSZtZnJhY0dGJTYqLUYkNiZGXHAtRmdwNjNRMSZJbnZpc2libGVUaW1lcztGKEZqcEZdcUZfcS9GYnFRJDBlbUYoL0ZlcUZfdUZmcUZocUZqcUZdckZgckZickZkckZmckZockZqckZccy1GJDYlRiwtRmdvNiUtRi02OVEiY0YoRjBGM0Y2RjlGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmluRlxvRlxwRmNwRixGLC1GJDYjLUYtNjlRImJGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby8lLmxpbmV0aGlja25lc3NHUSIxRigvJStkZW5vbWFsaWduR1EnY2VudGVyRigvJSludW1hbGlnbkdGYnYvJSliZXZlbGxlZEdGOEZqckZcc0YsLUZncDYzUSIpRigvRltxUShwb3N0Zml4RihGaXNGX3FGanMvRmVxUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRl10RmhxRmpxRl1yRmByRmJyRmRyRmZyRmhyRmpyRlxzRlxwRmNwRixGLC1GZ3A2M1EiPUYoRmpwRl1xRl9xL0ZicVEvdGhpY2ttYXRoc3BhY2VGKC9GZXFGYndGZnFGaHFGanFGXXJGYHJGYnJGZHJGZnJGaHJGanJGXHMtRiQ2JUYsLUZnbzYlLUYkNiVGZHNGZnRGZ3ZGXHBGY3BGLEYsRixGLDcjLywmKiQpSSJ4R0YoIiIjIiIiRmF4KiQpLCZJInlHRihGYXgqKEZgeEZheClJImNHRihGYHhGYXhJImJHRighIiJGanhGYHhGYXhGYXgsJCooIiIlRmF4KUZoeEZdeUZheClGaXhGYHhGanhGYXg= . Notice that the curvature of the restriction of S to the y=0 plane is NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USFGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjgvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKDJEfk1hdGhGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1GJDYlRiwtRiQ2Ji1GLTY5USZrYXBwYUYoRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8tSSNtb0dGJTYzUSI9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGZXAvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUkmbWZyYWNHRiU2Ki1GJDYjLUYtNjlRImJGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby1GJDYlRiwtRiQ2JUYsLUklbXN1cEdGJTYlLUYtNjlRImNGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby1JI21uR0YlNjlRIjJGKEYwRjNGNkZlb0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZm9GXG8vJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYoRixGLC8lLmxpbmV0aGlja25lc3NHUSIxRigvJStkZW5vbWFsaWduR1EnY2VudGVyRigvJSludW1hbGlnbkdGXnQvJSliZXZlbGxlZEdGOEZcckZeckYsRixGLDcjL0kma2FwcGFHRigqJkkiYkdGKCIiIilJImNHRigiIiMhIiI= .This result is consistent with the general conclusion (with NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USFGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjgvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKDJEfk1hdGhGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1GJDYlRiwtRiQ2Ji1GLTY5USRyaG9GKEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvLUkjbW9HRiU2M1EiPUYoLyUlZm9ybUdRJmluZml4RigvJSZmZW5jZUdGOC8lKnNlcGFyYXRvckdGOC8lJ2xzcGFjZUdRL3RoaWNrbWF0aHNwYWNlRigvJSdyc3BhY2VHRmVwLyUpc3RyZXRjaHlHRjgvJSpzeW1tZXRyaWNHRjgvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHUSIxRigvJShsYXJnZW9wR0Y4LyUubW92YWJsZWxpbWl0c0dGOC8lJ2FjY2VudEdGOC8lMGZvbnRfc3R5bGVfbmFtZUdGWC8lJXNpemVHRjUvJStmb3JlZ3JvdW5kR0ZELyUrYmFja2dyb3VuZEdGRy1JJm1mcmFjR0YlNiotRiQ2Iy1JI21uR0YlNjlGYXFGMEYzRjZGZW9GPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmZvRlxvLUYkNiMtRi02OVEma2FwcGFGKEYwRjNGNkZlb0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZm9GXG8vJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRmJzLyUpYmV2ZWxsZWRHRjhGXHJGXnJGLEYsRiw3Iy9JJHJob0dGKCokSSZrYXBwYUdGKCEiIg== = NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USFGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjgvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKDJEfk1hdGhGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1GJDYlRiwtSSZtZnJhY0dGJTYqLUYkNiVGLC1JJW1zdXBHRiU2JS1GLTY5USJjRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tSSNtbkdGJTY5USIyRihGMEYzRjYvRjpGOEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ24vRmpuUSdub3JtYWxGKEZcby8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRihGLC1GJDYjLUYtNjlRImJGKEYwRjNGNkY5RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZpbkZcby8lLmxpbmV0aGlja25lc3NHUSIxRigvJStkZW5vbWFsaWduR1EnY2VudGVyRigvJSludW1hbGlnbkdGX3EvJSliZXZlbGxlZEdGOC8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHRixGLDcjKiYpSSJjR0YoIiIjIiIiSSJiR0YoISIi).We close with an animation that shows this convergence.to3d := transform( (x,y)->[x,y,0] ):plotR0 := p -> to3d( implicitplot( x^2 + (y-2*p)^2 = (2*p)^2, x=-2*p..2*p, y=0..4*p, color=green ) ):animR := (a,b,c) -> animate( P3, [1-r,a,b,c], r=0..1, frames=40, numpoints=401, paraminfo=false, background=plotR0(c^2/b) ):animR(2,1.5,1); # Be patient! This animation could take a while to create.