Osittaisderivaattoja L/osder.mws

L ke-to 13-14.2.02 HA

Pystyleikkaustasoja

> restart:

Warning, the name changecoords has been redefined

> with(plots): setoptions3d(axes=BOXED):

> tasoleikkxz:=(f,y0,vali::range)->spacecurve([x,y0,f(x,y0)],x=vali):

> f:=(x,y)->x^2-y^2;

f := proc (x, y) options operator, arrow; x^2-y^2 e...

> tasoleikkxz(f,1,-2..2);

[Maple Plot]

> tasoxz:=(y0,valix::range,valiz::range)->plot3d([x,y0,z],x=valix,z=valiz,grid=[5,5]):

> display(tasoleikkxz(f,1,-2..2),tasoxz(1,-2..2,-1..3),style=wireframe);

tangxz:=(f,x0,y0,xvali::range)->spacecurve([_x,y0,f(x0,y0)+D[1](f)(x0,y0)*(_x-x0)],_x=op(1,xvali)..op(2,xvali),color=red,thickness=2):

[Maple Plot]

> plot3d(f(x,y),x=-2..2,y=0..2);

[Maple Plot]

> display(tangxz(f,1,1,-1..3),tasoleikkxz(f,1,-3..3),tasoxz(1,-3..3,-4..7),style=wireframe,labels=[x,y,z]);

[Maple Plot]

> display(tangxz(f,1,1,-1..3),tasoleikkxz(f,1,-3..3),tasoxz(1,-3..3,-4..7),plot3d(f(x,y),x=-2..3,y=-1..2),style=hidden,labels=[x,y,z]);

[Maple Plot]

> display(%,style=patchcontour);

[Maple Plot]

Osittaisderivaattojen laskeminen

Maple:ssa on kaksi derivointifunktiota: 1) diff ja 2) D .

Edellinen operoi lausekkeeseen ja palauttaa lausekkeen. Jälkimmäisen argumenttina on funktio ja se palauttaa

derivaatatfunktion. Edellinen sopii symbolisen lausekkeen käsittelyyn. Jälkimmäinen on kätevä, kun halutaan

laskea derivaatan arvoja annetuissa pisteissä.

Esim

Aluksi lauseketyyli.

> f:=sqrt(x+y^2); # Käsitellään lausekkeena.

f := sqrt(x+y^2)

> fx:=diff(f,x); fy:=diff(f,y);

fx := 1/2*1/(sqrt(x+y^2))

fy := 1/(x+y^2)^(1/2)*y

Lasketaan arvot pisteessä (0,2)

> simplify(subs(x=0,y=2,fx)); simplify(subs(x=0,y=2,fy));

1/4

1

Käsitellään nyt funktiotyylillä:

> f:=(x,y)->sqrt(x+y^2);

f := proc (x, y) options operator, arrow; sqrt(x+y^...

> f1:=D[1](f);f2:=D[2](f);

f1 := proc (x, y) options operator, arrow; 1/2*1/sq...

f2 := proc (x, y) options operator, arrow; y/sqrt(x...

> f1(0,2);f2(0,2);

1/4

1

Esimerkiksi tangentin yhtälö on hyvin kätevää muodostaa funktiotyylillä, kts. tangxz .

Korkeammat derivaatat

> f:=x*exp(z)*arctan(y/x); # Käsitellään lausekkeena

f := x*exp(z)*arctan(y/x)

> fx:=diff(f,x): fx:=map(simplify,%);

fx := exp(z)*arctan(y/x)-x*exp(z)*y/(x^2+y^2)

> fy:=simplify(diff(f,y));

fy := exp(z)*x^2/(x^2+y^2)

Voidaan jatkaa tästä derivointia. Maplen diff ottaa argumentikseen jonon derivoimismuuttujia. Siten voidaan suoraan laskea tähän tapaan:

> fxy:=simplify(diff(f,x,y));

fxy := 2*x*exp(z)*y^2/(x^2+y^2)^2

> fyx:=simplify(diff(f,y,x));

fyx := 2*x*exp(z)*y^2/(x^2+y^2)^2

Samat näkyvä olevan!

Detivoidaan koko röykkiö (eräs 7. derivaatta)

> simplify(diff(f,x,z,x,y,z,y,x)); # 3 x:ää, 2 y:tä, 2 z:aa.

48*exp(z)*y*x*(x^4-5*x^2*y^2+2*y^4)/(x^2+y^2)^5

> simplify(diff(f,x,x,x,y,y,z,z));

48*exp(z)*y*x*(x^4-5*x^2*y^2+2*y^4)/(x^2+y^2)^5

Sama tuli, kun järjestettin uudestaan.

Tehdään vielä operaattorityylillä:

> F:=(x,y,z)->x*exp(z)*arctan(y/x);

F := proc (x, y, z) options operator, arrow; x*exp(...

> D[1,1,1,2,2,3,3](F)(x,y,z): simplify(%);

48*exp(z)*y*x*(x^4-5*x^2*y^2+2*y^4)/(x^2+y^2)^5

Ketjusääntö

> f:=sqrt(u(x,y)^2 + v(x,y)^2);

f := sqrt(u(x,y)^2+v(x,y)^2)

> diff(f,x);diff(f,y);

1/2/(u(x,y)^2+v(x,y)^2)^(1/2)*(2*u(x,y)*diff(u(x,y)...

1/2/(u(x,y)^2+v(x,y)^2)^(1/2)*(2*u(x,y)*diff(u(x,y)...

>

Maple osaa soveltaa ketjusääntöä ainakin yksinkertaisessa tapauksessa. Tietenkin se osaa soveltaa sitä yleisessäkin tapauksessa.

Lopetan nyt toistaiseksi tähän. Jos jatkoa seuraa, niin menköön työarkille osder2.mws. (13.2.02)