DesignMat Uge 11 St\303\270rste- mindstev\303\246rdiPreben Alsholm, 28/7 2010Pakkerrestart;if ssystem("hostname")=[0,"PC-PKA1"] then
libname:="C:/Documents and Settings/alsholm/Dokumenter/Kopi af DropBox/DMat",libname
elif ssystem("hostname")=[0,"pc-pka"] then
libname:="F:/DMat",libname
elif ssystem("hostname")=[0,"alsholm-PC"] then
libname:="F:/DMat",libname
else print("Fremmed computer. Skriv selv libname.")
end if;with(DMat):Sergey Moiseev har lavet en optimeringspakke kaldet DirectSearch. Den kan hentes p\303\245 http://www.maplesoft.com/applications/view.aspx?SID=87637&c=88484.with(DirectSearch);?SearchOptimization-pakken i Maple finder kun lokalt minimum/maksimum.with(Optimization);with(LinearAlgebra): with(plots):
with(Student[MultivariateCalculus]):St\303\270rste- og mindstev\303\246rdi p\303\245 lukket og begr\303\246nset omr\303\245de. Eksempel 1.Vi skal bestemme st\303\270rste- og mindstev\303\246rdi for funktionenf:=(x,y)->2*x^2*y^2-2*x^2-y^4;p\303\245 cirkelskivenplot([3*cos(t),3*sin(t),t=0..2*Pi],thickness=2,color=blue):
plot([3*cos(t),3*sin(t),t=0..2*Pi],filled=true,color=yellow):
p1:=display(%%,%,caption=typeset("Omr\303\245det ",x^2+y^2<=9)):
p1;De partielle afledede:fx:=factor(diff(f(x,y),x));fy:=factor(diff(f(x,y),y));De station\303\246re punkter bestemmessolve({fx=0,fy=0},{x,y});Fjerner dubletter:op({%});statpkt:=map(subs,[%],[x,y]);Randunders\303\270gelse (bem\303\246rk, at f(x,y) kun indeholder lige potenser af x og y).expand(f(x,sqrt(9-x^2)));g:=unapply(%,x);g(3),g(-3);diff(g(x),x);statrand:=solve(%=0,x);seq(g(statrand[i]),i=1..3);V\303\246rdierne -81 og 46/3 skal nu sammenlignes med v\303\246rdien af f i de station\303\246re punkter indenfor cirklen:p2:=plot(statpkt,style=point,symbol=solidcircle,symbolsize=25):p3:=display(p1,p2,caption=typeset("Omr\303\245det ",x^2+y^2<=9," med de 5 station\303\246re punkter"),transparency=.5):
p3;V\303\246rdierne i disse punkter er:map(f@op,statpkt);Konklusion: St\303\270rstev\303\246rdi 46/3, mindstev\303\246rdi -81. Begge antages p\303\245 randen.pf:=plot3d(f(x,y),x=-3..3,y=-sqrt(9-x^2)..sqrt(9-x^2),axes=framed,caption=typeset("Grafen for ",f(x,y)," p\303\245 omr\303\245det ",x^2+y^2<=9)):
tr:=plottools:-transform((x,y)->[x,y,0]):
display(pf,tr(p3));Vi finder nu st\303\270rste- og mindstev\303\246rdi for samme funktion f p\303\245 enhedscirkelskiven. Vi bem\303\246rker, at kun det ene af de 5 ligev\303\246gtspunkter ligger i omr\303\245det:plot([cos(t),sin(t),t=0..2*Pi],thickness=2,color=blue):
plot([cos(t),sin(t),t=0..2*Pi],filled=true,color=yellow):
p1:=display(%%,%,caption=typeset("Omr\303\245det ",x^2+y^2<=1," med de station\303\246re punkter indtegnet")):
display(p1,p2);En tegning af grafen af f viser ganske tydeligt, at st\303\270rstev\303\246rdien for f antages i det station\303\246re punkt (0,0), og at mindstev\303\246rdien antages p\303\245 randen:plot3d(f(x,y),x=-1..1,y=-sqrt(1-x^2)..sqrt(1-x^2),axes=framed,caption=typeset("Grafen for ",f(x,y)," p\303\245 omr\303\245det ",x^2+y^2<=1));Vi vil dog gennemf\303\270re de regninger, der viser dette (og samtidigt bestemme st\303\270rste- og mindstev\303\246rdien).Randunders\303\270gelse (bem\303\246rk igen, at f(x,y) kun indeholder lige potenser af x og y):.expand(f(x,sqrt(1-x^2)));g:=unapply(%,x);g(1),g(-1);diff(g(x),x);statrand:=solve(%=0,x);seq(g(statrand[i]),i=1..3);V\303\246rdierne -2 og -2/3 skal nu sammenlignes med v\303\246rdien af f i det station\303\246re punkt (0,0) indenfor cirklen:f(0,0);Konklusion: St\303\270rstev\303\246rdi 0, mindstev\303\246rdi -2. Optimization-pakken og DirectSearch-pakkenMinimize(f(x,y),{x^2+y^2<=9});Minimize(f(x,y),{x^2+y^2<=9},initialpoint=[x=0,y=0]);Minimize(f(x,y),{x^2+y^2<=9},initialpoint=[x=0,y=0.3]);Maximize(f(x,y),{x^2+y^2<=9},initialpoint=[x=0,y=0.3]);Maximize(f(x,y),{x^2+y^2<=9},initialpoint=[x=2,y=0.3]);evalf(46/3);Minimize(f(x,y),{x^2+y^2<=1});Minimize(f(x,y),{x^2+y^2<=1},initialpoint=[x=0,y=0.3]);Minimize(f(x,y),{x^2+y^2<=1},initialpoint=[x=.4,y=0.3]);Maximize(f(x,y),{x^2+y^2<=1},initialpoint=[x=0,y=0.3]);GlobalSearch(f(x,y),{x^2+y^2<=9});Illustration af Search (lokal s\303\270gning)Search(f(x,y),{x^2+y^2<=9},searchpath='P');P;PL:=convert(LinearAlgebra:-Transpose(P),listlist):PL3:=map(xy->[op(xy),f(op(xy))],PL):bg:=plot3d(f(r*cos(t),r*sin(t)),r=0..3,t=0..2*Pi,coords=z_cylindrical,axes=boxed,transparency=.4,style=patchnogrid):
animate(pointplot3d,[PL3[1..n],axes=boxed,connect=true,thickness=3,color=black],n=1..40,frames=40,background=bg);GlobalSearch(f(x,y),{x^2+y^2<=9},maximize);GlobalSearch(f(x,y),{x^2+y^2<=1});GlobalSearch(f(x,y),{x^2+y^2<=1},maximize);Her introduceres som fors\303\270g en straffunktion til at h\303\245ndtere uline\303\246re uligheder:g:=(x,y)->piecewise(x^2+y^2<=9,0,x^2+y^2-9);Minimize(f(x,y)+g(x,y),{x>=-3,x<=3,y>=-3,y<=3},initialpoint=[x=0,y=0.3]);GlobalSearch(f(x,y)+g(x,y),{x>=-3,x<=3,y>=-3,y<=3},initialpoint=[x=0,y=0.3]);St\303\270rste- og mindstev\303\246rdi p\303\245 lukket og begr\303\246nset omr\303\245de. Eksempel 2.Vi skal bestemme st\303\270rste- og mindstev\303\246rdi for funktionenf:=(x,y)->(2*x+y)*exp(-x*y);p\303\245 omr\303\245detp1:=display(plottools:-polygon([[0,0],[2,0],[0,4]]),color=yellow,thickness=2,caption=typeset("Omr\303\245det givet ved ",[y+2*x<=4,x>=0,y>=0])):
p1;
De partielle afledede:fx:=factor(diff(f(x,y),x));fy:=factor(diff(f(x,y),y));De station\303\246re punkter bestemmessolve({fx=0,fy=0},{x,y});statpkt:=map(subs,[%],[x,y]);Randunders\303\270gelse.Den skr\303\245 rand:f(x,4-2*x);g:=unapply(%,x);g(0),g(2);diff(g(x),x);statrand:=solve(%=0,x);g(1);evalf(%);x-aksedelen af randen:f(x,0);St\303\270rstev\303\246rdi p\303\245 den randdel er 4, mindstev\303\246rdi 0.Randdelen p\303\245 y-aksen:f(0,y);St\303\270rstev\303\246rdi p\303\245 den randdel er ogs\303\245 4 og mindstev\303\246rdi ogs\303\245 0.V\303\246rdierne 4 og LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbW5HRiQ2JFEiMEYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJ0Yv skal nu sammenlignes med v\303\246rdien af f i det station\303\246re punkt indenfor trekanten:p2:=plot(statpkt,style=point,symbol=solidcircle,symbolsize=25):display(p1,p2,view=[-1..2,-1..4],caption=typeset("De station\303\246re punkter sammen med omr\303\245det ",[y+2*x<=4,x>=0,y>=0]));V\303\246rdierne i det indre station\303\246re punkt er:f(1/2,1);evalf(%);. Begge antages p\303\245 randen.tr:=plottools:-transform((x,y)->[x,y,0]):
plot(statpkt,style=point,symbol=solidcircle,symbolsize=25):p3:=tr(display(p1,p2),transparency=0.5):plot3d(f(x,y),x=0..2,y=0..4-2*x,axes=framed,orientation=[-170,60]):
display(%,p3);Optimization-pakken og DirectSearch-pakkenMinimize(f(x,y),{y+2*x<=4,x>=0,y>=0});Minimize(f(x,y),{y+2*x<=4,x>=0,y>=0},initialpoint=[x=.3,y=.2]);Maximize(f(x,y),{y+2*x<=4,x>=0,y>=0});GlobalSearch(f(x,y),{y+2*x<=4,x>=0,y>=0});GlobalSearch(f(x,y),{y+2*x<=4,x>=0,y>=0},maximize);Eksempel 3plot3d(1/(1-r^2),r=0..1,theta=0..2*Pi,coords=z_cylindrical,axes=boxed,view=0..10);Eksempel 4plot((1-x)*sin(1/x),x=0..1,numpoints=500);St\303\270rste- og mindstev\303\246rdi p\303\245 lukket og begr\303\246nset omr\303\245de. Eksempel 5.Vi betragter funktionenf:=(x,y,z)->x^2+2*y^2+3*z^2-6*z;i den lukkede kugle givet ved LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYrLUklbXN1cEdGJDYlLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1GIzYlLUkjbW5HRiQ2JFEiMkYnL0Y2USdub3JtYWxGJ0YyRjUvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnLUkjbW9HRiQ2LVEiK0YnRj4vJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkkvJSlzdHJldGNoeUdGSS8lKnN5bW1ldHJpY0dGSS8lKGxhcmdlb3BHRkkvJS5tb3ZhYmxlbGltaXRzR0ZJLyUnYWNjZW50R0ZJLyUnbHNwYWNlR1EsMC4yMjIyMjIyZW1GJy8lJ3JzcGFjZUdGWC1GLDYlLUYvNiVRInlGJ0YyRjVGOEZARkMtRiw2JS1GLzYlUSJ6RidGMkY1RjhGQC1GRDYtUSYmbGVxO0YnRj5GR0ZKRkxGTkZQRlJGVC9GV1EsMC4yNzc3Nzc4ZW1GJy9GWkZjby1GOzYkUSI0RidGPi8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRidGPg==.Da vi har, at f(x,y,z)=Student:-Precalculus:-CompleteSquare(f(x,y,z),z);er det p\303\245 forh\303\245nd klart, at mindstev\303\246rdien for f er f(0,0,1) = -3.I det f\303\270lgende ignorerer vi dog denne forh\303\245ndsviden for at g\303\245 lidt mere generelt til v\303\246rks.De partielle afledede:fx:=diff(f(x,y,z),x);fy:=diff(f(x,y,z),y);fz:=diff(f(x,y,z),z);Station\303\246re punkter bestemmessolve({fx=0,fy=0,fz=0},{x,y,z});Der er kun et.f(0,0,1);Kugleoverfladen:plot3d(2,theta=0..2*Pi,phi=0..Pi,coords=spherical,axes=boxed);Her kommer kuglen vha. implicitplot3d:implicitplot3d(x^2+y^2+z^2=4,x=-2..2,y=-2..2,z=-2..2,axes=boxed);P\303\245 kugleoverfladen har f v\303\246rdier bekrevet ved funktioneng:=unapply(eval(f(x,y,z),x^2=4-y^2-z^2),y,z);Vi s\303\246tter farver p\303\245 kugleoverfladen givet ved v\303\246rdierne af g:pointplot3d([[0,0,1]],symbol=solidsphere,symbolsize=20):
plot3d(2,theta=0..2*Pi,phi=0..Pi,coords=spherical,axes=boxed,color=g(2*sin(phi)*sin(theta),2*cos(phi)),labels=[x,y,z],transparency=.5,style=patchnogrid):
display(%%,%);kugle:=%:Vi skal nu bestemme st\303\270rste- og mindstev\303\246rdi for g p\303\245 cirkelskiven LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUklbXN1cEdGJDYlLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1GIzYlLUkjbW5HRiQ2JFEiMkYnL0Y2USdub3JtYWxGJ0YyRjUvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnLUkjbW9HRiQ2LVEiK0YnRj4vJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkkvJSlzdHJldGNoeUdGSS8lKnN5bW1ldHJpY0dGSS8lKGxhcmdlb3BHRkkvJS5tb3ZhYmxlbGltaXRzR0ZJLyUnYWNjZW50R0ZJLyUnbHNwYWNlR1EsMC4yMjIyMjIyZW1GJy8lJ3JzcGFjZUdGWC1GLDYlLUYvNiVRInpGJ0YyRjVGOEZALUZENi1RJiZsZXE7RidGPkZHRkpGTEZORlBGUkZUL0ZXUSwwLjI3Nzc3NzhlbUYnL0ZaRl5vLUY7NiRRIjRGJ0Y+Rj4=.De partielle afledede:gy:=diff(g(y,z),y);gz:=diff(g(y,z),z);Station\303\246re punkter bestemmessolve({gy=0,gz=0},{y,z});g(0,3/2);Randen LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUklbXN1cEdGJDYlLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1GIzYlLUkjbW5HRiQ2JFEiMkYnL0Y2USdub3JtYWxGJ0YyRjUvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnLUkjbW9HRiQ2LVEiK0YnRj4vJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkkvJSlzdHJldGNoeUdGSS8lKnN5bW1ldHJpY0dGSS8lKGxhcmdlb3BHRkkvJS5tb3ZhYmxlbGltaXRzR0ZJLyUnYWNjZW50R0ZJLyUnbHNwYWNlR1EsMC4yMjIyMjIyZW1GJy8lJ3JzcGFjZUdGWC1GLDYlLUYvNiVRInpGJ0YyRjVGOEZALUZENi1RIj1GJ0Y+RkdGSkZMRk5GUEZSRlQvRldRLDAuMjc3Nzc3OGVtRicvRlpGXm8tRjs2JFEiNEYnRj5GPg==:h:=unapply(eval(g(y,z),y^2=4-z^2),z);factor(h(z));Polynomiet har mindstev\303\246rdi for z = 3 og er derfor aftagende p\303\245 intervallet [-2, 2]:h(-2);h(2);Konklusion: St\303\270rstev\303\246rdi for f p\303\245 kuglen er 24 (der antages p\303\245 randen i (0,0,-2)) og mindstev\303\246rdi -3, der antages i det station\303\246re punkt (0,0,1). Her kommer en animation med voksende kuglest\303\270rrelse fra radius 0 til 2. Farverne bestemmes af v\303\246rdien for f:gr:=unapply(eval(f(x,y,z),x^2=r^2-y^2-z^2),y,z):animate(plot3d,[r,theta=0..2*Pi,phi=0..Pi,coords=spherical,style=patchnogrid,axes=boxed,color=gr(r*sin(phi)*sin(theta),r*cos(phi)),labels=[x,y,z]],r=0..2);Nu en animation af niveauflader for f med kugleoverfladen som baggrund. Niveauerne er fra mindstev\303\246rdien -3 til st\303\270rstev\303\246rdien 24:niv:=[-3,-2.9,-2.8,-2.5,-2,-1,-1/2,$0..24];animate(implicitplot3d,[f(x,y,z)=C,x=-2..2,y=-2..2,z=-2..2,axes=boxed,transparency=.4,style=patchnogrid,color=green],C=niv,background=kugle);Til sidst samme animation som ovenfor, men med sk\303\246ringskurven mellem niveauflade og kugleoverfladen indtegnet. Niveauerne er igen fra mindstev\303\246rdien -3 til st\303\270rstev\303\246rdien 24:SQRT:=u->if not type(u,numeric) then 'procname'(u) elif u<0 then undefined else sqrt(u) end if:
tr1:=plottools:-transform((y,z)->[SQRT(4-y^2-z^2),y,z]):
tr2:=plottools:-transform((y,z)->[-SQRT(4-y^2-z^2),y,z]):kurve:=proc(C) local pi;
pi:=implicitplot(g(y,z)=C,y=-2..2,z=-2..2,color=black,thickness=2);
display(tr1(pi),tr2(pi))
end proc:R:=3:
animate(kurve,[C],C=niv):
animate(implicitplot3d,[f(x,y,z)=C,x=-R..R,y=-R..R,z=-R..R,axes=boxed,transparency=.4,grid=[15,15,15],style=patchnogrid,color=blue],C=niv,background=kugle):
display(%%,%);Optimization-pakken og DirectSearch-pakkenMinimize(f(x,y,z),{x^2+y^2+z^2<=4});Maximize(f(x,y,z),{x^2+y^2+z^2<=4});GlobalSearch(f(x,y,z),{x^2+y^2+z^2<=4});GlobalSearch(f(x,y,z),{x^2+y^2+z^2<=4},maximize);