|\^/| Maple V Release 3 (SUNY at Albany) ._|\| |/|_. Copyright (c) 1981-1994 by Waterloo Maple Software and the \ MAPLE / University of Waterloo. All rights reserved. Maple and Maple V <____ ____> are registered trademarks of Waterloo Maple Software. | Type ? for help. Warning: new definition for norm Warning: new definition for trace #The equation of a Plane through 3 given points. > a := vector(3): b := vector(3): c:=vector(3): #The normal vector to the plane will be given by > n := crossprod(b-a,c-a); n := [ (b[2] - a[2]) (c[3] - a[3]) - (b[3] - a[3]) (c[2] - a[2]), (b[3] - a[3]) (c[1] - a[1]) - (b[1] - a[1]) (c[3] - a[3]), (b[1] - a[1]) (c[2] - a[2]) - (b[2] - a[2]) (c[1] - a[1]) ] #and to compute the equation of the plane we do > r := vector([x,y,z]): > innerprod(n, r-a); - b[2] a[3] x - a[2] c[3] x + b[2] c[3] x + b[3] a[2] x + a[3] c[2] x - b[3] c[2] x + a[1] c[3] y + b[1] a[3] y - a[3] c[1] y - b[1] c[3] y + b[3] c[1] y - b[3] a[1] y - b[2] c[1] z + b[1] c[2] z - b[1] a[2] z - a[1] c[2] z + b[2] a[1] z + a[2] c[1] z - b[2] c[3] a[1] + b[1] c[3] a[2] + b[3] c[2] a[1] + b[2] c[1] a[3] - b[1] c[2] a[3] - b[3] c[1] a[2] # In order to "collect" terms in x, y and z we write, > collect(",[x,y,z]); (b[2] c[3] - b[2] a[3] - a[2] c[3] - b[3] c[2] + b[3] a[2] + a[3] c[2]) x + (b[3] c[1] - b[3] a[1] - a[3] c[1] - b[1] c[3] + b[1] a[3] + a[1] c[3]) y + (b[1] c[2] - b[1] a[2] - a[1] c[2] - b[2] c[1] + b[2] a[1] + a[2] c[1]) z - b[2] c[3] a[1] - b[1] c[2] a[3] + b[1] c[3] a[2] + b[2] c[1] a[3] + b[3] c[2] a[1] - b[3] c[1] a[2] # The equation of the plane is then given by the previous expression = 0. It is more convenient to pack the above commands into a maple procedure as follows: > P3points := proc(a,b,c) > local ex1,ex2,n,_x,_y,_z,r; > n := crossprod(b-a,c-a); > r := vector([_x,_y,_z]); > ex1 := innerprod(n,r-a); > ex2 := collect(ex1,[_x,_y,_z]); > ex2 = 0 > end; #Let's test it, > P3points([0,0,-8],[0,4,0],[8,0,0]); 32 _x + 64 _y - 32 _z - 256 = 0 # OK this is the answer but to show how you can use maple to re-organize the way an equation looks we load the very useful "isolate" command with, > readlib(isolate): > isolate(P3points([0,0,-8],[0,4,0],[8,0,0]),- 256); -256 = - 32 _x - 64 _y + 32 _z #Do you see how -256 was isolated on the right? We can also divide the whole equation through by 32 with, > "/32; -8 = - _x - 2 _y + _z # and now let's flip the rhs and lhs with, > isolate(",rhs(")); - _x - 2 _y + _z = -8 # Multiply through by (-1).... > "*(-1); _x + 2 _y - _z = 8 # one more example, > P3points([1,1,-2],[-1,1,0],[0,2,2]); - 2 _x - 8 + 6 _y - 2 _z = 0 > "/(-8); 1/4 _x + 1 - 3/4 _y + 1/4 _z = 0 # sorry I just wanted to divide by (-2), but not a big deal... just do > "*4; _x + 4 - 3 _y + _z = 0 > isolate(",4); 4 = - _x + 3 _y - _z # and flip it around... > isolate(",rhs(")); - _x + 3 _y - _z = 4 >