• No results found

Köra Mathematica på tuxedo.abo.fi

N/A
N/A
Protected

Academic year: 2021

Share "Köra Mathematica på tuxedo.abo.fi"

Copied!
32
0
0

Loading.... (view fulltext now)

Full text

(1)

è Utvecklades av Wolfram Research (Stephen Wolfram) på 80-talet è Programmet finns bl.a. till Windows, Mac OS X, Linux.

è Finns (åtminstone) installerat i ASA B121 (Stansen), i matematik institutionens datasal, samt på tuxedo.abo.fi

è Mest använd för symboliska beräkningar

¢ | £

(2)

Köra Mathematica på tuxedo.abo.fi

è Man kan köra Mathematica på unixservern tuxedo.abo.fi i textläge.

è Inte speciellt användarvänligt, men kan lätt utföra enkla beräkningar.

è För att starta programmet loggar man in t.ex. med SSH på tuxedo.abo.fi och skriver kommandot "math".

è Avsluta med kommandot "Quit".

¢ | £

(3)

Användargränssnittet

è Användargränssnittet är uppbyggt kring s.k. notebooks och flytande verktygspaletter.

è Klarar sig helt utan verktygspaletterna, men de underlättar i många fall.

è I version 7 finns bland annat "Basic Math Assistant" som innehåller de flesta funktioner man behöver

è Kommandon skrivs in i ett inputfält i en notebook och evalueras med SHIFT + ENTER

è Vanliga aritmetiska uttryck kan användas.

2+5 ^ 2-4 Sqrt@9D +Sin@2 Pi3D

15+ 3 2

è Observera att inbyggda funktioner och konstanter skrivs med stor bokstav.

è Funktioner: Sqrt[ ], Exp[ ], Cos[ ], ArcSin[ ].

è Konstanter: E, I, Infinity, Pi

è Vanliga parenteser () används för att gruppera uttryck.

¢ | £

(4)

Hjälpfunktioner och manual

è Mathematica har en utmärkt inbyggd manual som hittas i "Help" menyn.

è För att få hjälp om ett specifikt kommando används ?Funktionsnamn

? Sqrt

Sqrt@zD or z gives the square root of z. ‡

è Kan även trycka F1 då markören befinner sig på ett kommando.

¢ | £

(5)

Uttryck och symboler i Mathematica

Ÿ Numerisk evaluering (N)

N@PiD 3.14159

N@Pi, 50D

3.1415926535897932384626433832795028841971693993751

E N

2.71828

Ÿ Ge variabler ett värde ( = ) och tömma variabler ( =.)

a = 5 Pi -2 -2+5Π

a^ 2

H-2+5ΠL2

N@a, 10D 13.70796327

(6)

a=. a a

Ÿ Jämförelser ( ==, >, >=, <, <=, != )

2 Š 1 False

2 > 1 True

Ÿ Skriv ej ut resultatet (;)

N@PiD;

a = 2+Exp@1D;

a

2+ ã

Ÿ Listor (Räckor, Arrays) { }

A = 81, 5, 6, 3, 10<

81, 5, 6, 3, 10<

A@@3DD 6

(7)

A@@2 ;; 4DD 85, 6, 3<

Ÿ Ersätta värden i uttryck (/. eller ReplaceAll)

è För att ersätta variabler i uttryck med ett värde, en annan variabel eller ett uttryck används /. (snedstreck och punkt). Är en kortform för kommandot ReplaceAll

Clear@a,b, cD;

a = b+c b+c

a .b ® 1 1+c

ReplaceAll@a,8b ® Cos@yD,c ® Sin@xD<D

Cos@yD +Sin@xD

è Detta ändrar inte värdet på det ursprungliga uttrycket:

a

b+c

è Pilen skrivs med ett streck och ett större än tecken (Mathematica ersätter det automatiskt med en pil) eller så använder man någon av verktygspaletterna.

Ÿ Referera till tidigare erhållna resultat

2+3 5

(8)

% +10

15

%25+ %26

15+ %26

è Obs! Spara hellre svaret till en variabel, eftersom referenserna ändras vartefter nya uttryck beräknas.

¢ | £

(9)

Funktioner

Ÿ Funktioner defineras enligt

f@x_D := x^ 2;

g@x_, y_D :=x +y;

è Sedan kan de användas som vilken inbyggd funktion som helst.

è Observera _-tecknet efter variabeln.

f@2D +g@4, 3D

11

è För att kontrollera en funktions definition skriv ?Funktionsnamn.

? f

Global`f f@x_D := x2

Ÿ Begränsa definitionsmängden

Clear@hD

h@x_D := Sqrt@xD ; x ³ 0

? h

Global`h

h@x_D := x ; x³ 0

(10)

h@3D h@-1D

3 h@-1D

Ÿ Styckevis definerade funktioner

ã Alternativ 1

f@x_D := -1 ;x < -1 f@x_D := x ; x ³ -1 f@-100D

f@100D

Plot@f@xD, 8x,-2, 1<D

-1 100

-2.0 -1.5 -1.0 -0.5 0.5 1.0

-1.0 -0.5 0.5 1.0

(11)

ã Alternativ 2

g@x_D := Piecewise@88-1,x < -1<, 8x,x ³ -1<<D Plot@g@xD, 8x,-2, 1<D

-2.0 -1.5 -1.0 -0.5 0.5 1.0

-1.0 -0.5 0.5 1.0

Ÿ Anropa funktioner med flera värden (/@ eller Map)

è För att anropa en funktion med flera givna värden kan man använda Map- funktionen eller dess kortform /@

(12)

Clear@fD;

f@x_D := 2x^ 2-4x;

Plot@f@xD, 8x,-1, 4<D

-1 1 2 3 4

5 10 15

fž 80, 1, 2, 3<

Map@f, 80, 1, 2, 3<D

80,-2, 0, 6<

80,-2, 0, 6<

è Om man har en funktion av flera variabler, kan man använda MapThread istället:

g@x_, y_D :=2x+y;

MapThread@g, 881, 2, 3<, 80, 1, 1<<D 82, 5, 7<

¢ | £

(13)

Aritmetik

è I verktygsfältet "Basic Math Assistant" -> "Basic Commands" -> "y==x" finns flera olika funktioner för att omforma uttryck.

p = H2+xL H3+yL H4+zL^ 2

H2+xL H3+yL H4+zL2

p2 =Expand@pD

96+48 x+32 y+16 x y+48 z+24 x z+

16 y z+8 x y z+6 z2+3 x z2+2 y z2 +x y z2

Factor@p2D

H2+xL H3+yL H4+zL2

FullSimplify@p2+p2^ 2D H2+xL H3+yL H4+zL2

I97+2 yH4+zL2+xH3+yL H4+zL2 +6 zH8+zLM

¢ | £

(14)

Vektorer och matriser

Ÿ Vektorer

è Mathematica tolkar vektorer som listor.

a = 81, 2, -1<;b = 82,-2, 3<;

è Addition och subtraktion av vektorer fungerar som vanligt.

a+b 83, 0, 2<

è Inre produkten fås som den ena produkten "punkt" den andra.

a.b

-5

Ÿ Matriser

è Mathematica tolkar matriser som listor av vektorer, alltså dubbellistor.

A = 881, 3<, 8-4, 9<<;B = 882, 3<, 8-1, 1<<;

MatrixForm@AD MatrixForm@BD

J 1 3 -4 9 N

J 2 3 -1 1 N

è Addition och subtraktion av matriser fungerar som vanligt.

(15)

A+B MatrixForm

J 3 6 -5 10 N

è Matrismultiplikation är den ena matrisen "punkt" den andra.

A.B MatrixForm

J -1 6 -17 -3 N

Ÿ Matrisfunktioner

ã Determinanten

Det@AD

21

ã Transponatet

MatrixForm@Transpose@BDD

J2 -1 3 1 N

ã Matrisinvers

MatrixForm@Inverse@ADD

3 7

-1

7 4 21

1 21

(16)

ã Egenvärden och egenvektorer

Eigenvalues@AD Eigenvectors@AD Eigensystem@AD 87, 3<

881, 2<, 83, 2<<

887, 3<, 881, 2<, 83, 2<<<

¢ | £

(17)

Integrering och differentiering

Ÿ Differentiering

è Differentiering av en funktion kan göras genom att använda ' - tecknet.

f@x_D := Exp@-x^ 2D;

f'@xD

-2ã-x2 x

f''@xD

-2ã-x2 +4ã-x2 x2

è Differentiering av en funktion kan även göras med hjälp av D- funktionen.

D@f@xD, xD

-2ã-x2 x

è Högre ordningens derivator fås på följande sätt

D@x^x, 8x, 2<D

x-1+x+xxH1+Log@xDL2

(18)

ã Exempel: Gör en funktion som ger ut n-te ordningens derivata av den naturliga logaritmfunktionen

Clear@x,nD;

DLog@n_D:= D@Log@xD, 8x, n<D;

DLogž 81, 2, 10<

91 x

, - 1 x2

, -362 880 x10

=

Ÿ Integrering

è Integrering kan göras genom att använda någon av paletterna "Basic Math Assistant" eller "Classroom Assistant"

à

0 1

x3 âx

1 4

àSin@xD âx

-Cos@xD

è Integrering kan även göras med hjälp av Integrate- funktionen.

Integrate@x^ 3, 8x, 0, 1<D 1

4

Integrate@Sin@xD, xD

-Cos@xD

è Ifall Mathematica inte klarar av att utföra en integration returnereras funktionen själv:

(19)

è

funktionen själv:

Integrate@Sin@xD Log@xD, xD

à

Sin@xD Log@xD

âx

è Numerisk integration utförs med NIntegrate- kommandot:

NIntegrate@Sin@xD Log@xD, 8x, 2, 10<D 0.275074

¢ | £

(20)

Summor och produkter

Ÿ Summor

è Summor görs antingen med hjälp av paletterna eller så använder man Sum- kommandot.

â

k=1

¥ 1 k2

Π2 6

Sum@1k^ 2,8k, 1, Infinity<D

Π2 6

è Ifall summan divergerar:

Sum@1k, 8k, 1, Infinity<D

Sum::div : Sum does not converge. ‡

â

k=1

¥ 1 k

Ÿ Produkter

è Produkter fås på samma sätt som summor, men kommandot är Product istället för Sum

(21)

ä

i=1 n

i^ 2

Hn!L2

Product@1-1i^ 4, 8i, 2, Infinity<D Sinh@ΠD

è Ifall produkten ej konvergerar:

Product@1+1i, 8i, 1, Infinity<D

Product::div : Product does not converge. ‡

ä

i=1

¥

1+ 1 i

¢ | £

(22)

Gränsvärden

è Gränsvärden bestäms med Limit- kommandot

Limit@Sin@xD x, x ® 0D 1

Limit@H1+xnL^n, n ® InfinityD ãx

Limit@1x, x ® 0, Direction ® -1D

¥

Limit@1x, x ® 0, Direction ® +1D - ¥

¢ | £

(23)

Ekvationslösning

è Ekvationer med en eller flera obekanta variabler löses med Solve- kommandot.

Clear@a,b, c, xD;

Solve@ax^ 2+bx+c== 0, xD

99x®

-b- b2-4 a c

2 a =, 9x ®

-b+ b2-4 a c

2 a ==

Solve@2x^ 2-2x-10== 0,xD N@%D

99x® 1

2 I1- 21 M=, 9x ® 1

2 I1+ 21M==

88x® -1.79129<, 8x® 2.79129<<

è Resultatet ges som ersättningsuttryck (alltså med ® ). Vill man ha dem som punkter kan man göra på följande sätt

sol = Solve@2x^ 2-2x-10== 0, xD x .sol

99x® 1

2 I1- 21 M=, 9x ® 1

2 I1+ 21M==

91

2 I1- 21M, 1

2 I1+ 21M=

è För att lösa ekvationssystem används && mellan de olika ekvationerna.

Observera att även ett högerled måste finnas med, t.ex. == 0.

(24)

Solve@ax+y ==7 &&bx-y ==1, 8x, y<D

99x® 8 a+b

, y ® -a-7 b a+b ==

Ÿ Exempel: Hitta skärningsspunkterna mellan en cirkel och en parabel

pts = Solve@x^ 2+y^ 2 Š 1 &&y-2x^ 2+32 Š 0,8x, y<D

99y ® 1

4 I-1- 5 M, x ® -1 2

1

2 I5- 5 M =, 9y® 1

4 I-1- 5 M, x ® 1 2

1

2 I5- 5 M =,

9y® 1

4 I-1+ 5 M, x ® - 5 8

+ 5

8 =,

9y® 1

4 I-1+ 5 M, x ® 5 8

+ 5

8 ==

(25)

Show@8ContourPlot@8x^ 2+y^ 2 Š 1,y-2x^ 2+32 Š 0<, 8x, -1.5, 1.5<, 8y, -1.5, 1.5<D,

Graphics@8Red, PointSize@MediumD, Point@8x,y< . ptsD<D<D

-1.5 -1.0 -0.5 0.0 0.5 1.0 1.5

-1.5 -1.0 -0.5 0.0 0.5 1.0 1.5

¢ | £

(26)

Rekursiva funktioner

Ÿ Exempel: Skapa en funktion som beräknar fakulteten (!) av ett tal

facHnL = 9 1, n= 1

n *fHn-1L, n > 1 fac@1D = 1;

fac@n_D := nfac@n-1D; facž 81, 2, 3, 10<

81, 2, 6, 3 628 800<

è Detta är inte ett speciellt effektivt sätt att beräkna fakulteten på. Använd hellre det inbyggda kommandot ! eller Factorial

10!

Factorial@20D

3 628 800

2 432 902 008 176 640 000

¢ | £

(27)

Villkor (If-satser)

è Åstadkomms med kommandot If[villkor, värde om sant, värde om falskt]

Ÿ Exempel: maximum av två tal

max@x_, y_D :=If@x > y, x, yD;

MapThread@max, 881, 2, 3<, 8-1, 0, 4<<D 81, 2, 4<

è Kommandot finns inbyggt i Mathematica som Max

Ÿ Exempel: absolutvärdet

abs@x_D := If@x <0, -x, xD;

absž 8-1, 0, 1<

81, 0, 1<

è Kommandot finns inbyggt i Mathematica som Abs

¢ | £

(28)

Slingor (upprepningar)

è Slingor kan åstadkommas med kommandon som t.ex. Table, For, Do, While.

Ÿ For- satser

è For-funktionen tar fyra "parametrar" For[initialisering, test, inkrementering, händelse]

For@i = 0,i < 4, i++, Print@iDD 0

1 2 3

For@i = 1;t = x, i^ 2 < 10, i++, t = t^ 2+i; Print@tDD 1+x2

2+ I1+x2M2

3+ I2+ I1+x2M2M2

Ÿ Do- satser

è Do-funktionen kan ta olika många parametrar. Några exempel

Do@Print@"Test"D, 84<D Test

Test Test Test

Do@Print@n^ 2D, 8n, 4<D

(29)

1 4 9 16

Do@Print@nD, 8n, -3, 5, 2<D -3

-1 1 3 5

è Kan även användas med flera olika index

Do@Print@8i, j<D, 8i, 4<, 8j, i-1<D

82, 1<

83, 1<

83, 2<

84, 1<

84, 2<

84, 3<

Ÿ Table

è Table-funktionen fungerar på samma sätt som Do, men ger resultatet direkt som en lista.

Table@n^ 2, 8n, 10<D

81, 4, 9, 16, 25, 36, 49, 64, 81, 100<

Table@x,810<D

8x, x, x, x, x, x, x, x, x, x<

(30)

è Table - kan även användas för att skapa matriser

Table@10i+j,8i, 4<, 8j, 3<D  MatrixForm 11 12 13

21 22 23 31 32 33 41 42 43

Table@Prime@iD, 8i, 5<D 82, 3, 5, 7, 11<

Ÿ While- satser

è While-funktionen tar två parametrar: While[test,händelse]

n = 1; While@n < 4, Print@nD; n++D 1

2 3

¢ | £

(31)

Använda lokala variabler i funktioner

è Problem kan uppstå om man använder samma variabelnamn till flera olika saker.

è Alla variabler är som standard globala i Mathematica.

Ÿ Exempel: Fibonaccis talföljd, ej lokala variabler

Clear@fD f@x_D = x^ 2;

fib@n_D := Module@8<,

f@1D = f@2D = 1;

f@i_D := f@iD =f@i-1D +f@i-2D; f@nD

D;

fib@1D;

? f

Global`f f@1D = 1 f@2D = 1

f@i_D := f@iD = f@i-1D +f@i-2D

è Funktionen f definieras alltså om... Inte bra!

Ÿ Module

è Genom att definiera de variabler som ska vara lokala ändras deras värde inte på annat håll i programmet.

è Module-funktionen tar två "parametrar" Module[{lokala variabler}, programkod]

(32)

Clear@fD f@x_D = x^ 2;

fib@n_D :=

Module@8f, i<, f@1D = f@2D = 1;

f@i_D := f@iD =f@i-1D +f@i-2D;

f@nD D;

? f

Global`f f@x_D = x2

è I detta exempel är alltså f och i lokala variabler (egentligen är f en lokal funktion).

¢ | £

References

Related documents

loro valore medio che del valore di velocità di rotazione del motore in giri al minuto, per il valo- re corrente di duty cycle.. Nell’ultimo frame viene gestito il clear

Med utgångspunkt i de förväntningar som arbetsmarknadens parter har på lönebildningen, om de tror på ytterligare decentralisering eller ej, är det också relevant att studera hur

En stokastisk variabel ξ ¨ar normalf¨ordelad med parametrarna µ och σ &gt; 0 om den har t¨atheten (se fig. Bj¨orup &amp; Ed´en: Analys i en och flera dimensioner s.. En

Ber¨akna v¨antev¨ardet och variansen f¨or summan av tio oberoende stokastiska variabler, som alla ¨ar likformigt f¨ordelade i intervallet (1,

För att ändra ett objekt som tidigare skapats tryck på aktuell ikon, välj objektet ur listan i listarean så att det presenteras i editeringsarean och klicka därefter

Till en telefonväxel ankommer i genomsnitt 90 anrop per timme. Vi antar att ankomster är Poissonfördelade. Bestäm sannolikheten att exakt 2 anrop kommer under ett tidsintervall som

Betrakta oberoende f¨ors¨ok s˚ adana att en succ´e intr¨affar (p˚ a varje f¨ors¨ok) med sannolikhet p. Man forts¨atter att utf¨ora f¨ors¨oken tills en succ´e intr¨affar

Pro řízení osvětlovacího systému Helvar bude použit software TIRS.NET, který bude popsán v druhé kapitole.. Tento router využívá Ethernet 10/100Mb/s jako