1 Quadratic Forms
1.1 Quadratic Form 2D
(%i1) |
poly(x,y):= x^2 + 4*x*y + 4*y^2 +3*x + y - 3/4; qmat : matrix([1,2],[2,4]); xy : [x,y]; expand(xy.qmat.transpose(xy)) ; expand(xy.qmat.transpose(xy)) +3*x + y - 3/4; |
Plot quadratic form
(%i6) |
load(draw)$ wxdraw2d( implicit(poly(x,y)=0,x,-3,3,y,-3,3) )$ |
Find transformation matrix
(%i8) |
load(eigen)$ uev : uniteigenvectors(qmat)[2]; evec1 : flatten(uev[1]); evec2 : flatten(uev[2]); smat : transpose(matrix(evec1,evec2)); transpose(smat).qmat.smat; |
Transform quadratic form
(%i14) | transpose(smat).qmat.smat; |
Find transformed coordinates
(%i15) |
xpyp : smat.[x,y]; xp : flatten(xpyp[1][1]); yp : flatten(xpyp[2][1]); |
Find transformed quadratic form
(%i18) |
display(poly(x,y))$ expand(poly(xp,yp)); print("Find canonical quadratic form")$ expand(subst(ypp/sqrt(5)-sqrt(5)/(2*5),y,poly(xp,yp))); |
Quadratic Form (3D)
1.2 Quadratic form 3D
(%i22) | poly3(x,y,z):= x^2 + y^2 + z^2 + + z*x + z*y + 3*x + y - 3/4; |
Plot quadratic form
(%i23) |
load(draw)$ wxdraw3d(enhanced3d = true, implicit(poly3(x,y,z)=0,x,-6,3,y,-6,3,z,-2,6) )$ |
(%i25) |
qmat3 : matrix([1,0,1/2],[0,1,1/2],[1/2,1/2,1]); xyz : [x,y,z]$ expand(transpose(xyz).qmat3.xyz); expand(transpose(xyz).qmat3.xyz) +3*x + y - 3/4; |
Find transformation matrix
(%i29) |
load(eigen)$ eigenvectors(qmat3); uev : uniteigenvectors(qmat3)[2]; evec1 : flatten(uev[1]); evec2 : flatten(uev[2]); evec3 : flatten(uev[3]); smat : transpose(matrix(evec1,evec2,evec3)); transpose(smat).qmat3.smat; |
Transform quadratic form
(%i37) |
transpose(smat).qmat3.smat; expand(transpose(smat).qmat3.smat); |
(%i39) |
xpypzp : smat.[x,y,z]; xp : flatten(xpypzp[1][1]); yp : flatten(xpypzp[2][1]); zp : flatten(xpypzp[3][1]); |
Find transformed quadratic form
(%i43) |
display(poly3(x,y,z))$ expand(poly3(xp,yp,zp)); load(format)$ format(format(expand(poly3(xp,yp,zp)),%poly(x)),%poly(y)) ; |
Excercise: Put it into form (using the subst command) that contains no terms linear in x,y,z (see example above).
Excercise: Write a little function that does the above job.