1 Worksheet et LinAlg1.mw (åbnes ve at trykke på trekanten ue til venstre) 1.1 Introuktion: Symbolske og Numeriske Beregninger i Maple (åbnes ve at...) Velkommen til ette første Maple-worksheet i LinAlg-kurset! Jeg startee me at lave et afsnit (Insert-menu: Setion), skrive overskriften Worksheet et LianAlg1.mw... og lave et introuerene unerafsnit (Insert-menu: Subsetion). I ette afsnit har jeg nu (via Insert-menu: Text) fået skrivet lit tekst og vil nu (via Insert-menu: Maple-input) skrive noget input til Maple og trykke på Enter: (Tryk selv Enter lige efter e røe Maple-inputs i ette worksheet!!) a*(1/a)-1; 0 OK, af et blå Maple-output, ser vi altså, at Maple ikke behøver at kene a s væri for at fine u af, at et skrevne utryk kan evalueres til 0. Hva me: (aˆ2 - bˆ2)/(a - b); a 2 b 2 a b OK, Maple er åbenbart for oven til at simplifiere ette utryk ti a + b. La os erfor tvinge Maple til at lee i sine mange simplifikationsregler: simplify((aˆ2 - bˆ2)/(a - b)); a + b Det hjalp! Vi bemærker, at Maple svarer me blåt output, når vi skriver semikolon(!) efter et røe input, mens output tet unertrykkes hvis vi skriver et kolon: :=sum(aˆi,i=1..100): Det er jo rart at vie, hvis ma n vil ungå alt for meget output, såsom ; a 41 + a 33 + a 42 + a 44 + a 45 + a 47 + a 48 + a 49 + a 50 + a 51 + a 52 + a 53 + a 54 + a 55 + a 56 + a 43 + a 57 + a 59 + a 60 + a 61 + a 62 + a 63 + a 64 + a 65 Foruen at regne symbolsk, kan Maple selvfølgelig også regne numerisk: 3*(1/3)-1; 0 Og vi kan tvinge en til at regne me flyene (eimal-)tal, som vi jo er vant til i programmeringssprog: 3*evalf(1/3) - 1; 0.0000000001 Den regner åbenbart me 10 ifres nøjagtighe, vs. lit mere en enkelt præision og lit minre en obbelt præision, MEN(!) et kan vi nemt ænre: Digits:=100; > 3*evalf(1/3) - 1; 100 1.0 10 100 Det kan være nyttigt me høj nøjagtighe, men også somme tier give mere output en man ønskee sig: evalf(pi); evalf(1/3); 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068 0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 Hvis vi får brug for at regne symbolsk me symbolet (som jo p.t. har en sum som væri), kan vi fjerne ens væri via Maple-input et: unassign( ); Det virker: ; Det var lit om at regne symbolsk og numerisk i Maple. La os nu se speielt på, hvoran vi kan regne me e komplekse tal i Maple.
1.2 Komplekse tal i Maple (åbnes ve at...) I Maple skrives et komplekse tal x + i y som x + I*y, altså me stort I og gangetegn. Ve Maple mon, hva I*I er? I*I; 1 Maple kan selvfølgelig også konjugere komplekse tal og uføre e anre basale regneoperationer. La prøve me et numerisk og et symbolsk tal: a:= 2 + 4*I: b:= + I*: > onjugate(a); onjugate(b); 2 4 i onjugate ( + i) Nu hvor vi kener til komplekse tal, ve vi vel, at ovenståene ikke er en brøk, men erimo e to konjugeree tal? Maple er jo noget oven og vil helst ikke gøre mere en vi beer en om, så la os bee en gøre lit mere en blot konjugere, nemlig evaluere et siste utryk, som en hånteree (angives ve %): eval(%); onjugate ( + i) Tja, et er jo staigvæk rigtigt, men vi må åbenbart ve symbolske tal bee ekspliit om at få resultatet angivet me realel og imaginærel, hvis vi vil have et, vs. kompleks-evalueret : eval(%); i OK. La os så prøve e simple aritmetiske operationer, vs. +,-,* og / : a+a; I*a; a+b; a-b; a*b; a/b; 4 + 8 i 4 + 2 i 2 + 4 i + + i 2 + 4 i i (2 + 4 i)( + i) 2+4 i +i Vi kompleks-evaluerer e symbolske resultater: eval([a+b, a-b, a*b, a/b]); [2 + + i (4 + ),2 + i (4 ),2 4 + i (4 + 2 ),2 2 + 2 + 4 2 + 2 + i ( 4 2 + 2 2 2 + 2 )] Vi ungik at skrive eval(a+b); eval(a-b); osv. ve i steet for at bee Maple kompleksevaluere en liste me 4 elementer. Lister er ornee, så vi kan f.eks. bee om et siste element i utrykket ovenfor (vs. i %): > z:=%[4]; 2 2 + 2 + 4 ( 2 + + i 4 2 2 + 2 2 Kan vi ikke få skrevet z lit simplere? simplify(z); 2 +2 +2 i i 2 + 2 ) 2 + 2 OK, utrykket blev simplere, men igen må vi BEDE om at få tallet angivet me realel og imaginærel, hvis vi vil have et: eval(%); 2 +4 i(4 2 ) 2 + + 2 2 + 2 Mon Maple også kan uregne visse stanar-funktioners væri på komplekse tal? eval(exp(a)); e 2 os(4) + ie 2 sin(4) Dette er jo korrekt, hvorimo følgene kun er korrekt me et antal ifre, er er angivet i Digits: evalf(exp(a)); 008354022155692618122641058751681597257200653468323289764880 5.59205609364098204777835371084612390871774796077740834154886
Mon en naturlige logaritme-funktion også er en inverse til exp, når vi regner me komplekse tal? eval(exp(ln(x+i*y))); > eval(ln(exp(x+i*y))); x + iy x + i artan(sin (y),os(y)) Hvorfor nu et? Det første svar så jo så lovene u. Men igen har Maple jo ret. Når først eksponential-funktionen er anvent på et kompleks tal x + i y, har vi jo et kompleks tal e hvor vi ikke kan se, om imaginær-elen var y eller y +- et helt antal 2? (!) Derfor kan logaritme-funktionen kun sige, at imaginær-elen har tangens lig me sin(y)/os(y), og for at give en væri i et konkret tilfæle, tager en så alti en vinkel, er ligger er ligger i intervallet ]-?,?]: eval(ln(exp(2 + I*4))); 2 + i (4 2 π) Kan vi plotte i en komplekse plan? Ja, men vi må vælge kartesisk eller polær notation af e komplekse tal: > plot([ Re(exp(I*t)), Im(exp(I*t)), t = 0..3*Pi/2]); > plot([ 1, t, t=0..3*pi/2], oors=polar);
Eventuelt ønsker vi kun nogle enkelte af punkterne på enne kurve, og ikke alle punkterne for t = 0..3*Pi/2: > liste_af_punkter := [ [ 1, i*pi/10 ] $i=0..15]: > plot(liste_af_punkter, oors=polar, style=point, symbol=ross); Det kan være nyttigt at kunne gå fra kartesiske til polære koorinater og omvent, og et kan Maple selvfølgelig hjælpe os me: z:= 1 + sqrt(3)*i: > kartesiske:= [ Re(z), Im(z) ]; [1, 3] > polære:=[ abs(z), argument(z) ];
[2, 1/3 π] La os heke e polære: eval( polære[1]*exp(i*polære[2])); 1 + i 3 Hvis er er ti tilovers, vil jeg anbefale jer at selv gå på opagelse i Maple. Brug f.eks.?-tegnet til at få information om et mærkelige $-tegn, er anventes i liste af punkter, og mere information om plot-failiteterne:?$; >?plot;