Visualizing Linear Transformations in R3 Worksheet by Michael K. May, S. J., revised by Russell Blyth restart: with(LinearAlgebra): with(plots): with(plottools): Warning, the name changecoords has been redefined Warning, the assigned name arrow now has a global binding
<Text-field style="Heading 1" layout="Heading 1">Outline</Text-field> The basic objectives are: 1) Learn how to have Maple draw a stick figure of a car in R3. 2) Learn to represent a linear transformation in R3 as multiplication by a matrix. 3) Explore the relationships between the matrix of a transformation and its image and nullspace.
<Text-field style="Heading 1" layout="Heading 1">Drawing a 3 dimensional car in Maple</Text-field> We first need to get Maple to draw a 3 dimensional object. We follow the OnLine section in the student resource manual and work with the image of a car. We start by producing a two dimensional outline of a car. listcar := [<0,.0954>, <.0102,.1612>, <.1425,.2237>, <.2124,.2336>, <.2513, .2401>, <.2902, .2401>, <.3187, .3158>, <.3472, .3553>, <.3912, .3684>, <.4611, .3750>, <.5104, .3783>, <.5674, .3783>, <.6373, .3783>, <.6710, .3684>, <.6891, .3520>, <.7047, .3388>, <.7202, .3191>, <.7306, .2961>, <.7409, .2763>, <.7876, .2664>, <.8135, .2599>, <.8264, .2500>, <.8394, .2368>, <.8472, .2072>, <.8497, .1612>, <.8497, .1513>, <.8497, .1283>, <.8497, .1020>, <.7350, .1020>, <.7350, .0510>, <.6840, .0000>, <.6250, .0000>, <.5740, .0510>, <.5740, .1020>, <.3410, .1020>, <.3410, .0510>, <.2900, .0000>, <.2310, .0000>, <.1800, .0510>, <.1800, .1020>, <.0020, .1020>]: We trace the outline. pointplot(listcar, style=line, view=[-0.2..1,0..0.5], axes=framed, scaling=constrained, color=black, labels=[x,z], labelfont=[TIMES, BOLD, 12], connect=true); NiktSSdDVVJWRVNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IzdLNyQkIiIhRi0kIiRhKiEiJTckJCIkLSJGMCQiJTc7RjA3JCQiJUQ5RjAkIiVQQUYwNyQkIiVDQEYwJCIlT0JGMDckJCIlOERGMCQiJSxDRjA3JCQiJS1IRjBGQzckJCIlKD0kRjAkIiVlSkYwNyQkIiVzTUYwJCIlYE5GMDckJCIlN1JGMCQiJSVvJEYwNyQkIiU2WUYwJCIlXVBGMDckJCIlL15GMCQiJSR5JEYwNyQkIiV1Y0YwRmluNyQkIiV0akYwRmluNyQkIiU1bkYwRlU3JCQiJSIqb0YwJCIlP05GMDckJCIlWnFGMCQiJSlRJEYwNyQkIiUtc0YwJCIlIj4kRjA3JCQiJTF0RjAkIiVoSEYwNyQkIiU0dUYwJCIlakZGMDckJCIld3lGMCQiJWtFRjA3JCQiJU4iKUYwJCIlKmYjRjA3JCQiJWsjKUYwJCIlK0RGMDckJCIlJVIpRjAkIiVvQkYwNyQkIiVzJSlGMCQiJXM/RjA3JCQiJShcKUYwRjQ3JEZnciQiJTg6RjA3JEZnciQiJSRHIkYwNyRGZ3IkIiU/NUYwNyQkIiVddEYwRmBzNyRGY3MkIiQ1JkYwNyQkIiVTb0YwRiw3JCQiJV1pRjBGLDckJCIlU2RGMEZmczckRl90RmBzNyQkIiU1TUYwRmBzNyRGY3RGZnM3JCQiJStIRjBGLDckJCIlNUJGMEYsNyQkIiUrPUYwRmZzNyRGXXVGYHM3JCQiIz9GMEZgcy1JJlNUWUxFR0YlNiNJJUxJTkVHRigtSSpBWEVTU1RZTEVHRiU2I0kmRlJBTUVHRiUtSStBWEVTTEFCRUxTR0YlNiVJInhHRihJInpHRigtSSVGT05UR0YoNiVJJlRJTUVTR0YoSSVCT0xER0YoIiM3LUkoU0NBTElOR0dGKDYjSSxDT05TVFJBSU5FREdGJS1JJVZJRVdHRiU2JDskISIjISIiJCIiIkYtO0YsJCIiJkZgdy1JJ0NPTE9VUkdGJTYmSSRSR0JHRihGLUYtRi0= To turn the car into a 3 dimensional object, we insert a y coordinate in between the x and z coordinates. We make the car .35 units wide, with the right side in the x-z plane. listcarright := map(u-> <u[1], 0, u[2]>,listcar): listcarleft := map(u-> <u[1], 0.35, u[2]>,listcar): Let's plot the two sides together, making the right side red and the left side blue. To plot the two sides with specified colors we use the display command. Note that the individual parts of the graph end with colons. The first plot shows two points in R3 connected by a line segment (rotate the figure). pointplot3d([<1,2,3>,<2,3,4>], connect=true,axes=boxed,color=red); NiYtJSpBWEVTU1RZTEVHNiMlJEJPWEctJSdDVVJWRVNHNiM3JDclJCIiIiIiISQiIiNGLiQiIiRGLjclRi9GMSQiIiVGLi0lJkNPTE9SRzYmJSRSR0JHJCIjNSEiIiRGLkY8Rj0tJSxPUklFTlRBVElPTkc2JCQiJFsiRi4kIiNXRi4= rightside:= pointplot3d(listcarright, connect=true, color=red): leftside:= pointplot3d(listcarleft, color=blue, connect=true): display({rightside,leftside},axes=normal, scaling=constrained); NiYtSSdDVVJWRVNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2JDdLNyUkIiIhRi1GLCQiJGEqISIlNyUkIiQtIkYwRiwkIiU3O0YwNyUkIiVEOUYwRiwkIiVQQUYwNyUkIiVDQEYwRiwkIiVPQkYwNyUkIiU4REYwRiwkIiUsQ0YwNyUkIiUtSEYwRixGQzclJCIlKD0kRjBGLCQiJWVKRjA3JSQiJXNNRjBGLCQiJWBORjA3JSQiJTdSRjBGLCQiJSVvJEYwNyUkIiU2WUYwRiwkIiVdUEYwNyUkIiUvXkYwRiwkIiUkeSRGMDclJCIldWNGMEYsRmluNyUkIiV0akYwRixGaW43JSQiJTVuRjBGLEZVNyUkIiUiKm9GMEYsJCIlP05GMDclJCIlWnFGMEYsJCIlKVEkRjA3JSQiJS1zRjBGLCQiJSI+JEYwNyUkIiUxdEYwRiwkIiVoSEYwNyUkIiU0dUYwRiwkIiVqRkYwNyUkIiV3eUYwRiwkIiVrRUYwNyUkIiVOIilGMEYsJCIlKmYjRjA3JSQiJWsjKUYwRiwkIiUrREYwNyUkIiUlUilGMEYsJCIlb0JGMDclJCIlcyUpRjBGLCQiJXM/RjA3JSQiJShcKUYwRixGNDclRmdyRiwkIiU4OkYwNyVGZ3JGLCQiJSRHIkYwNyVGZ3JGLCQiJT81RjA3JSQiJV10RjBGLEZgczclRmNzRiwkIiQ1JkYwNyUkIiVTb0YwRixGLDclJCIlXWlGMEYsRiw3JSQiJVNkRjBGLEZmczclRl90RixGYHM3JSQiJTVNRjBGLEZgczclRmN0RixGZnM3JSQiJStIRjBGLEYsNyUkIiU1QkYwRixGLDclJCIlKz1GMEYsRmZzNyVGXXVGLEZgczclJCIjP0YwRixGYHMtSSdDT0xPVVJHRiU2JkkkUkdCR0YlJCIqKysrKyIhIilGLEYsLUYkNiQ3SzclRiwkIiNOISIjRi43JUYyRl52RjQ3JUY3Rl52Rjk3JUY8Rl52Rj43JUZBRl52RkM3JUZGRl52RkM3JUZJRl52Rks3JUZORl52RlA3JUZTRl52RlU3JUZYRl52Rlo3JUZnbkZedkZpbjclRlxvRl52RmluNyVGX29GXnZGaW43JUZib0ZedkZVNyVGZW9GXnZGZ283JUZqb0ZedkZccDclRl9wRl52RmFwNyVGZHBGXnZGZnA3JUZpcEZedkZbcTclRl5xRl52RmBxNyVGY3FGXnZGZXE3JUZocUZedkZqcTclRl1yRl52Rl9yNyVGYnJGXnZGZHI3JUZnckZedkY0NyVGZ3JGXnZGanI3JUZnckZedkZdczclRmdyRl52RmBzNyVGY3NGXnZGYHM3JUZjc0ZedkZmczclRmlzRl52Riw3JUZcdEZedkYsNyVGX3RGXnZGZnM3JUZfdEZedkZgczclRmN0Rl52RmBzNyVGY3RGXnZGZnM3JUZndEZedkYsNyVGanRGXnZGLDclRl11Rl52RmZzNyVGXXVGXnZGYHM3JUZhdUZedkZgcy1GZHU2JkZmdUYsRixGZ3UtSSpBWEVTU1RZTEVHRiU2I0knTk9STUFMR0YlLUkoU0NBTElOR0dGKDYjSSxDT05TVFJBSU5FREdGJQ== To make it look like a single object we draw lines connecting the two sides of the car. We do that in green. listcarcross := [seq(op([listcarright[k],listcarleft[k]]),k=1..41)]: crossing:= pointplot3d(listcarcross, color=green, connect=true): display({leftside,rightside,crossing},axes=normal, scaling=constrained); NigtJSpBWEVTU1RZTEVHNiMlJkZSQU1FRy0lJ0NVUlZFU0c2JDdLNyUkIiIhRi1GLCQiJGEqISIlNyUkIiQtIkYwRiwkIiU3O0YwNyUkIiVEOUYwRiwkIiVQQUYwNyUkIiVDQEYwRiwkIiVPQkYwNyUkIiU4REYwRiwkIiUsQ0YwNyUkIiUtSEYwRixGQzclJCIlKD0kRjBGLCQiJWVKRjA3JSQiJXNNRjBGLCQiJWBORjA3JSQiJTdSRjBGLCQiJSVvJEYwNyUkIiU2WUYwRiwkIiVdUEYwNyUkIiUvXkYwRiwkIiUkeSRGMDclJCIldWNGMEYsRmluNyUkIiV0akYwRixGaW43JSQiJTVuRjBGLEZVNyUkIiUiKm9GMEYsJCIlP05GMDclJCIlWnFGMEYsJCIlKVEkRjA3JSQiJS1zRjBGLCQiJSI+JEYwNyUkIiUxdEYwRiwkIiVoSEYwNyUkIiU0dUYwRiwkIiVqRkYwNyUkIiV3eUYwRiwkIiVrRUYwNyUkIiVOIilGMEYsJCIlKmYjRjA3JSQiJWsjKUYwRiwkIiUrREYwNyUkIiUlUilGMEYsJCIlb0JGMDclJCIlcyUpRjBGLCQiJXM/RjA3JSQiJShcKUYwRixGNDclRmdyRiwkIiU4OkYwNyVGZ3JGLCQiJSRHIkYwNyVGZ3JGLCQiJT81RjA3JSQiJV10RjBGLEZgczclRmNzRiwkIiQ1JkYwNyUkIiVTb0YwRixGLDclJCIlXWlGMEYsRiw3JSQiJVNkRjBGLEZmczclRl90RixGYHM3JSQiJTVNRjBGLEZgczclRmN0RixGZnM3JSQiJStIRjBGLEYsNyUkIiU1QkYwRixGLDclJCIlKz1GMEYsRmZzNyVGXXVGLEZgczclJCIjP0YwRixGYHMtJSZDT0xPUkc2JiUkUkdCRyQiIzUhIiIkRi1GaXVGanUtRig2JDdLNyVGLCQiI04hIiNGLjclRjJGX3ZGNDclRjdGX3ZGOTclRjxGX3ZGPjclRkFGX3ZGQzclRkZGX3ZGQzclRklGX3ZGSzclRk5GX3ZGUDclRlNGX3ZGVTclRlhGX3ZGWjclRmduRl92RmluNyVGXG9GX3ZGaW43JUZfb0ZfdkZpbjclRmJvRl92RlU3JUZlb0ZfdkZnbzclRmpvRl92RlxwNyVGX3BGX3ZGYXA3JUZkcEZfdkZmcDclRmlwRl92RltxNyVGXnFGX3ZGYHE3JUZjcUZfdkZlcTclRmhxRl92RmpxNyVGXXJGX3ZGX3I3JUZickZfdkZkcjclRmdyRl92RjQ3JUZnckZfdkZqcjclRmdyRl92Rl1zNyVGZ3JGX3ZGYHM3JUZjc0ZfdkZgczclRmNzRl92RmZzNyVGaXNGX3ZGLDclRlx0Rl92Riw3JUZfdEZfdkZmczclRl90Rl92RmBzNyVGY3RGX3ZGYHM3JUZjdEZfdkZmczclRmd0Rl92Riw3JUZqdEZfdkYsNyVGXXVGX3ZGZnM3JUZddUZfdkZgczclRmF1Rl92RmBzLUZkdTYmRmZ1Rmp1Rmp1Rmd1LUYoNiQ3XnBGK0ZedkYxRmJ2RjZGY3ZGO0ZkdkZARmV2RkVGZnZGSEZndkZNRmh2RlJGaXZGV0ZqdkZmbkZbd0Zbb0Zcd0Zeb0Zdd0Zhb0Zed0Zkb0Zfd0Zpb0Zgd0ZecEZhd0ZjcEZid0ZocEZjd0ZdcUZkd0ZicUZld0ZncUZmd0ZcckZnd0ZhckZod0ZmckZpd0ZpckZqd0Zcc0ZbeEZfc0ZceEZic0ZdeEZlc0ZeeEZoc0ZfeEZbdEZgeEZedEZheEZhdEZieEZidEZjeEZldEZkeEZmdEZleEZpdEZmeEZcdUZneEZfdUZoeEZgdUZpeC1GZHU2JkZmdUZqdUZndUZqdS0lKFNDQUxJTkdHNiMlLENPTlNUUkFJTkVERy0lLE9SSUVOVEFUSU9ORzYkJCIjdkYtJCIjZ0Yt Finally, we replace the axes with a garage. We will have transformations act on the car, while leaving the garage fixed so that it can act as a reference frame. garage:=[<0,0,0>, <1,0,0>, <1,.35,0>, <1,0,0>, <1,0,.5>, <1,.35,.5>, <1,0,.5>, <0,0,.5>, <0,.35,.5>, <0,0,.5>, <0,0,0>, <0,.35,0>, <1,.35,0>, <1,.35,.5>, <0,.35,.5>, <0,.35,0>]: garagel:= pointplot3d(garage, color=black, connect=true): display({leftside,rightside,crossing,garagel}, axes=none, scaling=constrained); NigtSSdDVVJWRVNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2JDdLNyUkIiIhRi1GLCQiJGEqISIlNyUkIiQtIkYwRiwkIiU3O0YwNyUkIiVEOUYwRiwkIiVQQUYwNyUkIiVDQEYwRiwkIiVPQkYwNyUkIiU4REYwRiwkIiUsQ0YwNyUkIiUtSEYwRixGQzclJCIlKD0kRjBGLCQiJWVKRjA3JSQiJXNNRjBGLCQiJWBORjA3JSQiJTdSRjBGLCQiJSVvJEYwNyUkIiU2WUYwRiwkIiVdUEYwNyUkIiUvXkYwRiwkIiUkeSRGMDclJCIldWNGMEYsRmluNyUkIiV0akYwRixGaW43JSQiJTVuRjBGLEZVNyUkIiUiKm9GMEYsJCIlP05GMDclJCIlWnFGMEYsJCIlKVEkRjA3JSQiJS1zRjBGLCQiJSI+JEYwNyUkIiUxdEYwRiwkIiVoSEYwNyUkIiU0dUYwRiwkIiVqRkYwNyUkIiV3eUYwRiwkIiVrRUYwNyUkIiVOIilGMEYsJCIlKmYjRjA3JSQiJWsjKUYwRiwkIiUrREYwNyUkIiUlUilGMEYsJCIlb0JGMDclJCIlcyUpRjBGLCQiJXM/RjA3JSQiJShcKUYwRixGNDclRmdyRiwkIiU4OkYwNyVGZ3JGLCQiJSRHIkYwNyVGZ3JGLCQiJT81RjA3JSQiJV10RjBGLEZgczclRmNzRiwkIiQ1JkYwNyUkIiVTb0YwRixGLDclJCIlXWlGMEYsRiw3JSQiJVNkRjBGLEZmczclRl90RixGYHM3JSQiJTVNRjBGLEZgczclRmN0RixGZnM3JSQiJStIRjBGLEYsNyUkIiU1QkYwRixGLDclJCIlKz1GMEYsRmZzNyVGXXVGLEZgczclJCIjP0YwRixGYHMtSSdDT0xPVVJHRiU2JkkkUkdCR0YlJCIqKysrKyIhIilGLEYsLUYkNiQ3SzclRiwkIiNOISIjRi43JUYyRl52RjQ3JUY3Rl52Rjk3JUY8Rl52Rj43JUZBRl52RkM3JUZGRl52RkM3JUZJRl52Rks3JUZORl52RlA3JUZTRl52RlU3JUZYRl52Rlo3JUZnbkZedkZpbjclRlxvRl52RmluNyVGX29GXnZGaW43JUZib0ZedkZVNyVGZW9GXnZGZ283JUZqb0ZedkZccDclRl9wRl52RmFwNyVGZHBGXnZGZnA3JUZpcEZedkZbcTclRl5xRl52RmBxNyVGY3FGXnZGZXE3JUZocUZedkZqcTclRl1yRl52Rl9yNyVGYnJGXnZGZHI3JUZnckZedkY0NyVGZ3JGXnZGanI3JUZnckZedkZdczclRmdyRl52RmBzNyVGY3NGXnZGYHM3JUZjc0ZedkZmczclRmlzRl52Riw3JUZcdEZedkYsNyVGX3RGXnZGZnM3JUZfdEZedkZgczclRmN0Rl52RmBzNyVGY3RGXnZGZnM3JUZndEZedkYsNyVGanRGXnZGLDclRl11Rl52RmZzNyVGXXVGXnZGYHM3JUZhdUZedkZgcy1GZHU2JkZmdUYsRixGZ3UtRiQ2JDdecEYrRl12RjFGYXZGNkZidkY7RmN2RkBGZHZGRUZldkZIRmZ2Rk1GZ3ZGUkZodkZXRml2RmZuRmp2RltvRlt3Rl5vRlx3RmFvRl13RmRvRl53RmlvRl93Rl5wRmB3RmNwRmF3RmhwRmJ3Rl1xRmN3RmJxRmR3RmdxRmV3RlxyRmZ3RmFyRmd3RmZyRmh3RmlyRml3RlxzRmp3Rl9zRlt4RmJzRlx4RmVzRl14RmhzRl54Rlt0Rl94Rl50RmB4RmF0RmF4RmJ0RmJ4RmV0RmN4RmZ0RmR4Rml0RmV4Rlx1RmZ4Rl91Rmd4RmB1Rmh4LUZkdTYmRmZ1RixGZ3VGLC1GJDYkNzI3JUYsRixGLDclJCIiIkYtRixGLDclRmV5Rl52RixGZHk3JUZleUYsJCIiJiEiIjclRmV5Rl52Rml5Rmh5NyVGLEYsRml5NyVGLEZedkZpeUZdekZjeTclRixGXnZGLEZneUZcekZeekZfei1GZHU2JkZmdUYtRi1GLS1JKkFYRVNTVFlMRUdGJTYjSSVOT05FR0YlLUkoU0NBTElOR0dGKDYjSSxDT05TVFJBSU5FREdGJQ== To reduce typing we define a function that turns a list of points into an outline of the desired color poly3d := (pointlist, shade) -> pointplot3d(pointlist, style=line, color=shade, connect=true): This allows us plot the 4 lists together as follows. display( {poly3d(listcarright,red), poly3d(listcarleft, blue), poly3d(listcarcross, green), poly3d(garage, black)}, axes=none, scaling=constrained); NigtSSdDVVJWRVNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2JTcyNyUkIiIhRi1GLEYsNyUkIiIiRi1GLEYsNyVGLyQiI04hIiNGLEYuNyVGL0YsJCIiJiEiIjclRi9GMkY2RjU3JUYsRixGNjclRixGMkY2RjpGKzclRixGMkYsRjFGOUY7RjwtSSdDT0xPVVJHRiU2JkkkUkdCR0YlRi1GLUYtLUkmU1RZTEVHRiU2I0klTElORUdGKC1GJDYlN15wNyVGLEYsJCIkYSohIiU3JUYsRjJGSTclJCIkLSJGS0YsJCIlNztGSzclRk5GMkZQNyUkIiVEOUZLRiwkIiVQQUZLNyVGVEYyRlY3JSQiJUNARktGLCQiJU9CRks3JUZaRjJGZm43JSQiJThERktGLCQiJSxDRks3JUZqbkYyRlxvNyUkIiUtSEZLRixGXG83JUZgb0YyRlxvNyUkIiUoPSRGS0YsJCIlZUpGSzclRmRvRjJGZm83JSQiJXNNRktGLCQiJWBORks3JUZqb0YyRlxwNyUkIiU3UkZLRiwkIiUlbyRGSzclRmBwRjJGYnA3JSQiJTZZRktGLCQiJV1QRks3JUZmcEYyRmhwNyUkIiUvXkZLRiwkIiUkeSRGSzclRlxxRjJGXnE3JSQiJXVjRktGLEZecTclRmJxRjJGXnE3JSQiJXRqRktGLEZecTclRmZxRjJGXnE3JSQiJTVuRktGLEZicDclRmpxRjJGYnA3JSQiJSIqb0ZLRiwkIiU/TkZLNyVGXnJGMkZgcjclJCIlWnFGS0YsJCIlKVEkRks3JUZkckYyRmZyNyUkIiUtc0ZLRiwkIiUiPiRGSzclRmpyRjJGXHM3JSQiJTF0RktGLCQiJWhIRks3JUZgc0YyRmJzNyUkIiU0dUZLRiwkIiVqRkZLNyVGZnNGMkZoczclJCIld3lGS0YsJCIla0VGSzclRlx0RjJGXnQ3JSQiJU4iKUZLRiwkIiUqZiNGSzclRmJ0RjJGZHQ3JSQiJWsjKUZLRiwkIiUrREZLNyVGaHRGMkZqdDclJCIlJVIpRktGLCQiJW9CRks3JUZedUYyRmB1NyUkIiVzJSlGS0YsJCIlcz9GSzclRmR1RjJGZnU3JSQiJShcKUZLRixGUDclRmp1RjJGUDclRmp1RiwkIiU4OkZLNyVGanVGMkZedjclRmp1RiwkIiUkRyJGSzclRmp1RjJGYnY3JUZqdUYsJCIlPzVGSzclRmp1RjJGZnY3JSQiJV10RktGLEZmdjclRmp2RjJGZnY3JUZqdkYsJCIkNSZGSzclRmp2RjJGXnc3JSQiJVNvRktGLEYsNyVGYndGMkYsNyUkIiVdaUZLRixGLDclRmZ3RjJGLDclJCIlU2RGS0YsRl53NyVGandGMkZedzclRmp3RixGZnY3JUZqd0YyRmZ2NyUkIiU1TUZLRixGZnY3JUZgeEYyRmZ2NyVGYHhGLEZedzclRmB4RjJGXnc3JSQiJStIRktGLEYsNyVGZnhGMkYsNyUkIiU1QkZLRixGLDclRmp4RjJGLDclJCIlKz1GS0YsRl53NyVGXnlGMkZedzclRl55RixGZnY3JUZeeUYyRmZ2NyUkIiM/RktGLEZmdjclRmR5RjJGZnYtRj42JkZARiwkIiorKysrIiEiKUYsRkEtRiQ2JTdLRkhGTUZTRllGaW5GX29GY29GaW9GX3BGZXBGW3FGYXFGZXFGaXFGXXJGY3JGaXJGX3NGZXNGW3RGYXRGZ3RGXXVGY3VGaXVGXXZGYXZGZXZGaXZGXXdGYXdGZXdGaXdGXXhGX3hGY3hGZXhGaXhGXXlGYXlGY3ktRj42JkZARml5RixGLEZBLUYkNiU3S0ZMRlJGWEZobkZeb0Zib0Zob0ZecEZkcEZqcEZgcUZkcUZocUZcckZickZockZec0Zkc0Zqc0ZgdEZmdEZcdUZidUZodUZcdkZgdkZkdkZodkZcd0Zgd0Zkd0Zod0ZceEZeeEZieEZkeEZoeEZceUZgeUZieUZmeS1GPjYmRkBGLEYsRml5RkEtSSpBWEVTU1RZTEVHRiU2I0klTk9ORUdGJS1JKFNDQUxJTkdHRig2I0ksQ09OU1RSQUlORURHRiU= We use the 4 lists in this example for the remainder of the worksheet.
<Text-field style="Heading 2" layout="Heading 2">Exercise</Text-field> 1) To check that you understand the syntax of the command, plot just the crossings of the car in orange together with the garage in green.
<Text-field style="Heading 1" layout="Heading 1">Visualizing Linear Transformations in R<Font superscript="true">3</Font></Text-field> In a previous worksheet we looked at 2 by 2 matrices acting on R2. We are ready to extend this study to R3. We borrow a procedure from that previous worksheet that allows us to multiply a matrix by a list of vectors. multmatbylist := proc(multmat, listofvecs) map(x->multmat.x,listofvecs); end: We start with a matrix that rotates objects by 90 degrees in the y-z plane (that is, around the x-axis). Such a transformation should send e1 to e1, e2 to e3, and e3 to -e2. We designate the matrix rot1. rot1:= <<1,0,0> |<0,0,1> | <0,-1,0>>; testvec := <xcoord, ycoord, zcoord>; rot1.testvec; NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVyb3QxRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYlLUkkbXRkR0YlNiMtSSNtbkdGJTY5RmdwRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8tRltzNiMtRl5zNjlRIjBGKEYwRjNGNkZgc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GYXNGXG9GY3MtRmhyNiVGY3NGY3MtRltzNiMtRl5zNjlRKSZtaW51czsxRihGMEYzRjZGYHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmFzRlxvLUZocjYlRmNzRmpyRmNzLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSVyb3QxR0YoLUknUlRBQkxFR0YoNiUiKC8icFwtSSdNQVRSSVhHRig2IzclNyUiIiIiIiFGanU3JUZqdUZqdSEiIjclRmp1Rml1Rmp1SSdNYXRyaXhHNiQlKnByb3RlY3RlZEdGKjcjLUZedjYjL0kkJWlkR0YoRmN1 NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USh0ZXN0dmVjRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYjLUkkbXRkR0YlNiMtRi02OVEneGNvb3JkRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tRmhyNiMtRltzNiMtRi02OVEneWNvb3JkRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tRmhyNiMtRltzNiMtRi02OVEnemNvb3JkRihGMEYzRjZGOUY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GaW5GXG8tRl9vNjNRIl1GKC9GY29RKHBvc3RmaXhGKEZdckZnb0Zeci9GXXBRMnZlcnl0aGlubWF0aHNwYWNlRihGYXJGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JKHRlc3R2ZWNHRigtSSdSVEFCTEVHRig2JSIoc1tMJy1JJ01BVFJJWEdGKDYjNyU3I0kneGNvb3JkR0YoNyNJJ3ljb29yZEdGKDcjSSd6Y29vcmRHRigmSSdWZWN0b3JHNiQlKnByb3RlY3RlZEdGKjYjSSdjb2x1bW5HRig3Iy1GW3Y2Iy9JJCVpZEdGKEZgdQ== NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiMtSSRtdGRHRiU2Iy1JI21pR0YlNjlRJ3hjb29yZEYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR0ZTLyUlYm9sZEdGOC8lJ2l0YWxpY0dGNS8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdGVi8lK2JhY2tncm91bmRHRlkvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjUvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdGUC8lKm1hdGhjb2xvckdGVi8lL21hdGhiYWNrZ3JvdW5kR0ZZLyUrZm9udGZhbWlseUdGZW8vJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YoLyUpbWF0aHNpemVHRlMtRmpuNiMtRl1vNiMtRiQ2JC1GLTYzUSomdW1pbnVzMDtGKEYwL0Y0RjhGNi9GOlEkMGVtRigvRj1GXHMvRj9GOEZARkJGRUZIRkpGTEZORlFGVEZXLUZgbzY5USd6Y29vcmRGKEZjb0Zmb0Zob0Zqb0ZccEZecEZgcEZicEZkcEZmcEZocEZqcEZccUZecUZgcUZicUZkcUZmcUZocUZqcUZcckZfci1Gam42Iy1GXW82Iy1GYG82OVEneWNvb3JkRihGY29GZm9GaG9Gam9GXHBGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGanFGXHJGX3ItRi02M1EiXUYoL0YxUShwb3N0Zml4RihGM0Y2RjkvRj1RMnZlcnl0aGlubWF0aHNwYWNlRihGPkZARkJGRUZIRkpGTEZORlFGVEZXNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyMtSSdSVEFCTEVHRig2JSIob0VpJy1JJ01BVFJJWEdGKDYjNyU3I0kneGNvb3JkR0YoNyMsJEknemNvb3JkR0YoISIiNyNJJ3ljb29yZEdGKCZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKDcjLUZmdTYjL0kkJWlkR0YoRml0 Now we want to multiply the three carlists by rot1 and graph the result. Note that we leave the garage alone. rlist:=multmatbylist(rot1,listcarright): llist:=multmatbylist(rot1,listcarleft): clist:=multmatbylist(rot1,listcarcross): display( {poly3d(rlist,red), poly3d(llist, blue), poly3d(clist, green), poly3d(garage, black)}, axes=none, scaling=constrained); NigtJSpBWEVTU1RZTEVHNiMlJ05PUk1BTEctJSdDVVJWRVNHNiU3SzclJCIiIUYtJCErKysrUyYqISM2JCIrKysrK04hIzU3JSQiKysrKz81RjAkISsrKys3O0YzRjE3JSQiKysrK0Q5RjMkISsrKytQQUYzRjE3JSQiKysrK0NARjMkISsrKytPQkYzRjE3JSQiKysrKzhERjMkISsrKyssQ0YzRjE3JSQiKysrKy1IRjNGRkYxNyUkIisrKysoPSRGMyQhKysrK2VKRjNGMTclJCIrKysrc01GMyQhKysrK2BORjNGMTclJCIrKysrN1JGMyQhKysrKyVvJEYzRjE3JSQiKysrKzZZRjMkISsrKytdUEYzRjE3JSQiKysrKy9eRjMkISsrKyskeSRGM0YxNyUkIisrKyt1Y0YzRlxvRjE3JSQiKysrK3RqRjNGXG9GMTclJCIrKysrNW5GM0ZYRjE3JSQiKysrKyIqb0YzJCErKysrP05GM0YxNyUkIisrKytacUYzJCErKysrKVEkRjNGMTclJCIrKysrLXNGMyQhKysrKyI+JEYzRjE3JSQiKysrKzF0RjMkISsrKytoSEYzRjE3JSQiKysrKzR1RjMkISsrKytqRkYzRjE3JSQiKysrK3d5RjMkISsrKytrRUYzRjE3JSQiKysrK04iKUYzJCErKysrKmYjRjNGMTclJCIrKysrayMpRjMkISsrKysrREYzRjE3JSQiKysrKyVSKUYzJCErKysrb0JGM0YxNyUkIisrKytzJSlGMyQhKysrK3M/RjNGMTclJCIrKysrKFwpRjNGN0YxNyVGanIkISsrKys4OkYzRjE3JUZqciQhKysrKyRHIkYzRjE3JUZqciQhKysrKz81RjNGMTclJCIrKysrXXRGM0Zjc0YxNyVGZnMkISsrKysrXkYwRjE3JSQiKysrK1NvRjNGLEYxNyUkIisrKytdaUYzRixGMTclJCIrKysrU2RGM0Zpc0YxNyVGYnRGY3NGMTclJCIrKysrNU1GM0Zjc0YxNyVGZnRGaXNGMTclJCIrKysrK0hGM0YsRjE3JSQiKysrKzVCRjNGLEYxNyUkIisrKysrPUYzRmlzRjE3JUZgdUZjc0YxNyUkIisrKysrPyEjN0Zjc0YxLSUmQ09MT1JHNiYlJFJHQkckRi0hIiJGW3YkIiM1Rlx2LSUmU1RZTEVHNiMlJUxJTkVHLUYoNiU3MjclRixGLEYsNyUkIiIiRi1GLEYsNyVGaHYkIiNOISIjRixGZ3Y3JUZodkYsJCIiJkZcdjclRmh2Rlt3Rl93Rl53NyVGLEYsRl93NyVGLEZbd0Zfd0Zid0ZmdjclRixGW3dGLEZqdkZhd0Zjd0Zkdy1GaHU2JkZqdUZbdkZbdkZbdkZfdi1GKDYlN0s3JUYsRi5GLDclRjVGN0YsNyVGOkY8Riw3JUY/RkFGLDclRkRGRkYsNyVGSUZGRiw3JUZMRk5GLDclRlFGU0YsNyVGVkZYRiw3JUZlbkZnbkYsNyVGam5GXG9GLDclRl9vRlxvRiw3JUZib0Zcb0YsNyVGZW9GWEYsNyVGaG9Gam9GLDclRl1wRl9wRiw3JUZicEZkcEYsNyVGZ3BGaXBGLDclRlxxRl5xRiw3JUZhcUZjcUYsNyVGZnFGaHFGLDclRltyRl1yRiw3JUZgckZickYsNyVGZXJGZ3JGLDclRmpyRjdGLDclRmpyRl1zRiw3JUZqckZgc0YsNyVGanJGY3NGLDclRmZzRmNzRiw3JUZmc0Zpc0YsNyVGXHRGLEYsNyVGX3RGLEYsNyVGYnRGaXNGLDclRmJ0RmNzRiw3JUZmdEZjc0YsNyVGZnRGaXNGLDclRmp0RixGLDclRl11RixGLDclRmB1RmlzRiw3JUZgdUZjc0YsNyVGZHVGY3NGLC1GaHU2JkZqdUZddkZbdkZbdkZfdi1GKDYlN15wRmp3RitGW3hGNEZceEY5Rl14Rj5GXnhGQ0ZfeEZIRmB4RktGYXhGUEZieEZVRmN4RlpGZHhGaW5GZXhGXm9GZnhGYW9GZ3hGZG9GaHhGZ29GaXhGXHBGanhGYXBGW3lGZnBGXHlGW3FGXXlGYHFGXnlGZXFGX3lGanFGYHlGX3JGYXlGZHJGYnlGaXJGY3lGXHNGZHlGX3NGZXlGYnNGZnlGZXNGZ3lGaHNGaHlGW3RGaXlGXnRGanlGYXRGW3pGZHRGXHpGZXRGXXpGaHRGXnpGaXRGX3pGXHVGYHpGX3VGYXpGYnVGYnpGY3UtRmh1NiZGanVGW3ZGXXZGW3ZGX3YtJShTQ0FMSU5HRzYjJSxDT05TVFJBSU5FREc= We see that the transformation turns the car on its side. As a second example, shear the car in the z direction by the value of .3*x. (This jacks up the back end of the car.) shear1:= <<1, 2, 3> | <2, 4, 6> |<3, 6, 9>>; rlist2:=multmatbylist(shear1,listcarright): llist2:=multmatbylist(shear1,listcarleft): clist2:=multmatbylist(shear1,listcarcross): display( {poly3d(rlist2,red), poly3d(llist2, blue), poly3d(clist2, green), poly3d(garage, black)}, axes=none, scaling=constrained); NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USdzaGVhcjFGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGOC8lKnN1YnNjcmlwdEdGOC8lLHN1cGVyc2NyaXB0R0Y4LyUrZm9yZWdyb3VuZEdRKlswLDAsMjU1XUYoLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GKC8lJ29wYXF1ZUdGOC8lK2V4ZWN1dGFibGVHRjgvJSlyZWFkb25seUdGOy8lKWNvbXBvc2VkR0Y4LyUqY29udmVydGVkR0Y4LyUraW1zZWxlY3RlZEdGOC8lLHBsYWNlaG9sZGVyR0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSptYXRoY29sb3JHRkQvJS9tYXRoYmFja2dyb3VuZEdGRy8lK2ZvbnRmYW1pbHlHRjIvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YoLyUpbWF0aHNpemVHRjUtSSNtb0dGJTYzUSM6PUYoLyUlZm9ybUdRJmluZml4RigvJSZmZW5jZUdGOC8lKnNlcGFyYXRvckdGOC8lJ2xzcGFjZUdRL3RoaWNrbWF0aHNwYWNlRigvJSdyc3BhY2VHRltwLyUpc3RyZXRjaHlHRjgvJSpzeW1tZXRyaWNHRjgvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHUSIxRigvJShsYXJnZW9wR0Y4LyUubW92YWJsZWxpbWl0c0dGOC8lJ2FjY2VudEdGOC8lMGZvbnRfc3R5bGVfbmFtZUdGWC8lJXNpemVHRjUvJStmb3JlZ3JvdW5kR0ZELyUrYmFja2dyb3VuZEdGRy1GJDYlLUZfbzYzUSJbRigvRmNvUSdwcmVmaXhGKC9GZm9GO0Znby9Gam9RLnRoaW5tYXRoc3BhY2VGKC9GXXBGX3IvRl9wRjtGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiUtSSRtdGRHRiU2Iy1JI21uR0YlNjlGZ3BGMEYzRjYvRjpGOEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ24vRmpuUSdub3JtYWxGKEZcby1GW3M2Iy1GXnM2OVEiMkYoRjBGM0Y2RmBzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZhc0Zcby1GW3M2Iy1GXnM2OVEiM0YoRjBGM0Y2RmBzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZhc0Zcby1GaHI2JUZjcy1GW3M2Iy1GXnM2OVEiNEYoRjBGM0Y2RmBzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZhc0Zcby1GW3M2Iy1GXnM2OVEiNkYoRjBGM0Y2RmBzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZhc0Zcby1GaHI2JUZoc0ZkdC1GW3M2Iy1GXnM2OVEiOUYoRjBGM0Y2RmBzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZhc0Zcby1GX282M1EiXUYoL0Zjb1EocG9zdGZpeEYoRl1yRmdvRl5yL0ZdcFEydmVyeXRoaW5tYXRoc3BhY2VGKEZhckZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkknc2hlYXIxR0YoLUknUlRBQkxFR0YoNiUiKTMnZnQiLUknTUFUUklYR0YoNiM3JTclIiIiIiIjIiIkNyVGaXYiIiUiIic3JUZqdkZddyIiKkknTWF0cml4RzYkJSpwcm90ZWN0ZWRHRio3Iy1GYHc2Iy9JJCVpZEdGKEZidg== NigtSSdDVVJWRVNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2JTdecDclJCIrKysraUchIzUkIisrKytDZEYuJCIrKysrJ2UpRi43JSQiKysrK2kpKkYuJCIrKytTcz4hIiokIisrK2dlSEY4NyUkIisrKytRXEYuJCIrKysrdykqRi4kIisrK1MiWyJGODclJCIrKyshUT4iRjgkIisrK2coUSNGOCQiKysrUyJlJEY4NyUkIisrKytPIilGLiQiKysrP0Y7RjgkIisrKyEzVyNGODclJCIrKytnODpGOCQiKysrP0ZJRjgkIisrKyEzYSVGODclJCIrKysrSyIqRi4kIisrK1NFPUY4JCIrKytnUkZGODclJCIrKys/ODtGOCQiKysrU0VLRjgkIisrK2dSW0Y4NyUkIisrKys7KCpGLiQiKysrP1Y+RjgkIisrKyFbIkhGODclJCIrKytncjtGOCQiKysrP1ZMRjgkIisrKyFbLCZGODclJCIrKytdNTVGOCQiKysrK0A/RjgkIisrK11KSUY4NyUkIisrK101PEY4JCIrKysrQE1GOCQiKysrXUpeRjg3JSQiKysrNW03RjgkIisrKz9LREY4JCIrKytJKXokRjg3JSQiKysrNW0+RjgkIisrKz9LUkY4JCIrKytJKSplRjg3JSQiKysrNTg5RjgkIisrKz9FR0Y4JCIrKytJUlVGODclJCIrKys1OEBGOCQiKysrP0VVRjgkIisrK0lSakY4NyUkIisrK1MnXCJGOCQiKysrIUcqSEY4JCIrKys/KlslRjg3JSQiKysrUyc+I0Y4JCIrKyshR1IlRjgkIisrKz8qZSdGODclJCIrKys1J2UiRjgkIisrKz9zSkY4JCIrKytJZVpGODclJCIrKys1J0cjRjgkIisrKz9zWEY4JCIrKytJZW9GODclJCIrKytJWDtGOCQiKysrZyFIJEY4JCIrKyshZiRcRjg3JSQiKysrSVhCRjgkIisrK2chcCVGOCQiKysrIWYuKEY4NyUkIisrK0ktPEY4JCIrKytnL01GOCQiKysrIXA1JkY4NyUkIisrK0ktQ0Y4JCIrKytnL1tGOCQiKysrIXA/KEY4NyUkIisrKz9zPEY4JCIrKytTV05GOCQiKysrZztgRjg3JSQiKysrP3NDRjgkIisrK1NXXEY4JCIrKytnO3VGODclJCIrKys/dzxGOCQiKysrU19ORjgkIisrK2dHYEY4NyUkIisrKz93Q0Y4JCIrKytTX1xGOCQiKysrZ0d1Rjg3JSQiKysrNVg8RjgkIisrKz8hXCRGOCQiKysrSU5fRjg3JSQiKysrNVhDRjgkIisrKz8hKltGOCQiKysrSU50Rjg3JSQiKysrNUA8RjgkIisrKz9VTUY4JCIrKytJal5GODclJCIrKys1QENGOCQiKysrP1VbRjgkIisrK0lqc0Y4NyUkIisrK114O0Y4JCIrKysrYkxGOCQiKysrXUtdRjg3JSQiKysrXXhCRjgkIisrKytiWkY4JCIrKytdS3JGODclJCIrKyshKj07RjgkIisrKyF5QiRGOCQiKysrcWNbRjg3JSQiKysrISo9QkY4JCIrKysheWolRjgkIisrK3FjcEY4NyUkIisrKyEpcDpGOCQiKysrZ1JKRjgkIisrK1M0WkY4NyUkIisrKyEpcEFGOCQiKysrZ1JYRjgkIisrK1M0b0Y4NyUkIisrKyFvZSJGOCQiKysrZ3RKRjgkIisrK1NnWkY4NyUkIisrKyFvRyNGOCQiKysrZ3RYRjgkIisrK1Nnb0Y4NyUkIisrKz8kZiJGOCQiKysrUyc9JEY4JCIrKytnelpGODclJCIrKys/JEgjRjgkIisrK1MnZSVGOCQiKysrZ3pvRjg3JSQiKysrU3c6RjgkIisrKyFHOiRGOCQiKysrP0haRjg3JSQiKysrU3dBRjgkIisrKyFHYiVGOCQiKysrP0hvRjg3JSQiKysrISlcOkY4JCIrKytnKjQkRjgkIisrK1NcWUY4NyUkIisrKyEpXEFGOCQiKysrZypcJUY4JCIrKytTXG5GODclJCIrKyshKW85RjgkIisrK2dQSEY4JCIrKytTMVdGODclJCIrKyshKW9ARjgkIisrK2dQVkY4JCIrKytTMWxGODclJCIrKytJTDhGOCQiKysrZ21FRjgkIisrKyEqKipSRjg3JSQiKysrSUw/RjgkIisrK2dtU0Y4JCIrKyshKio0J0Y4NyUkIisrK2cuOEY4JCIrKys/MkVGOCQiKysrITMiUkY4NyUkIisrK2cuP0Y4JCIrKys/MlNGOCQiKysrITMsJ0Y4NyUkIisrK2dNN0Y4JCIrKys/cENGOCQiKysrIVFxJEY4NyUkIisrK2dNPkY4JCIrKys/cFFGOCQiKysrIVEhZUY4NyUkIisrK3FiNkY4JCIrKytTNkJGOCQiKysrNW5NRjg3JSQiKysrcWI9RjgkIisrK1M2UEY4JCIrKys1bmJGODclJCIrKysrVDVGOCQiKysrKyMzI0Y4JCIrKysrQkpGODclJCIrKysrVDxGOCQiKysrKyNbJEY4JCIrKysrQl9GODclJCIrKysrISkpKUYuJCIrKysrdzxGOCQiKysrK2tFRjg3JSQiKysrKyllIkY4JCIrKysrd0pGOCQiKysrK2taRjg3JSQiKysrK1NvRi4kIisrKytvOEY4JCIrKysrXz9GODclJCIrKysrJVEiRjgkIisrKytvRkY4JCIrKysrX1RGODclJCIrKysrXWlGLiQiKysrK103RjgkIisrKyt2PUY4NyUkIisrKytEOEY4JCIrKysrXUVGOCQiKysrK3ZSRjg3JSQiKysrK3FzRi4kIisrKythOUY4JCIrKysrIj0jRjg3JSQiKysrK0Y5RjgkIisrKythR0Y4JCIrKysrIkclRjg3JSQiKysrKyspKUYuJCIrKysrZzxGOCQiKysrK1NFRjg3JSQiKysrKyFlIkY4JCIrKysrZ0pGOCQiKysrK1NaRjg3JSQiKysrK3FrRi4kIisrKyslSCJGOCQiKysrK1Q+Rjg3JSQiKysrK1o4RjgkIisrKyslcCNGOCQiKysrK1RTRjg3JSQiKysrK1NcRi4kIisrKyshKSkqRi4kIisrKysjWyJGODclJCIrKysrJT4iRjgkIisrKyspUSNGOCQiKysrKyNlJEY4NyUkIisrKysrSEYuJCIrKysrK2VGLiQiKysrKysoKUYuNyUkIisrKysrKipGLiQiKysrKyEpPkY4JCIrKysrcUhGODclJCIrKysrNUJGLiQiKysrKz9ZRi4kIisrKytJcEYuNyUkIisrKys1JCpGLiQiKysrK2k9RjgkIisrKyskeiNGODclJCIrKysrSUxGLiQiKysrK2dtRi4kIisrKyshKioqRi43JSQiKysrK0w1RjgkIisrKyttP0Y4JCIrKysrKjQkRjg3JSQiKysrK2dbRi4kIisrKys/KCpGLiQiKysrK2U5Rjg3JSQiKysrKyc9IkY4JCIrKysrc0JGOCQiKysrK2VORjg3JSQiKysrKyEzJEYuJCIrKysrZ2hGLiQiKysrK1MjKkYuNyUkIisrKyszNUY4JCIrKysrOz9GOCQiKysrK0NJRjgtSSdDT0xPVVJHRiU2JkkkUkdCR0YlJCIiIUZqX20kIiorKysrIiEiKUZpX20tSSZTVFlMRUdGJTYjSSVMSU5FR0YoLUYkNiU3S0YrRjtGSUZXRl9vRl1wRltxRmlxRmdyRmVzRmN0RmF1Rl92Rl13Rlt4Rml4Rmd5RmV6RmNbbEZhXGxGX11sRl1ebEZbX2xGaV9sRmdgbEZlYWxGY2JsRmFjbEZfZGxGXWVsRltmbEZpZmxGZ2dsRmVobEZjaWxGYWpsRl9bbUZdXG1GW11tRmldbUZnXm0tRmZfbTYmRmhfbUZbYG1GaV9tRmlfbUZeYG0tRiQ2JTdLRjNGQkZQRmhuRmZvRmRwRmJxRmByRl5zRlx0Rmp0Rmh1RmZ2RmR3RmJ4RmB5Rl56RlxbbEZqW2xGaFxsRmZdbEZkXmxGYl9sRmBgbEZeYWxGXGJsRmpibEZoY2xGZmRsRmRlbEZiZmxGYGdsRl5obEZcaWxGamlsRmhqbEZmW21GZFxtRmJdbUZgXm1GXl9tLUZmX202JkZoX21GaV9tRmlfbUZbYG1GXmBtLUYkNiU3MjclRmlfbUZpX21GaV9tNyUkIiIiRmpfbUZpX21GaV9tNyVGYWFtJCIjTiEiI0ZpX21GYGFtNyVGYWFtRmlfbSQiIiYhIiI3JUZhYW1GZGFtRmhhbUZnYW03JUZpX21GaV9tRmhhbTclRmlfbUZkYW1GaGFtRlxibUZfYW03JUZpX21GZGFtRmlfbUZjYW1GW2JtRl1ibUZeYm0tRmZfbTYmRmhfbUZqX21Gal9tRmpfbUZeYG0tSSpBWEVTU1RZTEVHRiU2I0klTk9ORUdGJS1JKFNDQUxJTkdHRig2I0ksQ09OU1RSQUlORURHRiU=
<Text-field style="Heading 2" layout="Heading 2">Exercises:</Text-field> 2) Use matrix multiplication to produce a single matrix that composes the rotation in the y-z plane followed by the shearing in the x-z plane (think carefully about the order of multiplication). Compare the result of multiplying this single matrix on the car with the result of first multiplying the car by the rotation matrix and then the result of the rotation by the shearing matrix. 3) Produce a matrix to rotate the figure counterclockwise 30 degrees about the x-axis and another matrix to rotate the image by 20 degrees counterclockwise about the z axis. Apply these matrices in succession to the image of the car and plot the result. 4) Obtain a single matrix that has the same effect as the composite of the two matrices in Exercise 3. Plot the result. 5) Write a hypothesis about the result of multiplying the image of the car by a rank 2 matrix. Create a random rank 2 matrix of size 3 by 3 and verify your hypothesis. (Your matrix should be of rank 2 with no zeros. Pay particular attention to what happens to the images of the sides of the car.) 6) Write a hypothesis about the result of multiplying the image of the car by a matrix with all zeros in the third column. Create a random 3 by 3 matrix of this type and verify your hypothesis. (Your matrix should be of rank 2 with zeros only in the third column. Pay particular attention to what happens to the images of the sides of the car. Your hypothesis should mention vectors that are in the null space.) 7) Write a hypothesis about the result of multiplying the image of the car by a rank 1 matrix. Create a random rank 1 matrix of size 3 by 3 and verify your hypothesis. 8) Write a hypothesis about the result of multiplying the image of the car by a matrix with all zeros in the first and third rows. Create a random 3 by 3 matrix of this type and verify your hypothesis. (Your hypothesis should mention interesting vectors in the image.)