Denna session behandlar derivering.
Maple är ett språk som behärskar
automatisk formelbehandling bl.a i form av symbolisk derivering
av funktionsuttryck med avseende på en viss specificerad variabel.
Variabler/parametrar som inte skall deriveras med avseende på behandlas som konstanter.
Detta betyder att Maple har en betydande algebraisk räknefärdighet,
vilket illustreras i vårt första exempel:
> restart;
Vi definierar ett lagom komplicerat funktionsuttryck som innehåller ett antal parametrar.
> f:=(a*x+b)/sqrt(A*x^2+B*x+C);
Deriveringskommandot i Maple heter 'diff' där första argumentet anger det uttryck som deriveras och det andra den variabel som deriveras med avseende på.
> df:=diff(f,x);
Andraderivatan erhålls lätt genom ytterligare ett x i tredje argumentet:
> d2x:=diff(f,x,x);
Uttrycket sväller efter varje derivering och det är lämpligt att låta Maple
försöka förenkla det.
Kommandot 'simplify' lyckas här sätta uttrycket på gemensamt bråkstreck.
> d2xs:=simplify(d2x);
Nästa exempel visar hur Maple klarar av implicit derivering och också hur implicit definierade funktioner kan plottas.
Vi definierar följande kurva, tredjegradsuttryck både i x och y och alltså inte så lätt att uttrycka explicit som en funktion y=y(x).
> k:=x^3+y^3-2*x*y;
En sådan kurva kan plottas med kommandot 'implicitplot'.
Observera att ett extra plottbibliotek måste laddas med 'with(plots)'.
Här är angivande av x-intervall och y-intervall obligatoriskt.
'numpoints=2000' har lagts till för att få tättare plottningspunkter
på kurvan vilket gör kurvan jämnare.
'numpoints=200' är default-värde.
>
with(plots):
implicitplot(k,x=-3..3,y=-3..3,numpoints=2000);
Kommandot 'implicitdiff' deriverar ett flervariabeluttryck med avseende på den
variabel som anges i tredje positionen
bland argumenten.
Den variabel som betraktas som en funktion av denna variabel anges i andra positionen.
Här nedan deriveras alltså med avseende på x i ekvationen k = 0,
där
y betraktas som en funktion av x.
Kommandot åstadkommer också att derivatan y' löses ut explicit.
kyx, som definieras nedan , är alltså just y'.
> kyx:=implicitdiff(k,y,x);
Vi vill finna den punkt där kurvans tangent är vågrät och försöker därför
hitta derivatans 0-ställen.
(Lägg märke till att vi därför låter Maple söka lösningen till ekvationssystemet
kyx=0 och k=0 i termer av x och y.):
> s1:=solve({kyx=0,k=0},{x,y});
Här misslyckas Maple faktiskt med detta, varför vi hjälper till genom
att själva observera att ekvationen y' = 0 (kyx = 0) leder till
y = (3/2)x2.
Detta sätts nu in i ekvationen k = 0 med kommandot 'eval':
> K:=eval(k,y=3*x^2/2);
Nu borde det gå bättre att lösa ekvationen i termer av x:
> s2:=solve(K,x);
OK, 6 st- rötter kan tyckas mycket, men x=0 är en tredubbel rot
(vågrät tangent i origo för en kurvgren)
och två är komplexa.
Den intressanta roten är tydligen den fjärde, som vi
evaluerar som decimalbråk:
> x1:=evalf(s2[4]);
Detta värde tycks stämma med läget för en vågrät tangent på kurvans ögla.
ÖvningGör egna explicita och implicita deriveringar i anslutning till Exemplen 1 och 2.
1. Derivera exempelvis b. g(x) = (ax)bx.
c. h(x) = |x2 - 1| + |x-2|.
2. Kurvan (x2 + y2)2 = 4(x2-y2) Svar: x= (3/2)1/2, y = (1/2)1/2. |