Matematisk analys, laboration II Per Jönsson Teknik och Samhälle, Malmö Högskola
Viktig information om laborationerna I analyskursen ingår tre obligatoriska laborationer. Under laboration används Matlab/GNU Octave och under laboration och 3 datoralgebrasystemet Maxima. För att bli godkänd krävs att alla tre laborationerna har redovisats på ett godtagbart sätt. Vid laborationerna gäller följande: Laborationsuppgifterna (och eventuella förberedelseuppgifter) skall vara gjorda innan man kommer till laborationen (du är alltså tvungen att sitta hemma eller i datorsal före laborationen och göra uppgifterna samt förbereda dig). Har du stött på problem med uppgifterna kan du komma till frågetimmarna innan laborationen. Under laborationen skall uppgifterna redovisas. Under laborationen kan du även få hjälp med något moment du inte har lyckats få rätt på hemma. Studenter som inte har förberett uppgifterna när de kommer till laborationen underkänns. Vid laborationstillfälle redovisas laboration, vid laborationstillfälle redovisas laboration. Man kan t.ex. inte utebli under laboration och sedan redovisa laboration och vid laborationstillfälle. Det går inte att byta laborationsgrupp under kursens gång. Om man inte kan närvara på en laboration på grund av sjukdom så måste detta anmälas snarast till kursledaren. För de som har anmält frånvaro på grund av sjukdom till kursledaren finns ett reservtillfälle i slutet av kursen då man kan redovisa laborationer man missat. Endast studenter som har meddelat frånvaro till kursledaren på grund av sjukdom bereds plats vid reservtillfällena. Reglerna ovan tolkas strikt och är till för att få laborationsmomentet att fungera praktiskt och underlätta er egen planering Användning av Maxima Maxima är ett så kallat datoralgebrasystem (computer algebra system CAS). För att ladda ner Maxima går man in på http://maxima.sourceforge.net/. På sidan finns även omfattande dokumentation till programmet på flera olika språk. Installationen på Windows självförklarande. För MAC finns instruktionsfilm på it slearning. I datoralgebraprogram utför man operationer på symboler som representerar matematiska objekt. De matematiska objekten kan vara formler, ekvationer, funktioner och så vidare. Operationerna sker i enlighet med kända algebraiska lagar och regler. Exempel på datoralgebraiska operationer är sådana som beräknar derivatan av en funktion d sin x ex dx eller som löser en differentialekvation y + y = te t, y(0) =.
Skriv in kommandon i Maxima Maxima startas genom att dubbelklicka på ikonen med texten wxmaxima. Vid starten kommer ett fönster, vilket är illustrerat överst i figur, att öppnas. Fönstret är Maximas arbetsfönster och har flera olika funktioner. För att använda Maxima börja med att trycka ner Enter-tangenten så att en inmatningspil --> kommer fram i Maximas arbetsfönster. Skriv in kommandot efter inmatningspilen. I vårt fall vill vi derivera x sin(x) och skriver in kommandot diff(x*sin(x),x). Kommandot utförs sedan genom att trycka ner Shift-tangenet och sedan Enter-tangenten varvid Maxima returnerar en svarsutskrift. Figur : Maximas arbetsfönster. Kommandon skrivs efter inmatningspilen och utförs genom att trycka ner Shift-tangenet och sedan Enter-tangenten. Kommandon kan även ges genom att använda rullgardinsmenyerna. 3
3 Räkning med tal Maxima har fem aritmetiska operatorer. Dessa är i prioritetsordning ˆ5 potens (upphöjt till) prioritet * multiplikation prioritet / division prioritet + addition prioritet 3 - subtraktion prioritet 3 Då två operatorer har samma prioritetsordning utförs beräkningarna från vänster till höger. Maxima ger exakta svar (och ej decimaltal) vid räkning med heltal och rationella tal. Kommandot för kvadratrötter är sqrt. Kvadratrötter för heltal och rationella tal representeras alltid på enklast möjliga form. Förutom att räkna exakt kan Maxima också göra numeriska approximationer och ge uttryck som flyttal genom användning av kommandot float. Tal och uttryck kan lagras i identifierare (variabler) på följande sätt namn : uttryck Observera hur vi använde kolon och inte likhetstecken för att tilldela identifieraren ett värde. Exempel. (a) För att beräkna 3 skriver vi *3^ Eftersom ^ har högst prioritet börjar Maxima med att beräkna 3^. Sedan följer multiplikation med och Maxima svarar 8 (b) Division och multiplikation har samma prioritet. Då vi skriver /*3 börjar Maxima från vänster och beräknar / sedan följer multiplikation med 3, vilket ger svaret 3 För att undvika missförstånd bör man sätta ut parenteser och skriva talet som (/) 3 Exempel. (a) För att beräkna 5 8 + 7 och lagra i identifieraren f skriver vi 4
vilket ger f : 5/8 + /7 - / 589 68 För att få fram talet i decimalform skriver vi float(f) och Maxima svarar 3.505953809538 (b) Uttrycket fås genom ( + 5/) (3/ 7/5) ( + 5/)/(3/ - 7/5)^ med resultatet 350 (c) Talet (5/) 7 beräknas genom (5/)^7 och Maxima spottar ur sig svaret 5807660934674076565 307 Exempel 3. (a) Talet 56 beräknas genom vilket ger sqrt(56) 4 För att få fram svaret har Maxima konstaterat att 56 = 4 4 = 4. (b) Betrakta det lite mera komplicerade rotuttrycket 0 6 4 Då vi skriver in kommandot sqrt(0)*sqrt(6)/sqrt(4) ger Maxima svaret 5 5
4 Fördefinierade konstanter och symboler I Maxima finns bland annat följande fördefinierade konstanter och symboler. %pi π 3.459. %e, exp() e.788 (basen för naturliga logaritmen). %i, imaginära enheten. inf positiva oändligheten. minf negativa oändligheten. Maxima känner till exakta regler för en rad operationer med π och e. Symbolerna för oändlighet används bland annat vid beräkning av gränsvärden. Exempel 4. (a) Då vi skriver varde : cos(%pi/4) returnerar Maxima (b) För att få det numeriska värdet för / skriver vi float(varde) vilket ger värdet med 4 värdesiffror 0.70706788655 (c) Då vi beräknar naturliga logaritmen av e log(%e) får vi svaret 6
5 Funktioner Maxima har ett antal standardfunktioner. abs(x) ger absolutbeloppet x. sqrt(x) ger kvadratroten x. exp(x) ger exponentialfunktionen e x. log(x) ger naturliga logaritmen ln(x). sin(x) ger sin(x) där x måste vara i radianer. cos(x) ger cos(x) där x måste vara i radianer. tan(x) ger tan(x) där x måste vara i radianer. cot(x) ger cot(x) där x måste vara i radianer. asin(x) ger arcsin(x). acos(x) ger arccos(x). atan(x) ger arctan(x). atan(y,x) ger vinkeln mellan vektorn (x, y) och x-axeln. Förutom alla räkneregler som gäller för funktionerna så känner Maxima även till speciella värden som sin(π/4) = / och så vidare. För att beräkna en funktion för ett givet värde på x eller någon parameter kan vi också skriva funktionsuttrycket följt av värdena på x och parametrarna på samma rad. Funktioner plottas enkelt med kommandot plotd. Exempel 6. (a) För att beräkna tan(π/3) skriver vi och får 3 tan(%pi/3) (b) Vi kan beräkna ln(e ) genom och får log(%e^) (c) Drar vi roten ur det negativa talet 4 sqrt(-4) svarar Maxima i vilket ska tolkas som det imaginära talet i. (d) I många fall får man det inskrivna i retur då detta är den enklaste representationen av funktionsvärdet. Skriver vi 7
sin() så får vi bara samma funktion i retur sin() Det finns inget enklare sätt att representera funktionsvärdet. (e) För att beräkna värdet av funktionen f(x) = sin(x) cos(x) då x = π/4 skriver vi sin(*x)*cos(x), x= %pi/4 och får svaret Exempel 7. (a) För att plotta funktionerna f(x) = e x och g(x) = e x i intervallet [ 3, 3] ger vi kommandot plotd([exp(x),exp(-x)],[x,-3,3]) vilket ger plotten till vänster i figur. (b) Betrakta funktionen f(x) = a sin(bx c). Följande kommando plottar funktionen i intervallet [ 5, 5] för a = 3, b = och c = plotd(a*sin(b*x-c),[x,-5,5]),a=3,b=,c= Det går också bra att lagra funktionen i en identifierare och sen anropa plotrutinen på följande sätt f : a*sin(b*x-c) plotd(f,[x,-5,5]),a=3,b=,c= Plotten visas till höger i figur. 5 3 0 5 0 5 0 0 3 0 3 x 3 5 0 5 x Figur : Två funktionsplottar i Maxima. 8
6 Omskrivning av uttryck I problemlösning använder man ofta kända algebraiska lagar för skriva om ett eller flera uttryck till lämpligare form. Vad som är lämpligare form beror på det aktuella problemet. En form som är enkel och funktionell i ett sammanhang behöver inte nödvändigtvis vara det i ett annat. Nedan följer ett antal användbara kommandon. expand collectterms factor partfrac gfactor ratsimp fullratsimp trigsimp trigexpand trigreduce skriver ett symboliskt uttryck som en summa av produkter. skriver ett symboliskt uttryck i termer av potenser i en variabel. faktoriserar ett uttryck i reella faktorer. Om uttrycket är ett heltal fås en uppdelning i primfaktorer. partialbråksuppdelar ett uttryck. faktoriserar ett uttryck i komplexa faktorer. förenklar rationella uttryck och funktioner som har rationella uttryck som argument. använder ratsimp upprepade gånger. förenklar ett trigonometriskt uttryck med användning av bland annat den trigonometriska ettan sin x + cos x =. använder trigonometriska formler för att utveckla uttryck av typen sin(x + y). skriver om produkter och potenser av sin och cos till en summa av termer vilka bara innehåller enskilda sin och cos. Exempel 8. (a) Polynomet (x + 3) 3 utvecklas genom expand((*x + 3)^3) och vi får svaret 8 x 3 + 36 x + 54 x + 7 (b) Det går också bra att lagra uttrycket i en identifierare och sedan ge kommandot expand. Så ger svaret f : (3*x + b)^ expand(f) 9 x + 6 b x + b (c) Vi utvecklar uttrycket (ax + b) + (a + b)x med f : expand((a*x+b)^ + (a+b)*x) Kommandot collectterms(f,x) 9
ger sedan uttrycket i termer av potenser i variabeln x och Maxima svarar a x + ( a b + b + a) x + b Exempel 9. (a) Vi ska faktorisera t 3 t 5t + 6 och skriver factor(t^3-*t^-5*t+6) Maxima svarar (t 3) (t ) (t + ) (b) För att faktorisera x 4 i reella faktorer ger vi kommandot factor(x^4-) och får svaret (x ) (x + ) ( x + ) Faktorisering i komplexa faktorer fås genom gfactor(x^4-) med resultatet (x ) (x + ) (x i) (x + i) (c) Notera att faktorisering endast görs över rationella tal. Vi kommer alltså inte att få faktoriseringar av typen x = (x + )(x ) och då vi skriver factor(x^-) lämnar Maxima uttrycket obearbetat. (d) Det går bra att faktorisera summor av rationella uttryck. Till exempel fås faktoriseringen av x 3 + 3y x y + 3 genom att skriva factor((x^3+3*y^)/(x^-y^) + 3) Maxima returnerar x (x + 3) (y x) (y + x) (e) Vi har uttrycket 3x + 9 + x x 9 x 6. Följande kommando skriver uttrycket på gemensam nämnare 0
ratsimp(/(3*x+9) + x/(x^-9) - /(*x-6)) Maxima svarar 7 6 x + 8 Exempel 9. (a) Det trigonometriska uttrycket sin(x + y) utvecklas genom vilket ger p : trigexpand(sin(*x+y)) cos ( x) sin y + sin ( x) cos y Uttrycket kan expanderas ytterligare och då vi skriver q : trigexpand(p) får vi ( cos x sin x ) sin y + cos x sin x cos y (b) För att skriva uttrycket sin 3 (x) cos (x) i termer av enkla sin och cos ger vi kommandot trigreduce(sin(x)^3 - cos(x)^) och vi får följande svarsutskrift 3 sin x sin (3 x) 4 cos ( x) 7 Ekvationer Maxima kan lösa enklare ekvationer och ekvationssystem analytiskt. solve(ekv,x) löser ekvationen med avseende på x. solve([ekv,ekv,..], löser ekvationssystemet med avseende [x,x,...]) på variablerna x, x,.... Om exakta symboliska lösningar inte kan bestämmas returneras kommandot obehandlat. Exempel 0. (a) Andragradsekvationen x = x löses genom solve(x^=*x-,x)
och Maxima svarar [x = %i, x = %i + ] Vi har fått två komplexa lösningar i och i +. (b) För att lösa ekvationen e kt = med avseende på t ger vi kommandot solve(*exp(-k*t)=,t) Maxima returnerar [ t = log ] k För att verifiera att detta verkligen är en lösning sätter vi in det i uttrycket på följande sätt *exp(-k*t)), t=log()/k och Maxima ger värdet. (c) Det går bra att lagra en ekvation i en identifierare och sedan ge kommandot solve. För att lösa ut κ ur uttrycket T T = ( P P ger vi kommandona ) κ κ ekv : T/T = (P/P)^((k-)/k) solve(ekv,k) varvid Maxima svarar ( ) log P P k = ( ) log T T log ( ) P P (d) Maxima är inte så användbart när man ska lösa trigonometriska ekvationer. Till exempel ger kommandot solve(sin(x)=/,x) svaret [ ] x = π 6 tillsammans med en varning att en del av lösningarna kan ha missats. (e) Ekvationen cos(x) = x har ingen analytisk lösning och då vi skriver solve(cos(x)-x=0,x)
returnerar Maxima uttrycket obearbetat. Exempel. (a) För att lösa ekvationssystemet x + 3y + 4z = 3 x y 3z = 5x 3y + z = med avseende på x, y och z skriver vi ek : *x + 3*y + 4*z = 3 ek : *x - *y - 3*z = ek3 : 5*x - 3*y + *z = solve([ek,ek,ek3],[x,y,z]) Maxima svarar då [[ x = 59 67, y = 45 67, z = 3 ]] 67 (b) För att lösa ekvationssystemet { ax + y = 3 x y = med avseende på x och y skriver vi solve([a*x+y=3,x-y=-],[x,y]) Maxima returnerar [[ x = a +, y = a + 3 ]] a + Från det givna uttrycket ser vi att lösning saknas precis då a =. 8 Uppgifter att redovisa Nedanstående uppgifter skall redovisas under laborationstillfället. Observera att uppgifterna skall göras hemma innan laborationen och att det är redovisning som gäller under laborationen. Maximakommandona som behövs för att lösa uppgifterna kopierar du till ett Worddokument eller liknande så att det går att följa vad du gjort. Klipp även in Maximas svarsutskrifter och eventuella plottar eller figurer. Du skall visa upp dokumentet med kommandon och svarsutskrifter för din laborationshandledare i samband med redovisningen. Du skall också vara beredd på att svara på frågor kring hur du har löst uppgifterna. Se till att svara på alla uppgifterna.. Beräkna 5 /7. Gör beräkningen med Maxima och för hand. 8. Vilket tal får du då du skriver 5^/? Förklara hur du tänker. Hur skriver du 5 /? 3
3. Beräkna 5 7 8 + 7. (a) Gör räkningarna för hand och se till att du använder den minsta gemensamma nämnaren då du sätter på gemensamt bråkstreck. (b) Låt Maxima göra beräkningen 4. Beräkna följande värden exakt: (a) cos(π/6), (b) tan( 3π/4). 5. Plotta y = ln(x) och y = log 0 (x) i intervallet [, 0]. Ledning: log 0 (x) = ln(x)/ ln(0). 6. Bestäm vinkeln mellan vektorn (3, ) och x-axeln. Ge värdet som ett flyttal. 7. Skriv om följande uttryck som ett polynom i x ( x a ) ( x b b ) ( x c c ) a 8. Multiplicera de två polynomen f(x) = x 4 + 4x 3 7x + 0x och g(x) = x 5x + 3 och förenkla resultatet. 9. Utveckla (a) (x + 3)(x 3) (x + 3) (b) (3x + 5) (3x 5) 0. Utveckla följande uttryck (a) sin(x + y) i termer av sin(x), sin(y), cos(x) och cos(y) (b) sin(3x) i termer av sin(x) och cos(x). Faktorisera följande uttryck (a) x 4 + 4x 3 + 6x + 4x + (b) x 7x + xy 7y. Förenkla (a) 3x + 9 + x x 9 x 6 (b) x+ + x x x+ 3. Lös följande ekvationer. (a) y 0 = y 0e kt. (b) x 3 + x 4 5x 8 + 8 = 0. (c) x + x + = 3. 4. Lös följande ekvationssystem. { 3x + 8y + z = 3x + 8y = 5 (a) (b) x 4y + z = 0 x 5y = 3 5x y + 7z = 4 4