Generalized Inverse and VolumeAdi Ben-IsraelLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYrLUkjbWlHRiQ2KFEocmVzdGFydEYnLyUlYm9sZEdRJXRydWVGJy8lJ2l0YWxpY0dGMS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GJy8lLG1hdGh2YXJpYW50R1EsYm9sZC1pdGFsaWNGJy8lK2ZvbnR3ZWlnaHRHUSVib2xkRictSSNtb0dGJDYwUSI6RidGL0Y0L0Y4RjxGOi8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGRC8lKXN0cmV0Y2h5R0ZELyUqc3ltbWV0cmljR0ZELyUobGFyZ2VvcEdGRC8lLm1vdmFibGVsaW1pdHNHRkQvJSdhY2NlbnRHRkQvJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZTLUYsNihRJXdpdGhGJ0YvRjJGNEY3RjotSShtZmVuY2VkR0YkNictRiM2Iy1GLDYoUSdsaW5hbGdGJ0YvRjJGNEY3RjpGL0Y0RkFGOkY9LUY+NjBRIiNGJ0YvRjRGQUY6RkJGRUZHRklGS0ZNRk8vRlJRJjAuMGVtRicvRlVGX29GVi1GWjYnLUYjNiMtRiw2KFEuTGluZWFyQWxnZWJyYUYnRi9GMkY0RjdGOkYvRjRGQUY6Rj0=QyQ+SSRlcHNHNiIsJC1JIl5HJSpwcm90ZWN0ZWRHNiQiIzUhIiokIiIiIiIhRi4=print(); # input placeholderrecipvec(x) returens a vector of reciprocals of the elements of x with modulus > eps and 0 otherwiseQyQ+SSlyZWNpcHZlY0c2ImYqNiNJInhHRiU2JUkia0dGJUkibkdGJUkieUdGJUYlRiVDJj44JS1JKHZlY3RkaW1HRiU2IzkkPjgmLUkmYXJyYXlHJSpwcm90ZWN0ZWRHNiM7IiIiRi8/KDgkRjtGO0YvSSV0cnVlR0Y4QCUySSRlcHNHRiUtSSRhYnNHRjg2IyZGMzYjRj0+JkY1RkYqJEZFISIiPkZIIiIhLUklZXZhbEdGODYjRjVGJUYlRiVGSg==JSFHprint(); # input placeholderprint(); # input placeholderLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2I1EhRic=Example#recipvec([1, 2, -3, 0.1e-2, 0.1e-9]);print(); # input placeholderJSFHprint(); # input placeholdervectodiag(x,m,n) returns an mxn matrix X with x on diagonalQyQ+SSp2ZWN0b2RpYWdHNiJmKjYlSSJ4R0YlSSJtR0YlSSJuR0YlNiZJImlHRiVJImpHRiVJImtHRiVJIlhHRiVGJUYlQyY+OCctSSZhcnJheUclKnByb3RlY3RlZEc2JDsiIiI5JTtGODkmPjgmLUkodmVjdGRpbUdGJTYjOSQ/KDgkRjhGOEY5SSV0cnVlR0Y1Pyg4JUY4RjhGO0ZEQCUzL0ZDRkYxRkNGPT4mRjI2JEZDRkYmRkE2I0ZDPkZMIiIhLUkmZXZhbG1HRiU2I0YyRiVGJUYlISIiprint(); # input placeholderExample#vectodiag(recipvec([1,2,-3,0.001,0.0000000001]),6,7);print(); # input placeholderSvd(A,U,V) returns the singular values of A and the unitary matrices U,VA:=matrix(3,5,[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]);print(); # input placeholderevalf(Svd(A,U,V));print(); # input placeholderD1:=vectodiag(%,3,5);print(); # input placeholderevalm(U&*D1&*transpose(V));print(); # input placeholderMoorePenrose(A) returns the Moore-Penrose inverse of AQyQ+SS1Nb29yZVBlbnJvc2VHNiJmKjYjSSJBR0YlNihJIm1HRiVJIm5HRiVJInhHRiVJIlVHRiVJIlZHRiVJI0QxR0YlRiVGJUMnPjgkLUkncm93ZGltR0YlNiM5JD44JS1JJ2NvbGRpbUdGJUY1PjgmLUkmZXZhbGZHJSpwcm90ZWN0ZWRHNiMtSSRTdmRHNiRGP0koX3N5c2xpYkdGJTYlRjY4JzgoPjgpLUkqdmVjdG9kaWFnR0YlNiUtSSlyZWNpcHZlY0dGJTYjRjxGOEYyLUkmZXZhbG1HRkM2Iy1JIyYqR0YlNiQtRlQ2JEZHRkktSSp0cmFuc3Bvc2VHRiU2I0ZGRiVGJUYlISIiExampleA:=matrix(3,5,[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]):print(); # input placeholderA:=MoorePenrose(A):print(); # input placeholderevalm(A&*MoorePenrose(A)):print(); # input placeholderevalm(MoorePenrose(A)&*A):print(); # input placeholderHilbert(n) returns the nxn Hilbert matrixQyQ+SShIaWxiZXJ0RzYiZio2I0kibkdGJTYlSSJpR0YlSSJqR0YlSSJIR0YlRiVGJUMlPjgmLUkmYXJyYXlHJSpwcm90ZWN0ZWRHNiQ7IiIiOSRGND8oOCRGNUY1RjZJJXRydWVHRjI/KDglRjVGNUY2Rjk+JkYvNiRGOEY7KiQsJkY4RjVGO0Y1ISIiLUkmZXZhbG1HNiRGMkkoX3N5c2xpYkdGJTYjRi9GJUYlRiVGQQ==print(); # input placeholderExample#H:=Hilbert(3);print(); # input placeholder#inverse(H);print(); # input placeholder#MoorePenrose(H):print(); # input placeholder#evalm(%-%%);print(); # input placeholder#evalf(norm(%));print(); # input placeholderVol(A) computes the volume of A using its singular value (sensitive to eps)JSFHQyQ+SSRWb2xHNiJmKjYjSSJBR0YlNiZJInhHRiVJIm5HRiVJInZHRiVJImtHRiVGJUYlQyc+OCQtSSZldmFsZkclKnByb3RlY3RlZEc2Iy1JJFN2ZEc2JEYzSShfc3lzbGliR0YlNiM5JD44JS1JKHZlY3RkaW1HRiU2I0YwQCUyJkYwNiMiIiJJJGVwc0dGJT44JiIiIT5GR0ZEPyg4J0ZERkRGPEkldHJ1ZUdGM0AkMkZFJkYwNiNGSz5GRyomRkdGREZPRkRGR0YlRiVGJSEiIg==Example#A:=matrix(2,2,[1,2,3,4]);print(); # input placeholder#Vol(A);print(); # input placeholder#H:=Hilbert(10):#Vol(H);print(); # input placeholder#evalf(det(H));print(); # input placeholderGramian(A) computes the volume of a full-rank matrix A from det(A^T A) or det(A A^T)QyQ+SShHcmFtaWFuRzYiZio2I0kiQUdGJTYlSSJHR0YlSSJtR0YlSSJuR0YlRiVGJUMmPjglLUkncm93ZGltR0YlNiM5JD44Ji1JJ2NvbGRpbUdGJUYyQCUyRjVGLz44JC1JJmV2YWxtRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliR0YlNiMtSSMmKkdGJTYkLUkqdHJhbnNwb3NlR0YlRjJGMz5GOy1GPTYjLUZDNiRGM0ZFLUkpc2ltcGxpZnlHRiU2Iy1JJXNxcnRHRiU2Iy1JJGRldEdGJTYjRjtGJUYlRiUhIiI=print(); # input placeholderJSFHExample#H:=Hilbert(10):print(); # input placeholder#Vol(H);print(); # input placeholder#evalf(Gramian(H));print(); # input placeholder#X:=randmatrix(8,5):Y:=randmatrix(5,12):Z:=evalm(X&*Y):#Vol(X);print(); # input placeholder#Vol(Y);print(); # input placeholder#%*%%;print(); # input placeholder#Vol(Z);print(); # input placeholderJSFHCartesian coordinates#x:=array(1..2):#jacobian([x[1],x[2],z(x[1],x[2])],x);print(); # input placeholder#Gramian(%);print(); # input placeholder#unassign('x'),x;print(); # input placeholderCylindical coordinates#jacobian([r*cos(theta),r*sin(theta),z(r,theta)],[r,theta]);print(); # input placeholder#Gramian(%);print(); # input placeholderSpherical coordinates#jacobian([r*cos(theta)*sin(phi),r*sin(theta)*sin(phi),z(r)],[r,theta,phi]);print(); # input placeholder#Gramian(%);print(); # input placeholderThe area of the unit sphere in R^3#jacobian([x,y,sqrt(1-x^2-y^2)],[x,y]);print(); # input placeholder#Gramian(%);print(); # input placeholder#2*int(int(%,y=-sqrt(1-x^2)..sqrt(1-x^2)),x=-1..1);print(); # input placeholderSphere of radius R in R^3#jacobian([r,theta,sqrt(R^2-r^2)],[r,theta]);print(); # input placeholder#Gramian(%);print(); # input placeholderIntSphere2(f,r,theta) computes integral of f(r,theta,z) on sphere of radius R in R^3QyQ+SStJbnRTcGhlcmUyRzYiZio2JkkiZkdGJUkickdGJUkmdGhldGFHRiVJIlJHRiU2KEkldm9sdUdGJUkldm9sZEdGJUkjZnVHRiVJI2ZkR0YlSSVpbnR1R0YlSSVpbnRkR0YlRiVGJUMpPjgkLUkoR3JhbWlhbkdGJTYjLUkpamFjb2JpYW5HRiU2JDclOSU5Ji1JJXNxcnRHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHRiU2IywmKiQ5JyIiIyIiIiokRj1GSCEiIjckRj1GPj44JS1GNzYjLUY6NiQ3JUY9Rj4sJEY/RktGTD44Ji1JJXN1YnNHRkI2JC9JInpHRiVGPzkkPjgnLUZYNiQvRmVuRlRGZm4+OCgtSSRpbnRHRkE2JC1GX282JCooRj1GSUZWRklGNUZJL0Y+OyIiISwkSSNQaUdGQkZIL0Y9O0Zmb0ZHPjgpLUZfbzYkLUZfbzYkKihGPUZJRmhuRklGTkZJRmRvRmlvLUkpc2ltcGxpZnlHRkE2IywmRl1vRklGXHBGSUYlRiVGJUZLThe area of the a sphere of radius R in R^3IntSphere2(1,r,theta,R);print(); # input placeholderVolume of a ball of radius R in R^3int(IntSphere2(1,r,theta,s),s=0..R);print(); # input placeholderIntegrals of f(r)=r^2, f(r)=R^2-r^2 and f(r)=x^2 on the sphere of radius R in R^3#IntSphere2(r^2,r,theta,R);print(); # input placeholder#IntSphere2(R^2-r^2,r,theta,R);print(); # input placeholder#IntSphere2(r^2*cos(theta)^2,r,theta,R);print(); # input placeholderIntegrals of f(r)=1/r, f(r)=1/r^2 and f(r)=1/r^3 over the ball of radius R in R^3int(IntSphere2(1/R,r,theta,R),R=0..R);print(); # input placeholderint(IntSphere2(1/R^2,r,theta,R),R=0..R);print(); # input placeholderint(IntSphere2(1/R^3,r,theta,R),R=0..R);print(); # input placeholderprint(); # input placeholderprint(); # input placeholderLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2I1EhRic=Radon2(f,x,y,a,b,p) is the integral of f(x,y) on the line ax+by=p, b must be nonzero