And. Append. AppendTo. Apply. BarChart. Binomial. Samma sak som && a=true; b=false; And[a,b] False a && b False. a={1,2,3}; Append[a,9] {1,2,3,9}

Relevanta dokument
Lathund Maple. abs. add. Append (lägga till element) Funktionen för att bestämma absolutbeloppet. adderar en sekvens av tal

Dagens Teori. Figur 12.1:

ÖVNINGSTENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 10:15-13:15. Torsdagen 20 maj Tentamen består av 4 sidor.

Laboration 3: Rekursiva definitioner, listor och ett olöst problem

1, 2, 3, 4, 5, 6,...

a = a a a a a a ± ± ± ±500

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Språket Python - Del 1 Grundkurs i programmering med Python

Allmänt om Mathematica

TDIU01 - Programmering i C++, grundkurs

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 13:15-18:00. Fredag 28 maj Tentamen består av 4 sidor.

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 8:15-13:15. Måndag 8 juni Tentamen består av 4 sidor.

, S(6, 2). = = = =

Funktioner. Räta linjen

Talmängder. Målet med första föreläsningen:

TAIU07 Matematiska beräkningar med Matlab

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 11 april, 2002

Polynomekvationer. p 2 (x) = x x 3 +2x 10 = 0

Dagens Teori. 2.1 Talteori Största gemensamma delaren. Vilket är det största tal som samtidigt är delare till de båda talen.

Polynomekvationer. p 2 (x) = x x 3 +2x 10 = 0

TANA17 Matematiska beräkningar med Matlab

MAPLE MIKAEL STENLUND

TAIU07 Matematiska beräkningar med Matlab

2 Tillämpad Matematik I, Övning 1 HH/ITE/BN. De objekt som finns G men inte i H.

Problemlösning Lösningar

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

729G04 Programmering och diskret matematik. Python 3: Loopar

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

För att få första och sista elementet i en lista kan man använda First och Last

Sidor i boken f(x) = a x 2 +b x+c

Fråga 13. Skriv en loop som fyller arrayen int v[100] med talen

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Kapitel 2. Grundläggande sannolikhetslära

Dagens Teori. 1.1 Talteori Några olika talmängder. Definition 1 Heltal kallas de tal som ingår i mängden Z = {..., 3, 2, 1,0,1,2,3,...

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, m fl, SF1610, tisdagen den 2 juni 2015, kl

Tentamen i. TDDC67 Funktionell programmering och Lisp

Sidor i boken , , 3, 5, 7, 11,13,17 19, 23. Ett andragradspolynom Ett tiogradspolynom Ett tredjegradspolynom

TANA17 Matematiska beräkningar med Matlab

Lösning till tentamensskrivning i Diskret Matematik, SF1610 och 5B1118, torsdagen den 21 oktober 2010, kl

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Lösning till tentamensskrivning på kursen Diskret Matematik, moment A, för D2 och F, SF1631 och SF1630, den 10 januari 2011 kl

Dagens Teori Grafer Vad är en graf? Figur 11.1: En enkel graf med fem noder och sex bågar

Programmering II (ID1019) :00-17:00

y y 1 = k(x x 1 ) f(x) = 3 x

Dagens Teori. x A. x A x B. Då mängden har ett ändligt antal element kan de räknas upp och vi skriver den till exempel

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Introduktion till MATLAB

Föreläsning 4: Kombinatorisk sökning

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Föreläsning Datastrukturer (DAT036)

A-del. (Endast svar krävs)

Hela tal LCB 1999/2000

Tentamen i Introduktion till programmering

DEL I. Matematiska Institutionen KTH

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Dugga Datastrukturer (DAT036)

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Dagens Teori. 1.1 Talteori Några olika talmängder. Definition 1 Heltal kallas de tal som ingår i mängden Z = {..., 3, 2, 1,0,1,2,3,...

Föreläsning 5: Grafer Del 1

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

Dagens Teori. a 1,a 2,a 3,...a n

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

Talmängder N = {0,1,2,3,...} C = {a+bi : a,b R}

i LabVIEW. Några programmeringstekniska grundbegrepp

Iteration while-satsen

Lektion Kapitel Uppgift Lösning med programmering

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

Föreläsning 9: Talteori

Sats 2.1 (Kinesiska restsatsen) Låt n och m vara relativt prima heltal samt a och b två godtyckliga heltal. Då har ekvationssystemet

Föreläsning 8 Datastrukturer (DAT037)

TSBB14 Laboration: Intro till Matlab 1D

Variabler och konstanter

Erfarenheter från labben

Moment 1.15, 2.1, 2.4 Viktiga exempel 2.2, 2.3, 2.4 Övningsuppgifter Ö2.2ab, Ö2.3. Polynomekvationer. p 2 (x) = x 7 +1.

Signalflödesmodellen. Två (gamla) exempel: Kvadratera alla jämna löv.

Förkortning och förlängning av rationella uttryck (s. 29 Origo 3b)

Laboration 4: Integration på olika sätt

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

Algoritmer, datastrukturer och komplexitet

Programmering i C, 7,5 hp

Föreläsning 7 Datastrukturer (DAT037)

Rekursion. Rekursiv lösningsstrategi. Algoritmkonstruktion. Exempelproblem Hitta största elementet i en sekvens v i där i 1... n.

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

f(x) = 1 x 1 y = f(x) = 1 y = 1 (x 1) = 1 y x = 1+ 1 y f 1 (x) = 1+ 1 x 1+ 1 x 1 = 1 1 =

Fråga 11. Vad skrivs ut? Fråga 12. Vad skrivs ut? Fråga 13. Vad skrivs ut? x=x+y; y=x-y; x=x-y;

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610 och 5B1118, tisdagen den 7 januari 2014, kl

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Lösningar Datastrukturer TDA

Tillämpad Matematik I Övning 1

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 13:15-18:15. Torsdagen 7 juni Tentamen består av 5 sidor.

SF1661 Perspektiv på matematik Tentamen 20 oktober 2011 kl Svar och lösningsförslag

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 13:15-17:15. Måndag 19 december Tentamen består av 5 sidor.

Transkript:

And Samma sak som && a=true; b=false; And[a,b] False a && b False Append AppendTo a={1,2,3}; Append[a,9] {1,2,3,9} Lägger till ett element sist i listan Apply a={3,4,5} AppendTo[a,6] {3, 4, 5, 6} Tillämpar en funktion med en lista som parametrar Apply[Plus,{1,2,3,4,5}] 15 Skillnaden mellan Map och Apply Map[f,{a,b,c}] {f[a], f[b], f[c]} Apply[f,{a,b,c}] f[a, b, c] BarChart Plottar stapeldiagram data taget från lista Binomial BarChart[{3,5,6,3,1}] För att erhålla en binomialkoefficient, till exempel ( ) 8 3 Binomial[8,3] 56 Håkan Strömberg 1 KTH STH

Block Inleder en flerradig funktion f[n_]:=block[{i,s=0}, For[i=1,i<=10,i++, s=s+i; ]; s ] BooleanMinimize Förenklar ett logiskt uttryck BooleanMinimize[(!a b)&&(!b&&a) (a&&b)] a && b BooleanTable Ger en sanningstabell för ingående variabler Break f1 = p && (Implies[!q,r]); BooleanTable[{p, q, r} -> f1, {p, q, r}] {{True,True,True}->True,{True,True,False}->True, {True,False,True}->True,{True,False,False}->False, {False,True,True}->False,{False,True,False}->False, {False,False,True}->False,{False,False,False}->False} Bryter loopen i vilken Break finns Clear i=0; While[True, i++; If[i>10,Break[]]; ]; i 11 [Clear[" *"] glömmer alla definitioner och tilldelningar. Lämpligt att starta ett nytt problem med Combinatorica Bibliotek med kombinatoriska funktioner. Inkluderas genom: << Combinatorica Håkan Strömberg 2 KTH STH

CompleteGraph Genererar en komplett graf, en graf med alla bågar bågar på plats g2=completegraph[5] Complement Bestämmer de element som ingår i den första mängden men inte i den andra Complement[{1,2,3,4,5,6},{1,3,5}] {2, 4, 6} ConnectedQ Tar reda på om en graph är sammanhängande Cos ConnectedQ[g] True Bestämmer cosinus för en vinkel v, given i radianer Cos[-Pi] -1 CostOfPath Tar reda på vad en tur i en graf kostar, summan av bågarnas vikter Count CostOfPath[g,{{1,2},{2,4}}] 25 Räknar antalet förekomster av ett givet element a={kalle,pelle,kalle,curt,adam,kalle}; Count[a,kalle] 3 Hur många sexor bland 100 tärningskast a=table[random[integer,{1,6}],{i,1,100}]; Count[a,6] 16 Håkan Strömberg 3 KTH STH

ChromaticNumber Tar reda på hur många färger som behövs för att färga noderna utan att två grannoder får samma färg ChromaticNumber[g] 3 DegreeSequence Listar gradtalen hos grafens noder DegreeSequence[g] {3, 2, 2, 2, 2, 2, 1, 0} DeleteDuplicates Tar bort element ur en lista så att inga dubbletter finns kvar a={1,4,2,3,2,1,4,3,2,1}; DeleteDuplicates[a] {1, 4, 2, 3} DigitCount Gör upp en frekvenstabell över talets ingående siffror Dijkstra DigitCount[11232221] {3, 4, 1, 0, 0, 0, 0, 0, 0, 0} Beräknar kortaste avståndet från noden v till samtliga noder i grafen g Dijkstra[g,v] Den första listan i resultatet innehåller numret på den nod som just föregår målet. Den andra listan innehåller kortaste avståndet, eller lägsta priset från v, till noderna i grafen. Divisors Ger samtliga delare till talen n Divisors[1024] {1,2,4,8,16,32,64,128,256,512,1024} Håkan Strömberg 4 KTH STH

Do Do[expr,{i,list}] Det finns flera varianter av Do, här den mest användbara s=0; b={1,2,3,4,5}; Do[s=s+i,{i,b}] s Vi summerar talen i en lista. i antar alltså alla tal som finns i listan. Ibland kan dessa tal användas som index till en annan lista. a={3,5,6,8,9,2}; b={1,3,5}; s=0; Do[s=s+a[[i]], {i,b}] s Ser du hur s tills sist får värdet 18? Drop För att ta bort element ur en lista Equivalent a={7,8,9,10,11}; Drop[a,{3,5}] {7,8} a=true; b=false; Equivalent[a,b] False Expand Expanderar ett uttryck Expand[(x+y)^2] ger x 2 +2xy+y 2 Håkan Strömberg 5 KTH STH

FactorInteger Faktoriserar heltal FactorInteger[1960] {{2, 3}, {5, 1}, {7, 2}} Som tolkas som 2 3 5 7 2 = 1960 Fibonacci Ger det n:te finonaccitalet Fakultet Fibonacci[100] 354224848179261915075 Fakultet skrivs som förväntat med ett utropstecken First 30! 265252859812191058636308480000000 Plockar ut första elementet från en lista Fit First[{7,9,10}] 7 Med hjälp av minsta kvadratmetoden anpassa en funktion till en mängd punkter Fit[{1,4,9,16,25},{1,x,x^},x] 5.30315*10^-15-2.39524*10^-15 x + 1. x^2 Av allt att döma handlar det om f(x) = x 2 Flatten Funktionen plattar till en lista, vilket betyder att måsvingarna på underlistor försvinner Flatten[{1,2,{3,4},{5,{6},7}}] {1, 2, 3, 4, 5, 6, 7} Genom en extra parameter kan man bestämma hur många nivåer som ska plockas bort Flatten[{1, 2, {3, 4}, {5, {6}, 7}}, 1] {1, 2, 3, 4, 5, {6}, 7} Håkan Strömberg 6 KTH STH

For For[Start,Test,Increment,Body] Ett exempel på en For-sats s=0; For[i=1,i<=100,i++, a=integerdigits[i]; Apply[Plus,a]; ] s Observera att komma används för att skilja for-satsens fyra dela åt. Inom varje del använder man sedan semikolon för att skilja satserna åt. Här ett meningslöst exempel som visar detta sum=0 For[i=1;j=2,j<20,i=i+2;j=j+3, sum = sum+i+j Print[i," ",j] ] sum FromDigits Översätter en lista med siffror till ett heltal FromDigits[{1, 2, 3, 4, 5}] 12345 FromOrderedPairs Bildar en graf utifrån listan av bågar b = {{1,3},{2,4},{1,5},{1,4}}; g2 = FromOrderedPairs[b, Type -> Undirected] Vi har skapat en oriktad graf med 4 bågar och 5 noder. GCD Bestämmer största gemensamma delaren till m och n GCD[4646,3462] 2 GraphDistance Returnerar kortaste avståndet eller billigaste vägen mellan noderna u och v i grafen g GraphDistance[g,u,v] Håkan Strömberg 7 KTH STH

GraphicQ Tar reda på om talen i en lista är en grafisk sekvens GraphPlot GraphicQ[{1,2,3,4,2,4}] True För att Plotta en graph If << GraphUtilitiesŚ g = {1->2,2->3,4->2,5->1}; GraphPlot[g, VertexLabeling -> True] Ett exempel på en If-sats med else Implies a=2; If[a>4, c=6; b=7, c=5; b=8; ] {c,b} {5,8} a=true; b=false; Implies[a,b] False Infinity Uttrycker oändligheten, Insert Sätter in ett element på önskad plats i en lista a={10,11,13,14}; Insert[a,12,3] {10, 11, 12, 13, 14} Håkan Strömberg 8 KTH STH

IntegerDigits Lägger in ett heltals siffror i en lista IntegerDigits[12345] {1, 2, 3, 4, 5} IntegerDigits[123,2] {1, 1, 1, 1, 0, 1, 1} I sista satsen ges resultatet i basen 2 IntegerLength Antalet siffror i talet n IntegerLength[123456] 6 Många andra varianter finns IntegerPartition Ger samtliga sätt att bilda summan n med hjälp av heltal IntegerPartition[4] {{4},{3,1},{2,2},{2,1,1},{1,1,1,1}} IntegerString Kan användas till att uttrycka ett tal n i basen 10 i en annan bas. Resultatet lagras som en sträng. IntegerQ IntegerString[123,2] "1111011" För att testa om ett uttryck har ett heltalsvärde IntegerQ[1/3] False Intersection Bestämmer snittet hos givna mängder Intersection[{2,3,5,6},{2,6,7,3}] {2, 3, 6} Håkan Strömberg 9 KTH STH

IsomorphicQ Tar reda på om två, till synes olika, grafer är isomorfa (identiska). Join IsomorphicQ[g1,g2] True Slår ihop listor KSubsets a={2,3,4}; Join[{1},a,{5,6,7}] {1, 2, 3, 4, 5, 6, 7} Tar ut en delmängd med bestämd storlek ur en given mängd utan att ta hänsyn till ordningen LCM KSubsets[{1,2,3,4},2] {{1,2},{1,3},{1,4},{2,3},{2,4}, {3,4}} Bestämmer den minsta gemensamma multipeln Length LCM[5216,6464] 1053632 För att ta reda på längden av en lista Limit a={{1,2},{3,4}}; Length[a] 2 Length[Flatten[a]] 4 För att bestämma gränsvärdet till en funktion Limit[Sin[x]/x,x->0] 1 Håkan Strömberg 10 KTH STH

ListPlot 12 10 8 6 4 20 40 60 80 100 Här kastar vi två tärningar 100 gånger, summerar antalet ögon och samlar resultatet i en lista, som vi sedan sorterar. Därefter skapar vi ett graf av resultatet kast[]:=random[integer,{1,6}]+random[integer,{1,6}] a=sort[table[kast,{i,1,100}] ListPlot[a] Observera att (0,2) ligger i origo Log Log[20] översatt till matematiskt språk ln20 Log[20]//N 2.99573 Log[10,1000] 3 I den andra satsen uttrycker 10 basen. Map Tillämpar en funktion på en lista f[x_]:=x^2 a={1,4,7}; Map[f,a] {1,16,49} Map[#^2&,a] {1,16,49} Map[Sqrt,{4,9,16,25}] {2,3,4,5} Skillnaden mellan Map och Apply Map[f,{a,b,c}] Håkan Strömberg 11 KTH STH

MemberQ {f[a], f[b], f[c]} Apply[f,{a,b,c}] f[a, b, c] Funktionen returnerar True om ett element kan återfinnas i en lista a={3,2,8,7,6,9,1}; MemberQ[a,8] True MinimumSpanningTree Bestämmer det kortaste (billigaste) nätet av bågar som sammanbinder grafen h=minimumspanningtree[g] MinimumVertexColoring Visar hur nodernas ska färgas med det minsta antalet färger utan att två grannoder har samma färg Mod MinimumVertexColoring[g] {1, 2, 2, 1, 1, 2, 1, 2} Bestämmer modulo, resten vid division, till exempel 123 mod 34 N Mod[123,34] 21 Skriver värdet hos ett uttryck på decial form N[1/3] 0.333333 N[Sqrt[2],10] 1.414213562 Det andra argumentet bestämmer antalet siffror Not Samma sak som! a=true; Not[a] False Håkan Strömberg 12 KTH STH

Or Samma sak som Position a = True; b = False; Or[a, b] True a b True Bestämmer den position ett givet element har i listan Partition Position[{3, 7, 4, 5, 3, 1}, 5] {{4}} Delar upp en lista i smålistor a={1,2,3,4,5,6,7,8,9} Partition[a,3] {{1,2,3},{4,5,6},{7,8,9}} Många andra varianter finns Permutations Genererar en lista av listor. Varje underlista består av en permutation av elementen i den givna listan Permutations[{1,2,3}] {{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}} Permutations[{1,2,1}] {{1,2,1},{1,1,2},{2,1,1}} Permutations[{1,2,3,4},2] {{},{1},{2},{3},{4},{1,2},{1,3},{1,4},{2,1},{2,3}, {2,4},{3,1},{3,2},{3,4},{4,1},{4,2},{4,3}} Permutations[{1,2,3,4},{2}] {{1,2},{1,3},{1,4},{2,1},{2,3},{2,4},{3,1},{3,2}, {3,4},{4,1},{4,2},{4,3}} Den näst sista satsen plockar ut alla delmängder med storleken 2 och med hänsyn tagen till ordningen. Den sista satsen plockar ut alla delmängder med exakt 2 element och med hänsyn till ordningen. π För att uttrycka π använder man Pi Håkan Strömberg 13 KTH STH

PlanarQ Tar reda på om en graf kan ritas utan korsande bågar Plot PlanarQ[g] False För att plotta en funktion Plot[Sin[x]+Cos[x],{x,-Pi/2,Pi/2}] Funktionen plottas i intervallet [ π 2, π 2 ] Position För att i en lista söka upp på vilka platser ett element finns a={2,6,5,9,7,3,2,1}; Position[a,2] {{1},{7}} Talet 2 finns på platserna 1 och 7. Prepend Lägger till ett element först i listan Prime Prepend[{2,3,4},1] {1, 2, 3, 4} Anger det n:te primtalet Prime[168] 997 997 är det 168:e primtalet PrimePi Tar reda på hur många primtal det finns som är n PrimePi[10000] 1229 Håkan Strömberg 14 KTH STH

PrimeQ Blir True då n är ett primtal Print Prime[686846628648476867] True Skriver ut värdet av ett uttryck Product Print["Hejsan"] "Hejsan" Multiplicerar de genererade talen Random Product[i^2,{i,1,3}] 16 För att ta fram slumptal med olika egenskaper Random[Integer,{1,52}] 6 Random[Real,{0,1}] 0.694168 RandomGraph Genererar en graph med n noder och given sannolikhet för att två noder ska vara förbundna g=randomgraph[8,0.3] Graph : <7,8,Undirected> RandomSample För att till exempel blanda en kortlek med korten numrerade 1...52 RandomSample[Range[52],52] {10,9,25,33,3,22,51,46,29,20,27,32,6, 35,31,5,1,12,24,23,49,48,37,40,52,7, 17,38,36,4,45,13,14,47,19,41,43,18, 39,50,44,2,15,34,28,16,42,21,30,11,26,8} Håkan Strömberg 15 KTH STH

Range Skapar en lista Range[5] {1,2,3,4,5} Range[0,15,3] {0,3,6,9,12,15} I den senare varianten anger man start, stopp och steg Reduce Ett tuffare sätt att lösa ekvationer. Vi använder det oftast till att lösa diofantiska ekvationer Reduce[x^2-y^2==12,Integers] (x == -4 && y == -2) (x == -4 && y == 2) (x == 4 && y == -2) (x == 4 && y == 2) Den diofantiska ekvationen ovan har fyra lösningar Rest Plockar ut allt utom det första elementet till en ny lista Return Rest[{3,4,5}] {4,5} Hoppar ur funktion och returnerar värdet av uttrycket Reverse Return[a^3] Vänder en lista bak och fram Riffle a={1,2,3,4,5}; Reverse[a] {5,4,3,2,1} Blandar två listor, ungefär som man blandar en kortlek Håkan Strömberg 16 KTH STH

a={1,2,3,4,5}; b={x,y,z,u,w}; Riffle[a,b] {1, x, 2, y, 3, z, 4, u, 5, w} Finns varianter Round Avrundar till heltal RSolve Round[3.5] 4 Round[3.49] 3 Funktion för att lösa rekursionsformel Select RSolve[{a[n]==a[n-1]+n,a[0]==0},a[n],n] {{a[n]->1/2n(1+n)}} Att med hjälp av ett kriterium välja ut element ur en lista Select[{1,2,3,4,5,6},PrimeQ] {2, 3, 5} a={6,2,4,7,9,2,1}; Select[a,#>5&] {6,7,9} SetEdgeWeights Sätter vikter på grafens bågar g=setedgeweights[g,{10,12,15,12,13,15}] SetVertexWeights Sätter vikter på grafens bågar g=setvertexweights[g,{10,12,15}] ShortestPath Bestämmer kortaste avståndet mellan två noder i en graf ShortestPath[g,2,7] 207 Håkan Strömberg 17 KTH STH

ShowGraph Plottar graph av typ Combinatorica Simplify ShowGraph[g] För att förenkla uttryck Sin Simplify[(x - y)^2/(x^2 - y^2)*(x + y)] x-y Bestämmer sinus för en vinkel v given i radianer Solve Sin[Pi/2] 1 För att lösa ekvationer och ekvationssystem Sort Solve[x^2 + x - 2 == 0] {{x -> -2}, {x -> 1}} Solve[{x+y==10,x-y==2}] {{x -> 6, y -> 4}} Sorterar en lista Sqrt a={3,5,1,4,6,2}; Sort[a] {1,2,3,4,5,6} Bestämmer kvadratroten ur n Sqrt[10]//N 3.16228 //N ger ett närmevärde StirlingS2 Beräknar Stirlig-tal av an andra ordningen StirlingS2[4,2] 7 Håkan Strömberg 18 KTH STH

Subsets Genererar alla delmängder till en mängd m={1,2,3,4}; Subsets[m] {{},{1},{2},{3},{4},{1,2},{1,3},{1,4},{2,3},{2,4}, {3,4},{1,2,3},{1,2,4},{1,3,4},{2,3,4},{1,2,3,4}} Här finns de med allihop från tomma mängden till hela mängden m Sum Summerar genererade tal Sum[1/i^2,{i,1,Infinity}] ger summan π 2 /6 Table För att skapa listor Take Table[i^2+i,{i,1,5}] {2, 6, 12, 20, 30} För att plocka ut en del ur en lista Tally a={6,5,4,3,2,1}; Take[a,{3,5}] {4,3,2} Genererar en frekvenstabell över listans innehåll a={1,2,3,2,4,4,4,5,7,7}; Tally[a] {{1,1},{2,2},{3,1},{4,3},{5,1},{7,2}} Det finns bland annat 1 etta och 3 fyror TautologyQ Bestämmer om ett logiskt uttryck alltid är sant TautologyQ[a && b!a &&! b] False Håkan Strömberg 19 KTH STH

ToCombibatoricaGraph Föra att konvertera graph till Combinatorica som hanterar grafer annorlunda Total ToCombibatoricaGraph[g] Summerar talen i en lista. Observera andra exemplet a={1,2,3,4,5}; Total[a] 15 b={{1,2},{3,4}}; Total[b] {4,6} TravelingSalesman Bestämmer den kortaste (billigaste) turen som besöker samtliga noder och återvänder till startnoden. Union TravelingSalesman[g] {1, 5, 7, 3, 4, 8, 2, 6, 1} Bestämmer unionen av mängder. Funktionen plockar även bort dubbletter och sorterar lista While Union[{2,3,4,1},{7,3,2,6}] {1, 2, 3, 4, 6, 7} Union[{3,4,3,2,5,5}] {2, 3, 4, 5} While[test,body] Här ett exempel x=1; n=0; While[x<10000, x=2x; n++; ] n Håkan Strömberg 20 KTH STH