EkstremumPreben Alsholm 15/8 2007 restart;Funktion af \303\251n variabelDer er givet funktionenf:=x->sin(x)-cos(x/2);Vi skal bestemme lokale maksimum- og minimumspunkter p\303\245 intervallet LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictSShtZmVuY2VkR0YkNiYtRiM2Ky1JI21uR0YkNiRRKyZ1bWludXMwOzJGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRictSSNtb0dGJDYtUTEmSW52aXNpYmxlVGltZXM7RidGOC8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGQS8lKXN0cmV0Y2h5R0ZBLyUqc3ltbWV0cmljR0ZBLyUobGFyZ2VvcEdGQS8lLm1vdmFibGVsaW1pdHNHRkEvJSdhY2NlbnRHRkEvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZQLUYsNiVRJSZwaTtGJy8lJ2l0YWxpY0dGQUY4LUY8Ni1RIixGJ0Y4Rj8vRkNRJXRydWVGJ0ZERkZGSEZKRkxGTi9GUlEsMC4zMzMzMzMzZW1GJ0Y7LUY1NiRRIjJGJ0Y4RjtGU0Y4RjgvJSVvcGVuR1EiW0YnLyUmY2xvc2VHUSJdRictRjw2LVEiOkYnRjhGP0ZCRkRGRkZIRkpGTC9GT1EsMC4yNzc3Nzc4ZW1GJy9GUkZmb0Y4plot(f(x),x=-2*Pi..2*Pi);p1:=%:Vi finder nulpunkterne for den afledede af f. Nulpunkterne vil blive betegnet r1, r2, r3 og r4:fm:=diff(f(x),x);r1:=fsolve(fm=0,x=-2*Pi..2*Pi);Her findes den 2. afledede af f i den f\303\270rstfundne rod:(D@@2)(f)(r1);r2:=fsolve(fm=0,x=-2*Pi..2*Pi,avoid={x=r1});Her findes den 2. afledede af f i den anden rod:(D@@2)(f)(r2);r3:=fsolve(fm=0,x=-2*Pi..2*Pi,avoid={x=r1,x=r2});Her findes den 2. afledede af f i den tredie rod:(D@@2)(f)(r3);r4:=fsolve(fm=0,x=-2*Pi..2*Pi,avoid={x=r1,x=r2,x=r3});Her findes den 2. afledede af f i den fjerde og sidste rod:(D@@2)(f)(r4);Fortehnene for de anden afledede p\303\245 \303\251n gang:map((D@@2)(f),[r1,r2,r3,r4]);Her f\303\270lger lidt automatisering (programmering), der kan have sine fordele, idet Maple ikke finder r\303\270dderne i samme r\303\246kkef\303\270lge hver gang, hvilket g\303\270r, at tekst og beregning uden programmering ikke altid passer sammen:Den f\303\270rste af de f\303\270lgende to lister indeholder punkter, hvor den anden afledede er negativ, s\303\245 disse punkter er maksimumspunkter. Liste nummer to svarer til minimumspunkter.selectremove(r->evalb((D@@2)(f)(r)<0),[r1,r2,r3,r4]);with(plots):p2:=plot([[r1,f(r1)],[r2,f(r2)],[r3,f(r3)],[r4,f(r4)]],style=point,symbolsize=25,color=blue):display(p1,p2);Eksempel 4 fra noterne Hessekort (Eks. 10 fra Hesse)with(plots): with(LinearAlgebra):f:=(x,y)->x^2-x^2*y+2*y^2;Vi bestemmer station\303\246re punkter:fx:=diff(f(x,y),x);fy:=diff(f(x,y),y);solve({fx=0,fy=0},{x,y});I VectorCalculus-pakken ligger en procedure Hessian, som vi kan bruge:Hesse:=VectorCalculus[Hessian]:H:=unapply(Hesse(f(x,y),[x,y]),x,y):Hessematricen for vores konkrete funktion f taget i et vilk\303\245rligt punkt (x, y) er nuH(x,y);I de station\303\246re punkter f\303\245s:H(0,0);Egenv\303\246rdierne for en diagonalmatrix stirrer p\303\245 os! Begge er positive, s\303\245 (0,0) er et egentligt lokalt minimum.H(2,1);Eigenvalues(%);Den ene egenv\303\246rdi er positiv, den anden negativ: (2, 1) er et saddelpunkt.H(-2,1);Eigenvalues(%);(-2, 1) er ogs\303\245 et saddelpunkt.Med brug af SecondDerivativeTest:with(Student[MultivariateCalculus]):SecondDerivativeTest(f(x,y), [x,y]=[[0,0],[2,1],[-2,1]], output=hessian);SecondDerivativeTest(f(x,y), [x,y]=[[0,0],[2,1],[-2,1]]);plot3d(f(x,y),x=-3..3,y=-1..2,axes=framed);contourplot(f(x,y),x=-3..3,y=-1..2,contours=40);Eksempel 9 fra noterne Hessekort (Eks. 15 fra Hesse)f:=(x,y)->(1+2*x+2*y-2*y^2)*exp(-x^2-2*x*y-2*y^2);f1:=diff(f(x,y),x);f2:=diff(f(x,y),y);res:=solve({f1=0,f2=0},{x,y});Vi ser, at f har 4 station\303\246re punkter:pkt:=map(subs,[res],[x,y]);with(LinearAlgebra):Hesse:=VectorCalculus[Hessian]:H:=unapply(Hesse(f(x,y),[x,y]),x,y):H(op(pkt[1]));Eigenvalues(%);H(op(pkt[2]));Eigenvalues(%);H(op(pkt[3]));Eigenvalues(%);H(op(pkt[4]));Eigenvalues(%);plot3d(f(x,y),x=-2..2,y=-2..2,axes=boxed);Med brug af SecondDerivativeTest:with(Student[MultivariateCalculus]):
SecondDerivativeTest(f(x,y), [x,y]=pkt, output=hessian);SecondDerivativeTest(f(x,y), [x,y]=pkt);Eksempel 17 fra noterne Hessef:=(x,y,z)->12*(y+z^2)*exp(-x)+8*y*z^3+5*y^4;fx:=diff(f(x,y,z),x);fy:=diff(f(x,y,z),y);fz:=diff(f(x,y,z),z);De station\303\246re punkter:solve({fx=0,fy=0,fz=0},{x,y,z});R\303\270dderne i LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2I1EhRictRiM2KEYrLUYjNiMtSSVtc3VwR0YkNiUtRiw2JVEjX1pGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtbkdGJDYkUSIyRicvRj1RJ25vcm1hbEYnLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJy1JI21vR0YkNi1RIitGJ0ZDLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZOLyUpc3RyZXRjaHlHRk4vJSpzeW1tZXRyaWNHRk4vJShsYXJnZW9wR0ZOLyUubW92YWJsZWxpbWl0c0dGTi8lJ2FjY2VudEdGTi8lJ2xzcGFjZUdRLDAuMjIyMjIyMmVtRicvJSdyc3BhY2VHRmduRjZGSC1GQDYkUSIxRidGQ0Yr er imagin\303\246re, s\303\245 de er uinteressante i denne sammenh\303\246ng. Eneste station\303\246re punkt er alts\303\245 (0, -1, 1).Vi definerede Hesse i forrige opgave Hesse:=VectorCalculus[Hessian]. Det beh\303\270ver vi ikke g\303\270re igen, men selvf\303\270lgelig skal H omdefineres:H:=unapply(Hesse(f(x,y,z),[x,y,z]),x,y,z):H(x,y,z);H(0,-1,1);Egenv\303\246rdierne er ikke k\303\270nne:Eigenvalues(%);Vi finder en decimalbr\303\270ksversionevalf[20](%);og fjerner sm\303\245 led:map(fnormal,%);simplify(%);Alternativt kunne vi finde egenv\303\246rdierne for en decimalbr\303\270ksversion af H(0,-1,1):simplify(Eigenvalues(evalf(H(0,-1,1))));Konklusionen er, at (0,-1,1) er et saddelpunkt!Det afsl\303\270res ogs\303\245 af determinanten og sporet, at punktet er et saddelpunkt:Determinant(H(0,-1,1));Da determinanten er negativ og da determinanten er produktet af egenv\303\246rdierne, m\303\245 enten 1 eller 3 egenv\303\246rdier v\303\246re negative. Vi kigger p\303\245 sporet: Trace(H(0,-1,1));Sporet er positivt, s\303\245 egenv\303\246rdierne kan ikke alle v\303\246re negative. Vi konkluderer, at pr\303\246cis \303\251n er negativ og de to andre er positive.SecondDerivativeTest(f(x,y,z), [x,y,z]=[0,-1,1], output=hessian);SecondDerivativeTest(f(x,y,z), [x,y,z]=[0,-1,1]);Eksempel 18 fra noterne Hessef:=(x,y,z)->(1-2*y^2+z)*exp(-x^2-y^2-z^2);fx:=diff(f(x,y,z),x);fy:=diff(f(x,y,z),y);fz:=diff(f(x,y,z),z);For at undg\303\245 RootOf-udtryk s\303\246tter vi_EnvExplicit:=true:res:=solve({fx=0,fy=0,fz=0},{x,y,z});Vi ser, at f har 4 station\303\246re punkter:pkt:=map(subs,[res],[x,y,z]);ADVARSEL: Der er ingen garanti for, at punkterne kommer i samme r\303\246kkef\303\270lge som da jeg skrev dette worksheet. Af hensyn til den tekst, der f\303\270lger, vil vi sortere de station\303\246re punkter leksikografisk.F\303\270rst laver vi en procedure, der skal virke sammen med sort: LEX:=proc() local k,s,t;
s,t:=evalf(args);
for k to nops(s) do
if s[k]<t[k] then return true elif s[k]>t[k] then return false end if
end do;
true
end proc: pktsort:=sort(pkt,LEX);Igen bruger vi den tidligere definerede Hesse:=VectorCalculus[Hessian]:H:=unapply(Hesse(f(x,y,z),[x,y,z]),x,y,z):Hesse-matricen i det f\303\270rste sorterede station\303\246re punkt (decimalbr\303\270ksversion):evalf(H(op(pktsort[1])));simplify(Eigenvalues(%));Alts\303\245 er f\303\270rste punkt et egentligt lokalt minimumspunkt.evalf(H(op(pktsort[2])));I en diagonalmatrix st\303\245r egenv\303\246rdierne i diagonalen: Andet punkt er et saddelpunkt.evalf(H(op(pktsort[3])));I en diagonalmatrix st\303\245r egenv\303\246rdierne i diagonalen: Tredie punkt er et egentligt lokalt maksimumspunkt.evalf(H(op(pktsort[4])));simplify(Eigenvalues(%));Alts\303\245 er fjerde punkt ligesom det f\303\270rste ogs\303\245 et egentligt lokalt minimumspunkt.SecondDerivativeTest(f(x,y,z), [x,y,z]=pktsort);Bem\303\246rkning 26 fra noterne Hessef:=(x,y)->exp(2*y)-2*(x^2-1)^2*exp(y);fx:=diff(f(x,y),x);fy:=diff(f(x,y),y);solve({fx=0,fy=0},{x,y});(0,0) er alts\303\245 eneste station\303\246re punkt. Vi bruger den tidligere definerede Hesse-procedure:H:=unapply(Hesse(f(x,y),[x,y]),x,y):H(x,y);H(0,0);Vi ser, at (0,0) er et egentligt lokalt minimumspunkt. V\303\246rdien af f i (0,0) erf(0,0);Dette minimum er imidlertid ikke globalt, hvilket f.eks. ses s\303\245ledes:f(x,0);limit(%, x=infinity);plot3d(f(x,y),x=-2..2,y=-3..3,axes=framed);contourplot(f(x,y),x=-1.5..1.5,y=-3..1,contours=40);