Detta är en Maple-session med en hel del inströdda kommentarer.
Läs först igenom sessionen och försök därefter
köra en egen session i Maple,
exempelvis i anslutninmg
till de övningsförslag som kommer sist i detta
dokument.
Börja gärna Maple-sessionen med kommandot 'restart'.
Det kan komma till användning senare.
Avsluta med semikolon och <return>.
> restart;
Vi börjar med att definiera en funktion av x som vi kallar f.
Observera det sammansatta tecknet ': =' som alltid
används vid tilldelning av värden eller definitioner av olika slag.
> f:=1/(1+x^2);
Den blå utskriften ger möjlighet att kontrollera att funktionen är den avsedda.
Notera hur bråkstreck och 'upphöjt till' skrivs (i den röda texten).
Om du gör ett formellt fel, ex.vis glömmer ';' ger Maple ett felmeddelande.
Om du använder kolon ( : ) i.st.f. semikolon lagrar Maple kommandot utan att
ge någon blå utskrift.
Vi plottar nu funktionen f på x-intervallet [-3,3].
> plot(f,x=-3..3);
Här syns nu en funktionsgraf på det avsedda intervallet.
Observera att skalorna på x- och y-axlarna ofta är olika.
Detta kan man påverka genom att först klicka på plotten.
Då framträder en ram omkring koordinatsystemet med kvadratiska punkter i bl.a. hörnen.
Genom att föra visaren över punkterna på ramen
kan man flytta ramens kantlinjer och därmed förändra skalorna.
Visaren förändras till en dubbelpil ovanför de kvadratiska punkterna för att visa
att skaländringen är möjlig.
(Detta kan alltså utföras i Maple, inte här i webbläsaren).
Vi prövar nu att plotta flera funktioner i samma koordinatsystem.
Det är ofta intressant att införa en parameter i en funktion och sedan jämföra
graferna för olika parametervärden.
Vi definierar därför funktionen f1 som innehåller parametern 'a' och som
överensstämmer med f för a=1.
> f1:=a->a/(1+a^2*x^2);
Observera teckensekvensen ' a -> '.
Pilen '->' framställs av tecknen '-' och '>'.
Denna sekvens hade kunnat utelämnas men genom att ta med den definieras f1
som en explicit funktion av a, vilket innebär att beteckningar som f1(1), f1(2) osv,
kan användas.
f1(1) representerar den givna funktionen f1 med värdet a=1 insatt..
f1(1) är därmed en funktion av enbart x och kan alltså plottas.
Vi plottar nu funktionerna f(1/2), f1(1) och f1(2) i samma koordinatsystem
för att kunna jämföra dem.
Observera att dessa tre funktioner måste samlas i en vektor, som i
Maple skrivs som element i en hakparentes särskiljda av kommatecken.
( Kommandot 'color=[black,blue,red] påverkar grafernas färger.
Utan detta kommando färgas en av kurvorna gul, vilket ofta ger
svårläsliga plottar. )
> plot([f1(1/2),f1(1),f1(2)],x=-3..3, color=[black,blue,red]);
Man ser att f(1/2)-kurvan är svart, f(1)-kurvan är blå och f(2)-kurvan röd.
Med litet integralkalkyl visar man lätt att areorna mellan de tre kurvorna och x-axeln
är ändliga och identiska för samtliga kurvor (oavsett värde på a).
Vi återkommer till detta i Matematik II.
Vi testar nu ekvationslösning med kommandot 'solve':
> s1:= solve(f1(1/2)-f1(1)=0,x);
Observera att solvekommandot bara behöver en ekvation
( här: f1(1/2)-f1(1)=0 , som ju innehåller x ) och namnet på den variabel som
ska lösas ut ( här: x ).
Lösningarna är alltså x-koordinaterna för skärningspunkterna mellan den svarta
och den blå kurvan.
Notera också variabeln s1, som definieras som namnet på lösningen.
Detta namn kan sedan användas vid eventuell vidare behandling
av lösningarna.
Eftersom vi i detta fall har två lösningar blir s1 en vektor med två element.
Beteckningen s1[1] representerar den första lösningen (här: 'roten ur 2') och
s1[2] på den andra.
Vi kan exempelvis använda namnet för att få en decimalrepresentation av
lösningarna.
Här används lämpligen den ofta förekommande funktionen evalf:
> s2:=evalf(s1);
'evalf' kan alltså också användas på vektorer och ger i så fall komponenternas
decimalrepresentationer med 10 siffror.
Vill man ha fler siffror lägger man in det önskade antalet i evalf-funktionen.
Föjande kommando ger första lösningen (s1[1]) med 15 siffror:
> s3:=evalf(s1[1],15);
Vi övergår nu till en annan men likartad familj av kurvor som
också innehåller parametern a:
> g1:=a->a*exp(-a^2*x^2);
Samma plotkommando som förut med tre kurvor ger:
> plot([g1(1/2),g1(1),g1(2)],x=-3..3, color=[black,blue,red]);
Likheten med förra fallet är påtaglig.
Man ser dock att kurvorna för a=1 och 2 (blå och röd) här närmar sig
x-axeln snabbare för stora x.
Detta beror på att vi här har exponentialfunktioner i.st.f. rationella funktioner.
Vi söker nu som förut x-koordinaterna för skärningspunkterna mellan svarta och blåa kurvan:
> t1:=solve(g1(1/2)-g1(1)=0,x);
> t2:=evalf(t1);
Lösningarna ligger alltså nära +1 och -1 vilket tycks stämma med plotten.
Vi ger nu Maple ett mycket svårare problem, nämligen det att
hitta skärningspunkterna mellan f1(1)- och g1(2)-kurvorna.
Vi plottar till att börja med dessa två kurvor:
> plot([f1(1),g1(2)],x=-2..2);
Skärningspunkterna tycks ligga nära + och - 0.5 i x-led.
Men klarar Maple av att lösa ekvationen f1(1)-g1(2) = 0?
Ekvationen ser ju ut så här:
> f1(1)-g1(2)=0;
vilket är en transcendent ekvation, dvs. innehåller funktioner av olika
typ (här: rationella och exponentiella) .
Detta omöjliggör normalt symboliska lösningar (som när man löser
en allmän andragradsekvation).
Kan du lösa den?
Vi ser vad Maple gör:
>
u1:=solve(f1(1)-g1(2)=0,x);
Ja, det här är ett typiskt svar när det inte finns någon enkel lösning.
Man ser att Maple använder en speciell funktion, LambertW, för att
formulera lösningen.
Den behöver inte vi bekymra oss om i den här kursen.
Slutsatsen är istället: inga elementärt framställbara lösningar finns.
Av Maples fyra lösningar ser man att två är komplexa eftersom de innehåller den
komplexa storheten ' i ' . (Maple kallar den ' I ' )').
Men vi kan faktiskt få numeriska lösningar här m.hj.a. evalf:
> u2:=evalf(u1);
Här får man alla fyra, även de två komplexa som vi här kan bortse ifrån.
De två reella är tydligen nära +0.5 resp. -0.5 vilket stämmer med plotten.
Ett mer direkt sätt att få numeriska lösningar är att använda den numeriska
lösningsfumktionen fsolve.
Här måste man ange ett intervall inom vilket lösningen skall sökas.
Här söker vi inom intervallet [0,2]:
> u3:=fsolve(f1(1)-g1(2)=0,x=0..2);
Här får vi den positiva lösningen som alltså i stort sett överensstämmer med en av de
tidigare erhållna rötterna.
Därmed är första veckans Maple-session avslutad.
Läs först igenom den första delen av dessa allmänna Maple-tips. 1.Mata in en egen funktion och plotta den på ett lämpöigt intervall.
2. Mata in en parameterberoende funktion av typ h1:=a->H(x,a); där H(x,a) kan vara exa, sin(xa), ln(xa) och/eller arctan(xa). Studera hur parametern påverkar graferna och försök förstå varför.
3. Välj två ekvationer varav en bör gå att klara med solve (tredjegradsekvation eller lägre, ex.vis) och en transcendent ekvation (cos x = x el. liknande). Se vad som händer med solve och fsolve.
Använd evalf på solve-lösningen.
Plotta ekvationerna (dvs. vänsterledsfunktionen F, då ekvationen är F(x) = 0.)
|