> restart;
> with(plots):
> f:=(x,y)->-cos(9*x/10)*sin(6*y/10);
Stacionarni body
hledani stacionarnich bodu pomoci prvni nulove derivace
> cp:=solve({diff(f(x,y),x)=0, diff(f(x,y),y)=0}, {x,y});
> pom:=z=-cos(9*x/10)*sin(6*y/10);
> cp[1][2];
zjisteni z souradnice stacionarnich bodu
> for i from 1 to 3 do
> vys[i][2]:=solve(cp[i][2],y):
> vys[i+3][2]:=solve(cp[i][2],y):
> vys[i+2*3][2]:=solve(cp[i][2],y):
>
> vys[i][1]:=solve(cp[i][1],x)-(10*Pi/9):
> vys[i+3][1]:=solve(cp[i][1],x):
> vys[i+2*3][1]:=solve(cp[i][1],x)+(10*Pi/9):
>
> vys[i][3]:=solve(eval(eval(pom,cp[i][1]),cp[i][2]),z):
> vys[i+3][3]:=solve(eval(eval(pom,cp[i][1]),cp[i][2]),z):
> vys[i+2*3][3]:=solve(eval(eval(pom,cp[i][1]),cp[i][2]),z):
>
> vysledek[i]:=[vys[i][1],vys[i][2],vys[i][3]]:
> vysledek[i+3]:=[vys[i+3][1],vys[i+3][2],vys[i+3][3]]:
> vysledek[i+2*3]:=[vys[i+2*3][1],vys[i+2*3][2],vys[i+2*3][3]]:
>
> if (i=2) then
> vysledek[i]:=[vys[i][1],vys[i+1][2],vys[i][3]]:
> vysledek[i+2*3]:=[vys[i+2*3][1],vys[i+2*3+1][2],vys[i+2*3][3]]:
> else if (i=3) then
> vysledek[i]:=[vys[i][1],vys[i-1][2],vys[i][3]]:
> vysledek[i+2*3]:=[vys[i+2*3][1],vys[i+2*3-1][2],vys[i+2*3][3]]:
> fi;
> fi;
sekvence vykresleni stacionarnich bodu
> seqq[i]:=pointplot3d({vysledek[i]},symbolsize=40,symbol=circle,color=blue):
> seqq[i+3]:=pointplot3d({vysledek[i+3]},symbolsize=40,symbol=circle,color=blue):
> seqq[i+2*3]:=pointplot3d({vysledek[i+2*3]},symbolsize=40,symbol=circle,color=blue):
> seqqq:=[seqq[1],seqq[2],seqq[3],seqq[4],seqq[5],seqq[6],seqq[7],seqq[8],seqq[9]]:
> od:
> body:=display(seqqq,insequence=true):
vykresleni textu
> tx:=textplot3d([-4,0,1.2,`stacionární body`],font=[TIMES,BOLD,20],color=blue):
vykresleni funkce
> fce:=plot3d(f(x,y),x=-6..6,y=-5..5, style=patchnogrid, light=[40,30,1,1,1], orientation=[-103,90],axes=box):
vykresleni vysledne animace
> display(fce,body,tx,view=[-6..6,-5..5,-1.2..1.5]);
Lokalni extremy
cast funkce s lokalnim minimem, inflexnim bodem a lokalnim maximem
> seq2:=[
plot3d(f(x,y),x=1..3,y=-2.5..2.5,orientation=[143,114]),
> plot3d(f(x,y),x=-2..2,y=-5..0,orientation=[46,119]),
> plot3d(f(x,y),x=-2..2,y=0..5, orientation=[-77,115])
> ]:
sekvence zobrazeni textu
> seq2t:=[
> textplot3d([1,3,1,`sedlo`],font=[TIMES,BOLD,20],color=blue),
> textplot3d([3,-2,1,`lokální maximum`],font=[TIMES,BOLD,20],color=blue),
> textplot3d([-2,0,1,`lokální minimum`],font=[TIMES,BOLD,20],color=blue)
> ]:
> t:=display(seq2t,insequence=true):
> m:=display(seq2,insequence=true,lightmodel=light1,axes=none,style=patchcontour):
zobrazeni vysledne animace
> display(t,m);