> #sfb 14 Feb 2002 > with(plots):with(plottools):with(linalg): > #1 > u:=vector([2,4]);v:=vector([5,1]); > u1:=arrow([0,0],u,.1,.2,.1):u2:=arrow(v,u,.1,.2,.1): > v1:=arrow([0,0],v,.1,.2,.1):v2:=arrow(u,v,.1,.2,.1): > uplusv:=arrow([0,0],matadd(u,v,1,1),.1,.2,.1):display(u1,u2,v1,v2,uplusv); > #2 > solve({3*x-2*y+5*z=12,x=3*t,y=-2*t,z=5*t}); > n:=arrow([18/19,-12/19,30/19],[3,-2,5],.1,.3,.2): > plane:=plot3d((12+2*y-3*x)/5,x=-3..3,y=-3..3,scaling=constrained,axes=normal,title="Plane 3x-2y+5y=12 and normal"): > display(plane,n); > #3 > e:=exp(1); > f:=3*(1-x)^2*e^(-x^2-(y+1)^2)-10*(x/5-x^3-y^5)*e^(-x^2-y^2)-(1/3)*e^(-(x+1)^2-y^2); > > f_x:=diff(f,x);f_y:=diff(f,y); > f_xx:=diff(f_x,x);f_xy:=diff(f_x,y);f_yx:=diff(f_y,x);f_yy:=diff(f_y,y); > #Question is f_xy=f_yx? > f_xy-f_yx; > #Answer, yes. > #4 > curve1:=[1/5,y,subs({x=1/5},f)];curve2:=[x,3/2,subs({y=3/2},f)]; > p1:=spacecurve(curve1,y=-3..3,thickness=3,color=blue): > p2:=spacecurve(curve2,x=-3..3,thickness=3,color=red): > p3:=plot3d(f,x=-3..3,y=-3..3,title="The Demo Function with x=1/5 and y=3/2 cross sections",numpoints=3000):display(p1,p2,p3,style=contour); > #5 > u:=vector([1,2,3]);v:=vector([3,1,3]); > scalarproj:=dotprod(u,v,orthogonal)/norm(v,2); > vectorproj:=scalarmul(v,scalarproj/norm(v,2)); > u1:='u1';v1:='v1';u2:='u2';v2:='v2'; > u:=vector([u1,u2,u3]);v:=vector([v1,v2,v3]); > scalarproj:=dotprod(u,v,orthogonal)/norm(v,2); > vectorproj:=scalarmul(v,scalarproj/norm(v,2)); > # > # > # Some examples from previous classes, Hunting for Global Max/Min > f:=8*y^3+12*x^2-24*x*y; > plot3d(f,x=-3..3,y=-3..3,title=convert(f,string),style=patchcontour,axes=boxed); > subs(x=-3,f);subs(x=3,f);subs(y=-3,f);subs(y=3,f); > display(plot([subs(x=3,f),subs(x=-3,f)],y=-3..3),plot([subs(y=3,f),subs(y=-3,f)],x=-3..3)); > f:=1-x^2-y^2+x^2*y^2; > subs(x=-3,f);subs(x=3,f);subs(y=-3,f);subs(y=3,f); > plot(subs(y=3,f),x=-3..3); > plot3d(f,x=-3..3,y=-3..3,title=convert(f,string),style=patchcontour,axes=boxed); > f:=x^2+2*y^2;#Region is x^2+y^2<=4 > p1:=plot3d([r*cos(t),r*sin(t),subs({x=r*cos(t),y=r*sin(t)},f)],r=0..2,t=0..2*Pi): > p2:=plot3d([r*cos(t),r*sin(t),0],r=0..2,t=0..2*Pi,color=green): > display(p1,p2,axes=boxed); > plot(subs({x=2*cos(t),y=2*sin(t)},f),t=0..2*Pi,title="Boundry Curve"); > # > f:=x^2*(y+1)^3+y^2; > plot3d(f,x=-3..3,y=-3..3); > subs(y=x,f);solve({diff(f,x)=0,diff(f,y)=0},{x,y});subs({x=0,y=0},diff(f,x,x)*diff(f,y,y)-(diff(f,x,y))^2);subs({x=0,y=0},diff(f,x,x)); > # > # Critical Point Extreme Machine > cpem:=proc(f) > local f_x, f_y, f_xx, f_yy, f_xy, bigD, critical, dd, xx, i; > f_x:=diff(f,x);f_y:=diff(f,y); > f_xx:=diff(f_x,x);f_xy:=diff(f_x,y);f_yy:=diff(f_y,y); > bigD:=f_xx*f_yy-(f_xy)^2; > critical:=solve({f_x=0,f_y=0},{x,y}); > for i from 1 to nops([critical]) do > if ( nops([critical]) = 1 ) then > dd:=eval(bigD,critical); xx:=eval(f_xx,critical); > if ( dd < 0 ) then > print("The critical point ",critical," is a saddle ", dd,xx); > elif ( dd = 0 ) then > print("The test fails for ",critical, dd,xx); > elif ( xx > 0 ) then > print("The critical point ",critical," is a local min ", dd,xx); > else > print("The critical point ",critical," is a local max ", dd,xx); > fi; > else > dd:=eval(bigD,critical[i]); xx:=eval(f_xx,critical[i]); > if ( dd < 0 ) then > print("The critical point ",critical[i]," is a saddle ", dd,xx); > elif ( dd = 0 ) then > print("The test fails for ",critical[i], dd,xx); > elif ( xx > 0 ) then > print("The critical point ",critical[i]," is a local min ", dd,xx); > else > print("The critical point ",critical[i]," is a local max ", dd,xx); > fi > fi; > od; > #print(f);print(critical); > end; > f:=x^2+y^2;cpem(f); > f:=8*y^3+12*x^2-24*x*y;cpem(f); > cpem(1-x^2-y^2+x^2*y^2); > cpem(sin(x)*sin(y)); > f:=x^2*(y+1)^3+y^2;cpem(f); > solve({diff(1-x^2-y^2+x^2*y^2,x)=0,diff(1-x^2-y^2+x^2*y^2,y)=0},{x,y}); >