Kriittiset pisteet, min/max 19.3.01 restart: with(linalg): with(LinearAlgebra): with(plots): Warning, the protected names norm and trace have been redefined and unprotected Warning, the assigned name GramSchmidt now has a global binding setoptions3d(axes=boxed,orientation=[-30,50]): #read("c:\134\134opetus\134\134maple\134\134v201.mpl"): #read("/home/apiola/opetus/peruskurssi/v2-3/201/maple/v201.mpl"); read("/p/edu/mat-1.414/maple/v201.mpl"):
<Text-field style="Heading 1" layout="Heading 1">Taylorin lause</Text-field> Taylorin lauseen johto Maplella: Olkoon (a,b) tason piste ja (h,k) lis\342\200\260ysvektori. N\342\200\260m\342\200\260 ovat koko tarkastelun ajan kiinteit\342\200\260. a:='a':b:='b':h:='h':k:='k':f:='f': F:=t->f(a+t*h,b+t*k); F(0),D(F)(0),expand((D@@2)(F)(0)); add((1/j!*expand((D@@j)(F)(0)),j=0..4)); Esim: Approksimoi funktiota f:=(x,y)->sqrt(x^2+y^3); 2. asteen Taylorin polynomilla. Arvioi sill\342\200\260 lukua. Virhearvio? 'sqrt('1.02'^2+'1.97'^3)'; Tapa 1: Puhdas "k\342\200\260sinlasku" f:=(x,y)->sqrt(x^2+y^3); p:=1,2: D1f:=D[1](f)(p);D2f:=D[2](f)(p); D11f:=D[1,1](f)(p);D12f:=D[1,2](f)(p);D22f:=D[2,2](f)(p); T2:=f(p)+D1f*h+D2f*k+1/2*D11f*h^2+D12f*h*k+1/2*D22f*k^2; T\342\200\260m\342\200\260 oli maanl\342\200\260heisin ja silti vaivaton, siis suositeltava. Emme malta olla tavoittelematta eleganssia: a:='a':b:='b':h:='h':k:='k':f:='f':F:=t->f(a+t*h,b+t*k); T2:=add((1/j!*expand((D@@j)(F)(0)),j=0..2));R2:=1/3!*expand((D@@3)(F)(Theta)); f:=(x,y)->sqrt(x^2+y^3); T2; subs(a=1,b=2,T2); T2:=simplify(%);#subs(a=1,b=2,R2): R2:=simplify(%); # J\342\200\260\342\200\260nn\313\206stermi\342\200\260 ei kannata prosessoida n\342\200\260in. Samahan siit\342\200\260 tuli! T\342\200\260ss\342\200\260 oli mm. se hienous, ett\342\200\260 emme tarvinneet mit\342\200\260\342\200\260n muuta tietoa Taylorista kuin yhden muuttujan tapauksen. Hiukan tuossa sai kokeilla oikeata komentoj\342\200\260rjestyst\342\200\260. No, jatketaan teht\342\200\260v\342\200\260\342\200\260: subs(h=.02,k=-.03,T2); tarkka:=f(1.02,1.97); %-%%; Varsin vaikuttava tarkkuus. K\342\200\260ytet\342\200\260\342\200\260n sitten valmista mtaylor-funktiota: f(x,y); mtaylor(f(x,y),[x=1,y=2],3);subs(x=1+h,y=2+k,%); Jostain kumman syyst\342\200\260 t\342\200\260m\342\200\260 kertoo 1. asteen termit auki ja j\342\200\260tt\342\200\260\342\200\260 toisen asteen termit kertomatta. Viime mainittu on luonnollinen muoto, tehd\342\200\260\342\200\260n se manuaalisesti subs:lla. Jottaiv\342\200\260t tavat loppuisi kesken: S:=taylor(sqrt(1+t),t,3); f(1+h,2+k); 3*subs(t=(2*h+h^2+12*k+6*k^2+k^3)/9,S);convert(%,polynom); simplify(%); Siin\342\200\260 tuli samantien korkammankin asteen termej\342\200\260.
<Text-field style="Heading 1" layout="Heading 1">Perusesimerkki min/max</Text-field> f:=(x,y)->x^3+y^3-3*x*y;g:=grad(f(x,y),[x,y]); solve({g[1]=0,g[2]=0},{x,y});allvalues(%[3]); hessian(f(x,y),[x,y]):H:=Matrix(%); H00:=subs(x=0,y=0,H);H11:=subs(x=1,y=1,H);eigenvectors(H00);om00:=Eigenvectors(H00); eigenvectors(H11);om11:=Eigenvectors(H11); display([plot3d(f(x,y),x=-0.3..0.3,y=-0.3..0.3,style=patchcontour),spacecurve([x,x,f(x,x)],x=-0.3..0.3,color=red,thickness=2),spacecurve([x,-x,f(x,-x)],x=-0.3..0.3,color=blue,thickness=2)]); display([plot3d(f(x,y),x=1-0.3..1+0.3,y=1-0.3..1+0.3,style=patchcontour),spacecurve([1+x,1+x,f(1+x,1+x)],x=-0.3..0.3,color=red,thickness=2),spacecurve([1+x,1-x,f(1+x,1-x)],x=-0.3..0.3,color=blue,thickness=2)]); Ominaisarvojen merkit voidaan m\342\200\260\342\200\260r\342\200\260t\342\200\260 my\313\206s det:n ja trace:n avulla 2:n muuttujan tapauksessa: djat:=[det(H),trace(H)];subs(x=0,y=0,djat);subs(x=1,y=1,djat); Pisteess\342\200\260 [0,0] det < 0, joten ominaisarvot erimerkkiset => satulapiste. Pisteess\342\200\260 [1,1] det > 0 ja trace > 0, joten ominaiservojen tulo > 0 ja summa > 0, joten ominaisarvot >0 => pos. def => min Huom! P\342\200\260\342\200\260ttelyt on teht\342\200\260v\342\200\260 ominaisarvojen kautta, vaikka ominaisarvoja ei laskettaisikaan. Syy: min\342\200\260 tulen huonovointiseksi (rupeaa aivastuttamaan), jos opetellaan vain ulkoa det/trace-ehtoja.
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">KRP-yht\342\200\260l\313\206n ratkaisu numeerisesti</Font></Text-field> (Harj. 8LV teht. 4. ) Todellisuudessa KRP-yht\342\200\260l\313\206systeemin ratkaisu onnistuu vain harvoin analyyttisesti. Numeerisen ratkaisijan fsolve k\342\200\260ytt\313\206 vaatii alkuarvojen tunnustelemista. 2 muuttujan tapauksessa piirtely on suureksi avuksi. T\342\200\260ss\342\200\260 v\342\200\260h\342\200\260n vihjett\342\200\260 #f:=(x,y)-> ...;g:=Vector(grad(f(x,y),[x,y])); H:=Matrix(hessian(f(x,y),[x,y])): KRPyht:=g[1]=0,g[2]=0: display(implicitplot(g[1]=0,x=0.5..2,y=0.5..2),implicitplot(g[2]=0,x=0.5..2,y=0.5..2,color=blue)): Kannattaa valita hiirell\342\200\260 alkuarvoja, jotka voi antaa fsolvelle tyylin: KRPa:=fsolve({KRPyht},{x=xa,y=ya});
<Text-field style="Heading 1" layout="Heading 1"></Text-field>