Mystiske hændelser i højere dimensioner

Tidlige computerspil var “flade” – karakterne kunne hoppe over, men ikke “til siden”. Nu er de naturligvis rumlige – på den flade computerskærm. Man kan så gå udenom i stedet for at forsøge at hoppe over. Men man kan stadig være fanget i et låst lokale. Hvis man har en fjerde dimension kan man bruge den til at “gå udenom”. Det er der nogen, der har lavet spil med – her er et forsøg, som muligvis ikke er realiseret:

Matematikere og anvendere af matematik har ikke noget problem med at tale om eksempelvis data i dimensioner højere end 3. For en gymnasieelev kan det lyde meget besynderligt og mange spørger “Er den fjerde dimension så tiden?” Men for daglige brugere af  modeller for fysik, biologi, økonomi og helt generelt højere dimensionalt data, er det slet ikke noget, vi overvejer.

Et punkt (1,-3,7,0,534,14) ligger for os i dimension 6, det 6-dimensionale rum. Der er nemlig 6 koordinater.  Vi kalder dette rum for \mathbb{R}^6 (udtales “r seks” og ikke “r i sjette”) At vi så ikke lige kan tegne det ind i et koordinatsystem er en anden sag. Man kan sagtens regne med 6 koordinater uden at tegne. I det følgende tænker jeg ind imellem på sådan et punkt som en vektor – fra Origo til (1,-3,7,0,534,14) – og ind imellem som et punkt.

Nedenunder er a = (a_1,a_2,\ldots, a_6) og b= (b_1,b_2,\ldots, b_6)

Addition og multiplikation med en skalar (et tal):

\mathbf{a+b}= (a_1+b_1,a_2+b_2,\ldots, a_6+b_6)

k\mathbf{a}=(ka_1,ka_2,\ldots,ka_6) (her er k et reelt tal.)

Afstand, vinkler, indre produkt.

Der er flere afstandsbegreber (metrikker), men den historie får I en anden gang. Her går vi med den Euklidiske version, som er den, de fleste er vant til. Jeg skriver alt i dimension 6, men det er naturligvis samme historie i dimension 238:

Skalarprodukt (indre produkt): \mathbf{a\cdot b}= a_1b_1+a_2b_2+\cdots +a_6b_6 – gang koordinater sammen parvis og læg resultaterne sammen.

Længden |\mathbf{a}|=\sqrt{\mathbf{a\cdot a}}

Afstand: Afstand mellem punkter er længden af vektoren, der forbinder dem: |\mathbf{a-b}|=\sqrt{\mathbf{(a-b)\cdot (a-b)}}

Vinkler: Vinklen v mellem a og b kan findes udfra

\cos(v)=\frac{\mathbf{a\cdot b}}{|\mathbf{a}||\mathbf{b}|}

Kugler og kuber.

Cirkler i planen og kugleflader i rummet med centrum C og radius r, er begge karakteriseret ved, at det er du punkter, der har  afstand r til et punktet C. Det kan umiddelbart generaliseres:

Kuglefladen med centrum i C=(c_1,c_2,\ldots,c_6)  og radius r er de punkter, der opfylder |\mathbf{x-C}| =r Med centrum i Origo og radius 1 får vi

S^5=\{\mathbf{x}\in\mathbb{R}^6 |\mathbf{x}|=1\}, de punkter i \mathbb{R}^6, som har længde 1. Hvorfor S^5 og ikke S^6? Fordi sådan en kugleflade har en dimension mindre – ligesom man kan have planer i \mathbb{R}^3. Den historie må også vente… Kuglefladen i \mathbb{R}^3 er altså S^2 og S^1 er en cirkel.

Rektangler og kasser kan også fint generaliseres. De punkter, der opfylder 0\leq x_1 \leq 5, 2\leq x_2\leq 4, -3\leq x_3\leq 5, 1 \leq x_4\leq 2, 1 \leq x_5\leq 2,1 \leq x_6\leq 2 er en kasse, et hyperrektangel om man vil.

Der er mere om kugleflader (kugler) i blogindlægget om kuglepakninger

Den “tesseract”, der vises i filmen ovenfor, er en kube i R^4, en hyperkube. Altså punkter (x_1,x_2,x_3,x_4), hvor alle koordinater ligger mellem 0 og 1. Ydersiden af sådan en kube er der, hvor mindst en af koordinaterne er enten 0 eller 1. En sædvanlig kube har 6 sideflader: (0,x_2,x_3) (1,x_2,x_3) (x_1,0,x_3) (x_1,1,x_3) (x_1,x_2,0) (x_1,x_2,1).

En hyperkube har 8 kuber på sin “overflade”: (0,x_2,x_3,x_4) (1,x_2,x_3,x_4)(x_1,0,x_3,x_4) (x_1,1,x_3,x_4) (x_1,x_2,0,x_4) (x_1,x_2,1,x_4) (x_1,x_2,x_3,0) (x_1,x_2,x_3,1). De hænger sammen – ligesom sidefladerne på en sædvanlig kube. Man kan selvfølgelig ikke se det i vores sædvanlige dimension, men man kan lave en film, hvor man ser projektionen af en roterende hyperkube:

En sædvanlig kube, der roterer kan vores hjerne straks lave 3d, selvom den er på en 2d skærm:

File:Hexahedron.gif

 

Kurver og kontinuitet.

Det går jo fint med at generalisere det, vi kender fra plan og rum. Nu prøver vi med kurver. vi skal jo snyde i et spil og komme ud af et lukket rum ved at bruge en dimension mere.:

 

En parametriseret kurve i \mathbf{R}^n er en funktion r: \mathbf{R}\to\mathbf{R}^nr(t)=(r_1(t),r_2(t),\ldots,r_n(t), funktionen tager én koordinat ind og giver n koordinater ud. Man kan også sige, at den består af n koordinatfunktioner.

Kontinuitet: Gymnasieintuitionen om “ikke at løfte blyanten” har det svært, når blyanten skal tegne noget i højere dimensioner. I får definitionen at tygge på, men faktisk kan jeg nøjes med sige r: \mathbf{R}\to\mathbf{R}^nr(t)=(r_1(t),r_2(t),\ldots,r_n(t) er kontinuert, hvis alle koordinatfunktionerne er kontinuerte.

Her er definitionen: r: \mathbf{R}\to\mathbf{R}^nr(t)=(r_1(t),r_2(t),\ldots,r_n(t) er kontinuert i $t_0$, hvis der til ethvert \varepsilon >0 findes et \delta>0, så |t-t_0|< \delta  garanterer, at |r(t)-r(t_0)|<\varepsilon

Jeg illustrerer, hvordan man kommer ud af et kugleformet rum – I kan selv oversætte til noget med kasser:

Hvis en 2d-computerspilsfigur er spærret inde i cirklen S^1 og kun kan bevæge sig i planen, så kan den ikke komme ud (uden at krydse gennem cirklen): Lad os antage, jeg har bevæget mig ud langs kurven (r_1(t),r_2(t)) startende med t=0 sluttende med t=1. Det er en kontinuert kurve (ellers kan alt lade sig gøre i det computerspil 🙂 ).

Så er |(r_1(0),r_2(0)|<1, fordi jeg begynder indenfor cirklen. Og |(r_1(1),r_2(1)|>1, fordi jeg ender udenfor. Nu påstår jeg, at der er et tidspunkt t_0, hvor |r(t_0)|=1. Hvorfor? Jo, den sammensatte funktion g(t)= |r(t)| er kontinuert og g(0)<1, g(1)>1. Så siger mellemværdisætningen, at der findes t_0, hvor |r(t_0)|=1.

Hvis den 2d-computerspilsfigur får sig en ekstra dimension, så kan den komme ud – den hopper over kanten:

  • Lad os starte i (0,0), som nu udvides med en dimension – vi starter i (0,0,0).
  • Første del af kurven er r(t)=(0,0,t) for t mellem 0 og 1.
  • Næste del er r(t) = (t-1,0,1) for t mellem 1 og 3 – nu er vi kommet til punktet (2,0,1).
  • Sidste del er r(t)= (2,0,4-t) for t mellem 3 og 4. Nu er vi i punktet (2,0,0) og vi folder den tredie dimension sammen igen.

Jeg passerer naturligvis igen et sted, hvor |r(t)|=1, men det er i punktet (0.0.1), som jo ikke ligger på cirklen. Jeg hopper over.

Hvis jeg er lukket inde i S^2 kan jeg komme ud med samme trick: Jeg starter i (0,0,0). Folder min fjerde dimension ud og er nu i (0,0,0,0). Den kontinuerte kurve ud er

  • (0,0,0,t) for t mellem 0 og 1. Så er vi i (0,0,0,1)
  • (t-1,0,0,1) for t mellem 1 og 3. Så er vi i (2,0,0,1)
  • (2,0,0,4-t) for t mellem 3 og 4. Vi ender i (2,0,0,0) of folder den fjerede dimension ind igen.

Der er naturligvis et tidspunkt, hvor |r(t)|=1, nemlig i punktet (0,0,0,1), men det er ikke på S^2, som er punkter  (x,y,z,0). Jeg er “hoppet over” via den fjerde dimension.

Har man knuder på snørebåndene eller på sit strikkegarn, kan man også have nytte af en fjerde dimension. Der kan alle knuder løses op…

 

Løgnedetektorer og screening for sygdomme

I årets valgkamp ville Ekstrabladet have politikere til at underkaste sig en løgnedetektor. Det ville politikerne ikke – og det er der mange gode grunde til. En af dem er, at løgnedetektorer ikke virker. Det er ellers så smart i de amerikanske film, i talkshows og andre steder, at man kan finde “sandheden” med sådan en test. Men det er der ikke noget belæg for. (Nedenstående er en delvis genudsendelse fra Numb3rs-bloggen, men mon ikke, mange har glemt det indlæg…)

I bogen The Lie behind the Lie detector er en lang udredning om problemerne ved løgnedetektorer. Man kunne ellers forestille sig at man ret let kunne lave kontrollerede forsøg, eller undersøge noget af alt det data, man har fra allerede udførte løgnedetektioner, og det har man  også gjort, men det giver ikke gode resultater. Problemet er bl.a., at de fysiologiske reaktioner, man måler, også kan komme fra andet, end at man lyver. Og det er meget vanskeligt at skille ad. Og så er vi jo et stykke væk fra noget objektivt. Se også The polygraph and lie detection.
Et andet problem er, at forskellige personer fortolker et løgnedetektorudkrift forskelligt – i en Nature artikel fra 1984 tog man 207 udskrifter fra løgnedetektorer i en stribe senere opklarede sager og fik dem analyseret af 14 andre løgnedetektoreksperter. Det gav dom til 43 % af de uskyldige og frikendelse til 36 % af de skyldige…

Det er selvfølgelig værst, at man risikerer at dømme en uskyldig, men i andre lignende situationer kan både falske positive og falske negative være problematisk. Tester man for en sygdom kan det være lige problematisk at sende raske personer igennem en behandling med bivirkninger som at overse nogen, som er syge.

Hvordan ved man, om en test er god?

En test for en sygdom skal jo finde de syge, men helst ikke udpege for mange raske som værende syge. Lad os sige, man har en positiv test, hvis den viser, man er syg.

Der er et antal falsk positive FP (raske, som tester positivt)

Et antal falsk negative FN (syge med en negativ test)

Et antal sandt positive SP( De syge med positiv test)

Og et antal sandt negative SN (raske med negativ test)

Specificitet er \frac{SN}{(SN+FP)}, andelen af de raske, som tester negativt, altså sandsynligheden for at testen viser, man er rask, givet man er rask,  P(testrask|rask).
Sensitiviteten er \frac{SP}{(SP+FN)}, andelen af syge, der tester positivt P(testsyg|syg).

Vi er mere interesserede i “den anden vej”:

Den positivt prædiktive værdi er \frac{SP}{(SP+FP)}, andelen af positivt testede, som rent faktisk er syge, sandsynligheden for at være syg, når testen viser, man er det, P(syg|testsyg).
Eller, man kan se på den negativt prædiktive værdi \frac{SN}{(SN+FN)}, andelen af negativt testede, der rent faktisk er raske P(rask|testrask).
De prædiktive værdier afhænger af, hvor stor en andel af de testede, der er syge, prævalensen. Og ikke kun af sensitivitet og specificitet.

Eksempel: En test har sensitivitet 0,86 og specificitet 0,92

På et hospital henvises folk, som mistænkes for at have  sygdommen, til test. På et andet er det en test, der laves på alle. Prævalensen i det første tilfælde er altså højere end i det andet tilfælde.

Hospital 1 er 37 ud af 49 patienter syge. (Prævalensen er 37/49=0,76)

SP=0,86×37=32,
SN=(49-37)x0,92=11,
FP=12-11=1,
FN=37-32=5.

Specificitet SN/(SN+FP)=11/12=0,92

Sensitivitet SP/(SP+FN)=32/37=0,86

Positiv prædiktiv værdi SP/(SP+FP)=32/33=0,97

Negativ prædiktiv værdi SN/(SN+FN)=11/16=0,69

Hospital 2 er 37 ud af 157 syge. Prævalens 0,24

SP=32, SN=110, FP=10,  FN=5,

Specificitet SN/(SN+FP)=110/120=0,92

Sensitivitet SP/(SP+FN)=32/37=0,86

Positiv prædiktiv værdi SP/(SP+FP)=32/42=0,76

Negativ prædiktiv værdi SN/(SN+FN)=110/115=0,96

Hvis man tester en stor befolkningsgruppe med få syge, vil den negative prædiktive værdi være stor, i.e., hvis man tester negativt, er man med stor sandsynlighed rask. Men dem, der tester positivt vil i mange tilfælde være raske, i.e., sandsynligheden for at være syg givet testen viser syg, er lille. (Tallene er fra How sensitive is sensitivity, how specific is specificity, Phillips, Scott og Blasczcynski, American Journal of Roentgenology. Prøv selv at regne på, hvod der sker, hvis der er 37 syge ud af 12037. Så bliver positiv prædiktiv værdi 0.03 og negativ prædiktiv værdi 0,99. Der er altså rigtig mange blandt dem, der tester positivt, som alligevel er raske – her 97 ud af 100. Det er det, man skal overveje, når man laver store screeninger for sygdomme. Der er flere raske, som skal undersøges yderligere, måske behandles og i hvert fald bliver unødigt bekymrede.

På Understanding Uncertainty er der en fin animation af andre eksempler.

Løgnedetektorer igen.
Lad os nu antage, at de kan finde løgnere med en vis sandsynlighed (det kan de ikke, men alligevel…). Tester man alle, der ansøger om job i FBI, CIA,… og det gør man…vil dem, der ser ud til at lyve, stadig med ret stor sandsynlighed tale sandt. I.e., mange får et stempel som spion, uden at være det. Dem, der udses som ikke værende spioner, er det med ret stor sandsynlighed ikke, men det er mere fordi, der er rigtig mange, der ikke er spioner, end fordi man er god til at finde spioner. Der vil jo stadig være en enkelt spion der slipper ind nu og da.

Vi kan være glade for, at vi ikke bruger metoden til noget seriøst i Danmark og håbe på, det forbliver noget, der hører til pjattede TV-programmer. Så fans af Doctor Phil eller  andre populære brugere af løgnedetektorer bør tage det med et gran salt. Udover det helt oplagte, at sårbare mennesker ikke bør være underholdning. Men det er ikke matematik – bare almindelig ordentlighed.

Abelprisen 2019 går til Karen Uhlenbeck.

Tirsdag blev årets Abelprisvinder annonceret i en live streamet begivenhed i Oslo.

Karen K.Uhlenbeck får prisen for sit nybrudsarbejde (de skriver “nybrottsarbeid” på norsk) indenfor geometriske differentialligninger, gaugeteori og integrable systemer. Og for den fundamentale indflydelse, hendes arbejde har haft i analyse, geometri og matematisk fysik.

Her fortæller Karen Uhlenbeck om Emmy Noethers arbejde. (Foto Andrea Kane, IAS,Princeton) Noether var  i 1928 en af hovedforedragsholderne ved den internationale kongress for matematiker, ICM. Den næste kvinde i rækken af hovedforedragsholdere ved ICM var Karen Uhlenbeck i 1990.

Karen Keskulla Uhlenbeck (f. 1944) har, ligesom de andre Abelprismodtagere, haft en lang karriere i matematik og der er mange fine interviews og portrætter af hende på nettet. På Celebratio.org er hun  portrætteret i et fint interview af Allyn Jackson. Der er i øvrigt andre fine matematikerportrætter.

Jeg kender Uhlenbecks matematik fra da jeg i mit speciale beskæftigede mig med Gaugeteori. Uhlenbecks “bubbling” var helt centralt i det, der dengang var det hotte emne, 4-dimensionale mangfoldigheder og nye ideer, som forbandt forskellige områder af matematik og Gaugeteori fra fysik. Jeg vil (og kan) ikke forklare Uhlenbecks arbejde i detaljer, men nybrud, som Abelpriskommiteen kalder det, er en god overskrift.

Minimalflader, variationsregning og bobler/instantoner.

Minima og maksima for funktioner kendes fra gymnasierne. Man skal differentiere funktionen og finde nulpunkter.

Variationsregning er et skridt videre: Det, der skal minimeres er et funktional, som er en funktion, hvis input er andre funktioner. Det klassiske eksempel er det brachistochrone problem: Lav den hurtigste kuglebane mellem to punkter. Kuglen lægges i det øverste punkt og er kun påvirket af tyngdekraften, mens den ruller til det andet punkt. Man ville måske gætte på en linje – det er sådan en pæn kurve – men den blå kurve nedenfor giver svaret.

Billedresultat for brachistochrone

Man skal altså se på alle de kurver, der findes fra A til B – kurverne er de variable, funktionen er den samlede tid.

Mere generelt ser man på den samlede energi. Der er her vide rammer for, hvad energifunktionalet kan være. Man kan faktisk også her differentiere og finde nulpunkter for den afledede, men det kræver mere maskineri. Og man får bragt partielle afledede ind i billedet.

Uhlenbecks PhD-afhandling, “The calculus of variations and global analysis”, 1968, er i dette område.

Mens det brachistochrone problem drejer  sig om alle kurver mellem to punkter, kan man i stedet se på flader (2-dimensionale objekter) mellem givne randkurver (tænk på sæbehinder)

Billedresultat for soap bubble minimal surface

OBS: Det er ikke det, der er Uhlenbecks “bubbling”.

Man leder her efter fladen med mindst areal. Trækker man ringene langt fra hinanden, får man to sæbehinder – en i hver ring.

I det mere generelle problem, som Uhlenbeck og Jonathan Sacks løste, har man flader i mere komplicerede rum end vores sædvanlige Euklidiske. En flade er da en funktion fra kuglefladen til dette mere komplicerede rum. De konstruerer en følge af sådanne afbildninger, som allesammen er “pæne” og kommer tættere og tættere på en ny flade – en grænse for følgen. Matematikstuderende har set den slags grænsefunktioner i indledende analyse.

Grænsefladen er en funktion, som er pæn, bortset fra i et endeligt antal punkter, singulariteter. Tæt på singulariteterne har man “bubbling”. Arealet af grænsefladen er mindre end forventet – det er ikke grænsen for arealerne af følgen. Noget af arealet er boblet af – som et stykke tyggegummi.

Metoden og ideerne har haft enorm indflydelse – grænser, der kan kontrolleres, bortset fra i endelig mange punkter, er ikke så ringe endda. Og bubbling giver en forståelse af singulariteterne.

Gauge Teori

(udtales som en engelsk port, “gage”) drejer sig i fysik om de fænomener, som ikke ændrer sig, selvom man skifter “koordinatsystem” – laver en gaugetransformation. Fysikerne Yang og Mills fik i 1999 Nobelprisen for det, de i 1954 havde foreslået som en model for den svage vekselvirkning og som udvidede de hidtil brugte “koordinatskift” (til ikke-abelske grupper for de indviede).

Det, der skal være uafhængigt af valg af koordinatsystem er nogle partielle differentialligninger.

Invarians under koordinatskiftet simplere eksempel:

“Vindretningen er NNØ (Nord Nord Øst), hvor jeg står” giver kun mening, hvis jeg har et koordinatsystem med retningerne. Men vinden har den retning, den har.

Billedresultat for vindretning danmark

Står man på Nordpolen, given NNØ ikke mening – der skal bruges flere koordinatsystemer for at beskrive retninger på Jorden, og tilhørende “oversættelser” fra et koordinatsystem til et andet.

Tilbage til Gaugeteori. Den kombination af partielle differentialligninger (Yang Millsligningerne)  og geometri (kugleflader, mere komplicerede flader og lignende højeredimensionale objekter – mangfoldigheder) kræver nye metoder og mod til at gøre noget i det ene matematiske område, som man aldrig har prøvet før. Uhlenbeck gav matematisk fast grund under fødderne i studiet af Yang Mills ligningerne. Bl.a. er bubbling fundamentalt. Uhlenbeck forklarer selv i interviewet med Allyn Jackson, at bubbling fungerer, når man har et problem, der er invariant under skalering – noget, hun allerede havde klarlagt i sin phd-afhandling.

Som den skarpsindige læser vil se, er Uhlenbecks arbejde ikke let at forklare. Hun har arbejdet mellem matematiske områder og kastet sig ud på det dybe vand imellem områderne.

Karen Uhlenbeck

Karen Uhlenbeck i Berkeley i 1969.

En anden side af Karen Uhlenbeck er hendes arbejde for at give matematikken videre. Hun startede, sammen med Dan Freed i 1996 Park City Mathematics Institute, PCMI, hvor bl.a. gymnasielærere og matematikere mødes. Det er flere parallelle sommerskoler og har haft stor betydning for mange, som er mødtes der. Der er en forskningsdel for phd-studerende og der er fokus på at give minoriteter i faget mulighed for at få fodfæste.

Karen Uhlenbeck har haft enorm indflydelse i både matematik som fag og blandt matematikere, og potentielle matematikere, hvor hun siger, hun håber, hun kan være rollemodel for de skæve eksistenser. Hun er rollemodel for mange, hun er en matematisk superstjerne og nu får hun Abelprisen. Det er jeg meget begejstret for.

Læs mere i Quanta Magazine  og på Abelprisens sider. Der er mange andre, men dem finder I nok, når I Googler.

Julekalenderanbefaling

Jeg er lidt sent ude, men det bliver jo jul alligevel.

Der kommer ikke julekalender her på bloggen. Men der er heldigvis andre, der tror, de kan holde dampen oppe og poste 24 indlæg med matematik. Så her skyder vi genvej og henviser til andre.

Først på tysk Mathe im Advent
Man skal vistnok tilmelde sig.
The Aperiodical har selvfølgelig en julekalender. Der er mange fine matematikhistorier og opgaver. Og naturligvis Møbiusbånd.

Matthew Scroggs, endnu en matematikformidler i Storbritannien, har opgaver og hovedbrud.

Plus Magazine har en. Med Podcasts.

Transum, som jeg ikke kendte i forvejen har også en – med opgaver.

Og så noget matlabkode forklædt som juletræ:

Koden finder I her.

I kan vælge forskellige parametre. Hvor mange kugler skal der på? Hvor skinnende skal kuglerne være… Uhyre nyttigt 🙂

Scutoiden- en ny byggeblok i biologi

En artikel i Nature Communications om et “nyt matematisk objekt” har givet genlyd. Scutoiden hedder den lille ny. Den kan ses på figur d, hvor to scutoider passer sammen (den grønne og den gule)

Fig. 1

Illustration fra Nature Communications.

Scutoider er (op)fundet af en gruppe forskere – biologer, dataloger, matematikere, som ville forstå, hvordan visse typer væv, epithelvæv, er opbygget. Den slags væv er lagdelt – eller pakket mellem nogle lag. Ifølge artiklen i Nature, er der epithel-celler, som forbinder celler i to (flade) lag. Det har man bl.a. set i bananfluer – drosophila.

File:Epithelium TCJ.pngBillede fra Wikipedia – cell junctions.

Hvis lagene ikke krummer, er der allerede en fin model, hvor de to lag forbindes med prismer og keglestubbe (a og b på første figur – frustrum er keglestub).

Men hvad nu, hvis lagene krummer? Som eksempelvis når væv er afgrænset omkring en blodåre, tarmene eller noget i den retning?

I hvert afgrænsende lag danner cellegrænserne Voronoiceller:

Billedresultat for cells form voronoi De røde prikker er centre. Et punkt i en “celle” ligger tættere på det røde punkt i cellen end på noget andet rødt punkt.

Sådan er det altid – uanset, om lagene krummer eller ej. Nu skal to sådanne lag forbindes. I modellen skal der laves en forbindelse fra hver Voronoicelle i det ene lag til hver Voronoicelle i det andet, som man ser i a) og b) i første figur. Når lagene er plane, har man hidtil kunnet gøre det med keglestubbe og prismer – fordi man i det tilfælde har lige mange kanter langs matchende Voronoiceller i de to lag.

Forestiller vi os nu, at de to lag er cylindriske med forskellig radius som i c) og desuden for at gøre det simplere, at cellekernerne ligger “samme sted” bortset fra radiuskoordinaten – mere præcist: Punkter i rummet kan beskrives med en radius, vinkel og en højde. Figuren nedenfor viser radius, vinkel og højde (\rho,\varphi, z). Cellekernerne på de to forskellige cylindere har altså samme (\varphi,z), men forskellig \rho

Hvad sker der så med Voronoicellerne? Bliver de ikke bare “ganget ud” med radius? Nej! For afstande mellem punkter på cylinderne bliver ikke bare ganget:

Afstande på en cylinder kan findes ved at “rulle cylinderen ud” til et rektangel og måle i planen.

Er cylinderen h høj og har radius r, er rektanglet h på den ene led og 2\pi r på den anden. Med samme højde og radius R er det h på den ene led og 2 \pi R på den anden. Og så ændrer Voronoicellerne sig kvalitativt. På billederne nedenfor, som Jakob Gulddahl Rasmussen har lavet til mig, er 6-kanten omkring det midterste punkt blevet til en 4-kant, når der strækkes på den ene led. Linjestykkerne er midtnormaler mellem par af punkter (på linjestykket er der lige langt til to af “cellekernerne”) og de slutter, når de møder andre midtnormaler. I kan lege med, hvordan det ændrer sig, når man strækker på den ene led, eller  når man flytter  i en af de mange apps, der findes. Her er en på University of Michigan. – Se mere på Numb3rsbloggen

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Og så kommer problemet: Man skal indsætte en forbindelse mellem celler med forskelligt antal kanter. Det kan ikke være en keglestub eller et prisme, for de har samme antal kanter i øverste og nederste flade. Det er her Scutoiden skal bruges. I figuren øverst ser man scutoider mellem femkanter og sekskanter. Den ene kant i scutoiden deler sig et stykke nede i to kanter. (Hvis man flytter delepunktet helt ned (eller op), får man et prisme, men det er ikke sådan, vævet opfører sig.)

Scutoidens sider er ikke plane – de krummer. Men det har vist sig, at det er sådan, det ser ud, når man kigger nærmere på en bananflue, eller hvad man nu har.

Scutoider bruges nu til at lave modeller for epithelvæv. Man gætter på, at de kan bruges til at lave kunstigt væv.

Man kan købe 3d-printede scutoider, der er artikler om scutoider her, der og allevegne. Jo, den lille ny er berømt.

Pair of Packable Scutoids 3d printed Order &quot;Small&quot; for hollow models or &quot;Large&quot; for (same size) solid models

Selvfølge har den uforlignelige Matt Parker lavet en video om scutoider. Med piberensere… Og interview med matematikeren bag.

Om det er ny matematik, kan man bestemt godt diskutere. Men det er ny indsigt og giver nye anvendelsesmuligheder i et samarbejde mellem mange fagområder. Det er da helt fremragende!

p-værdier, p < 0.05, og multiple testing

Lisbeth Fajstrup spurgte mig tidligere på året, om jeg kunne skrive et blogindlæg, som svarede på de to følgende spørgsmål: (1) hvorfor skal p-værdier være mindre end 5\% og (2) hvordan flere sammenligninger har indflydelse på p-værdien (også kaldt multiple testing problemet). Det er to gode spørgsmål, og i skrivende stund, mens vi er kommet godt ind i det nye år, har jeg endelig tid (taget mig sammen til at finde tiden) til at svare på de to spørgmål. Inden jeg gør dette, for at sikre vi alle er på samme side, introducerer jeg kort p-værdi konceptet, med den sædvanlige tunge definition og et kort eksempel. Hvis læser allerede ved hvad p-værdier er, kan dette afsnit nemt hoppes over. Hvis læser aldrig har hørt om p-værdier før og ønsker en mere fuldstændig introduktion, så se for eksempel the American Statistical Association’s artikel fra 2016.

Kort introduktion til p-værdier

Helt generelt defineres p-værdien som:

Sandsynligheden for at observere en teststørrelse der er ligeså eller mere ekstrem, end hvad der allerede er observeret, givet at nulhypotesen er sand.

For at illustrere, hvordan dette skal forståes, lad os tage et eksempel:
Lad os sige, at vi vil undersøge om befolkningen bakker op om Formel 1 ræs i København. Vores nul hypotese er at befolkningen hverken er for eller imod, altså at opbakningen er fifty-fifty. Alternativet er, at opbakningen er mindre eller større end 50\%, da vi ikke forud for undersøgelsen har indsamlet noget information.

Vi går ud i landet og spørger seks tilfældige personer. Det viser sig at alle seks personer støtter op om forslaget. Under nulhypotesen er sandsynligheden for at se seks observationer ‘imod‘ forslaget:

\mathbb{P}\left(6\text{ personer imod}\right)=\left(\frac{1}{2}\right)^{6} = \frac{1}{64},

 

og da vi ikke er forudindtagede, så er seks individer ‘for‘ forslaget lige så ekstrem en observation. (Og der kan ikke være observationer, som er mere ekstreme.) Dette medfører en p-værdi på:

p = \mathbb{P}\left(6\text{ personer imod}\right) + \mathbb{P}\left(6\text{ personer for}\right) = 2\cdot\frac{1}{64} = \frac{1}{32} = 0{,}03125.

 

Er dette nok til at forkaste nulhypotesen? Hvis vi skal spørge det hav af lærebøger der bruges i statistik undervisning, vil de sige, at nulhypotesen forkastes så snart p-værdien er mindre end 5\%. Perfekt! Alt er som det være, verden er flad placeret på ryggen af en skildpadde der står på ryggen af en større skildpadde.

Den udregnede p-værdi fortæller os ikke meget andet end, hvad vi kan læse af definitionen: Hvis nulhypotesen er sand, så er sandsynligheden for at trække en ny stikprøve, hvor andelen er mere ekstrem end den vi så ovenfor, lige over 3\%. Er tre procent nok til at vi ikke tror det er et tilfælde?

Hvis vi sætter en beslutningsgrænse (signifikansniveau) kan vi begå to typer af fejl:

  • Type I: Nulhypotesen forkastes selvom den er sand.
  • Type II: Nulhypotesen forkastes ikke selvom den er falsk.

Sætter vi beslutningsgrænsen i vores eksempel ovenfor til, at alle seks er ‘for‘ eller alle seks er ‘imod‘, før vi forkaster nulhypotesen, så er sandsynligheden for at begå en Type I fejl 3{,}125\% (p-værdien set ovenfor).

Sandsynligheden for at vi begår en Type II fejl vil afhænge af signifikansniveauet og den sande andel af populationen som er ‘imod‘ (eller ‘for‘) Formel 1 løb i København. Lad os se hvad der sker, når vi antager at sande andel af populationen som er ‘imod‘ er 0{,}25 (altså er andelen, der er ‘for0{,}75). Vi antager som ovenfor, at vi kun forkaster nulhypotesen når alle seks er ‘for‘ eller alle seks er ‘imod‘, givet dette signifikansniveau er sandsynligheden for at se seks observationer ‘imod‘ forslaget:

\mathbb{P}\left(6\text{ personer imod}\right) = \left(\frac{1}{4}\right)^{6},

 

og sandsynligheden for at se seks observationer ‘for‘ er:

\mathbb{P}\left(6\text{ personer for}\right) = \left(\frac{3}{4}\right)^{6}.

 

Dette giver en sandsynlighed for at begå en Type II fejl på:

1 - \mathbb{P}\left(\text{Type II fejl}\right) = \mathbb{P}\left(6\text{ personer imod}\right) + \mathbb{P}\left(6\text{ personer for}\right) = 0{,}17822,

 

hvor 1 - \mathbb{P}\left(\text{Type II fejl}\right) kaldes for den statistiske styrke af testen, og fortolkes som sandsynligheden for forkaste nulhypotesen, givet at den faktisk er falsk.

Det vil sige, at hvis den sande andel af populationen som er ‘imod‘ er 0{,}25, vil nulhypotesen ikke blive forkastet i knap 82\% af tilfældende, selvom den er falsk og  den sande andel ‘imod‘ forslaget endda ligger meget langt fra nulhypotesen, 50\%. Vi kan gøre det samme for enhver andel og resultatet kan ses i figuren nedenfor. Bemærk: figuren kun viser den første halvdel, da figuren er symmetrisk omkring 0.5.

 

Grunden til den høje sandsynlighed for Type II fejl i denne sammenhæng er valget af signifikansniveau og, hovedsageligt, det lave antal af observationer. Dette betyder at når vi designer et studie, (planlægger, hvor mange og hvem, vi skal spørge/teste/…,)  så prøver vi at finde en balance mellem tre størrelser: signifikansniveauet, styrken, og stikprøve størrelsen.

 

Hvorfor skal p-værdier være mindre end 5%, før de kaldes statistisk signifikante?

Ikke et specielt tilfredsstillende svar, men det er sandheden. Vi lærer vore elever og studerende det, fordi vi selv fik det at vide af vore undervisere. Dette svar, kombineret med at flere tidsskrifter i de seneste år har valgt at direkte afvise artikler der indeholder p-værdier, gjorde at ‘the American Statistical Association’ (ASA) i 2016 publiserede en artikel der redegjorde for, hvad p-værdier er og hvordan de bør fortolkes (en udmelding der fik, blandet andet, danske statistikere Claus Thorn Ekstrøm og Per Bruun Brockhoff, til at stikke hånden i vejret og proklamere: “Intet nyt under solen”). Det svarer dog ikke rigtigt på spørgsmålet: Hvorfor lige præcis 5\%?

Det simple svar er: fordi R. A. Fisher skrev det og hans ord lov. Fisher er en af de mest anerkendte statistikere, og bliver generelt betragtet som en af fædrene til moderne statistik. Et eksempel på Fishers brug af signifikansniveauet, kan ses i hans artikel fra 1926:

If one in twenty does not seem high enough odds, we may, if we prefer it, draw the line at one in fifty (the 2 per cent point), or one in a hundred (the 1 per cent point). Personally, the writer prefers to set a low standard of significance at the 5 per cent point, and ignore entirely all results which fail to reach this level. A scientific fact should be regarded as experimentally established only if a properly designed experiment rarely fails to give this level of significance.

Altså giver Fisher en følge af mulige signifikansniveauer efterfulgt af hans foretrukne niveau på 5\%. Lignende argument findes i hans bog ‘Statistical Methods for Research Workers‘ (1925), dog præsenteret ved standardafvigelser (for en normalfordelt teststørrelse svarer et signifikansniveu på 5\% til knap 2 standard afvigelser). Ydermere, indeholdt bogen tabeller til opslag af fraktiler af (bestemte) sandsynlighedsfordelinger, som indeholdte: 1\%, 2\%, 5\%, 10\%, 20\%,….

Det heller ikke vigtigt at signifikansniveauet lige præcist er 5\%, det er størrelsesordenen som er vigtig; det gør ikke den store forskel om signifikansniveauet er 4\%, 5\%, eller 6\%. Men denne størrelsesorden giver, i de fleste tilfælde, en god balance mellem den statistiske styrke og stikprøve størrelsen. Altså kan vi med et signifikansniveau omkring 5\% opnå en høj styrke uden at skulle indsamle en fuldstændig ekstrem stor stikprøve.

Hvorfor lærer vi så stadig vore elever og studerende, at signifikansniveauet bør være 5\%? Som jeg ser det er der tre grunde:

  1. Det leder, i de fleste tilfælde, til en god balance mellem andelen af Type I fejl, Type II fejl og størrelsen af stikprøven.
  2. Det gør det nemmere at sammenligne studier, hvis alle bruger det samme signifikansniveau og samme styrke.
  3. Det er nemmere at lære et stort antal elever en ‘kageopskrift’, end at få dem til at tage stilling til den andel af Type I og II fejl, de vil tillade i deres analyse.

 

Multiple testing problemet

Problemet opstår, når flere hypoteser testes på samme tid. Jo flere hypoteser der testes på samme tid, jo større er sandsynligheden for, at der opstår en fejl. Lad os i det følgende antage at andelen af acceptable Type I fejl er sat til 5\%.

Lad os eksempelvis sige, at vi i stedet for at teste et nyfundent stof x direkte for dens effekt på sygdommen s, derimod tester det for effekten på 100 forskellig symptomer. Ydermere, antag at nulhypotesen er sand i alle 100 tilfælde (altså at der ingen effekt er). Dette vil medføre et forventet antal Type I fejl på 5 (100 \times 5\%). Hvis de 100 hypotesetest, vi foretager, kan antages at være uafhængige, giver dette en sandsynlighed på 99{,}4\% for at se mindst en Type I fejl, (hvor vi altså konkluderer, at stoffet virker på mindst et af symptomerne) da: 1-(1-0,05)^{100}=0.994.

Sandsynligheden for mindst en Type I fejl, kaldes også ‘the familywise error rate‘ (FWER). Et oplagt spørgsmål er: hvordan kan vi sikrer at FWER er mindre end den acceptable andel af Type I fejl? Der har gennem årene været en del bud på løsninger til dette problem. Vi kaster et kort blik på den simpleste og mest anvendte procedure, Bonferroni korrektionen.

Lad p_i være p-værdien for hypotese H_i, så afvises H_i, i følge Bonferroni, hvis

p_i < \frac{\alpha}{I},

 

hvor \alpha er den acceptable andel af Type I fejl og I er det totale antal af hypoteser. I vores eksempel er \alpha = 0.05 og I = 100. Beviset for at Bonferroni korrektionen sikre FWER \leq \alpha er som følger:

\text{FWER} = \mathbb{P}\left(\bigcup\limits_{i=1}^{I}\left[p_i \leq \frac{\alpha}{I}\right]\right) \leq \sum_{i = 1}^{I} \mathbb{P}\left(p_i \leq \frac{\alpha}{I}\right) = I\frac{\alpha}{I} = \alpha,

 

hvor første ulighed holder ved Booles ulighed, der siger at:

\mathbb{P}\left(\bigcup\limits_i A_i\right) \leq \sum_i \mathbb{P}\left(A_i\right).

 

Bonferroni korrektionen er en særdeles konservativ metode, hvis der laves mange hypotese test eller p-værdierne er positivt korrelerede. Dette betyder at korrektionen foregår på bekostning af et større antal Type II fejl.

I de senere år, er dette blevet et problem ifm. ‘genome-wide association studies‘ (GWAS). Her testes forskellen i individers DNA baser (de byggesten vore kromosomer består af) for deres indflydelse på en sygdom eller et fænotypisk træk (så som hårfarve). Applikationer som denne, har ført til en række alternativer til Bonferroni korrektionen. Den mest anvendte her i blandt er ‘false discovery rate‘ (FDR), som blev formelt beskrevet af Yoav Benjamini og Yosef Hochberg i 1995, altså en forholdsvis ny metode i denne sammenhæng. Mere information kan findes på wikipedia siderne: ‘Multiple comparison problem‘, ‘Bonferroni correction‘, ‘False discovery rate‘, og ‘Genome-wide association study‘.

Sommerferie – og masser af matematik

Det er sommer og der er stilhed på bloggen. Mens I venter er her et tilbud:

På The Aperiodical har de The Big Internet Math-Off – inspireret af VM i fodbold, I presume. Det er knock out fra begyndelsen af. To matematikformidlere fortæller om deres yndlingsmatematik og der kan så stemmes. Her er et forslag: Jeg lover, at vi vil fortælle mere her på bloggen om mindst et af emnerne. (Eller måske bare give en dansk version – det er svært at konkurrere med Matt Parker og co.)

Her er de hidtidige indlæg:

James Tanton mod Nira Chamberlain.

Tanton: Om at skære en kage op og samle den igen og få kage tilovers – og lave uendelig meget kage.

Chamberlain: Om Formel 1 og hvordan Reynoldsligningen sikrer, hjulene ikke falder af.

Samuel Hansen mod Paul Taylor

Hansen: Hvorfor dine venner har flere venner, end du har (Link til Soundcloud) og hvordan det kan bruges til at stoppe epidemier.

Taylor: Hvordan kan man være helt sikker på, Pythagoras’ sætning holder (se linket ovenfor – det er ikke en video.)

Peter Rowlett mod Alison Kiddle

Rowlett: Parabolske kurver – herunder at tegne dem med rette linjer. Og tikz-kode, så du kan gøre det i LaTeX. Også en lille video

Kiddle: Hagas sætning – matematisk origami, om at folde et kvadrat og få delt siderne  i diverse brøkdele Se også Plus Magazine

Edmund Harriss mod Colin Wright

Harriss: Penrose fliselægning. Det har vi haft på bloggen før, men ikke med så fine fliser skåret i træ 🙂

Wright: Tag et spil kort og lav 13 bunker (med 4 i hver). Hvis der er alle kort es, 2,3,…, konge, (ikke nødvendigvis i rækkefølge)  er du færdig. Ellers: Kan du omorganisere hver bunke, så du ender med at have es,to,…, konge øverst? Svaret er, ifølge Wright, altid ja.

Tiago Hirth mod Evelyn Lamb

Hirth: Et rebtrick med Borromeanske ringe

 

Lamb: Wallis’ si og sammenhængen med \pi. (I familie med Sierpinskis tæppe, Mengers svamp,…) One level of the construction of the Wallis sieve Hun har mere om det på sin blog Det er et af en længere række af yndlingsobjekter (favourite spaces – svært at oversætte)

Matt Parker mod Matthew Scroggs 

Parker: Machine Learning med perler i æsker. En “maskine” lærer at spille kryds og bolle.

 

Scroggs: Om at spille Asteroids i en kortprojektion (han kalder det Mathsteroids). Blogmosteren her synes, det er supercool, men kortprojektioner er altså virkelig god matematik.

Her er spillet i Mercatorprojekttionen

Der er andre, som er mere udfordrende: Billedet her viser rette linjer i den projektion, der bruges i FNs logo.

FNs logo

James Propp mod Zoe Griffiths

Propp: Om knuder og rebtrick.

Griffiths: Sandsynlihedsteori og placering af passagerer i et fly

 

Jo Morgan mod Tony Mann

Morgan: Hexaflexagons. Med link til Vi Harts videoer om netop det. De har danske undertekster!

 

Mann: Om tilfældige tal og at score 100% til enhver eksamen (Njah, mon dog)

 

 

 

 

 

 

 

 

 

 

 

Om at blande kort

Dette indlæg er motiveret af https://fredhohman.com/card-shuffling/.

Opdateret 24/6-2018 10:20: Links til Numb3rs-bloggen tilføjet.

Spillekort skal blandes. En gængs måde at gøre det på, er at dele kortbunken i to mindre bunker af (ca.) samme størrelse og mikse de to bunker fra bund til top. På engelsk hedder det et riffle shuffle. (Jeg kender ikke det danske navn for denne måde at blande på.) Man kan overveje hvor mange gange dette skal gøres for bunken “er godt nok blandet” (for en passende definition af det). 7 gange er tilsyneladende nok (hvis man gør det rigtigt osv.). En matematisk model for denne måde at blande på er Gilbert-Shannon-Reeds modellen. Ovre på Numb3rs-bloggen er der mere om spillekort og matematik i dette indlæg. Bemærk at videoen (“7 gange er tilsyneladende nok”) er med Persi Diaconis som også omtales i Numb3rs-indlægget.

En mere simpel måde at blande på, er at tage det øverste kort og indsætte det et tilfældigt sted i bunken. Og sådan fortsætter man. Man kan nu stille sig selv det samme spørgsmål: hvor mange gange skal man gøre dette for at kortbunken er blandet “nok” (jf. ovenfor)?

Man kan vise (se fx 7 gange er tilsyneladende nok / https://fredhohman.com/card-shuffling/), at man i gennemsnit skal gentage en sådan simpel blanding 235 gange for at kortbunken er blandet “nok”. En del af svaret er, at bunken er blandet “nok” når bundkortet (det nederste kort i bunken inden man går i gang med at blande) har nået toppen af bunken og også selv er blevet blandet (dvs. flyttet til et tilfældigt sted i bunken).

I dette indlæg skal vi se, hvordan man kan opnå viden om eksempelvis sådanne processer ved at få computeren til at simulere mange, mange af sådanne blandinger og så registrere interessante egenskaber ved hver realiserede blanding. Denne fremgangsmåde kaldes for Monte Carlo-metoder og er et kraftfuldt værktøj indenfor statistikken. Man kan med en beskrivelse af den datagenererende process finde egenskaber for processen ved at få computeren til at realisere processen mange, mange gange.

Teoretiske resultater er ekstremt vigtige af mange årsager. Men det betyder ikke, at det er den eneste måde at opnå viden om processer på. Med Monte Carlo-metoden kan man dels kontrollere de teoretiske resultater, men ofte kan man faktisk opnå resultater som kan virke umulige at opnå teoretisk.

I dette tilfælde vil vi bruge Monte Carlo-metoden til at dels at finde det gennemsnitlige antal gange man skal blande før bunken er godt nok blandet. Det kan man også relativt let finde teoretisk (se ovenfor). Men man kunne også være interesseret i at finde fraktiler i fordelingen af antal blandinger. Så kan angive, at man i 95% af tilfældene skal blande mellem L og U gange før at bunken er blandet “nok”.

Den letteste måde at lave sådanne simulationer er på computeren med en random number generator (RNG), der kan generere tilfældige tal. Ofte må man nøjes med pseudorandom number generator (PRNG), men det er som regel også tilstrækkeligt. Og så skal man bruge et interface til denne PRNG således man kan få nogle tilfældige tal i beskrivelsen af processen. Ovre på Numb3rs-bloggen er der mere om tilfældige tal i dette indlæg.

Jeg vil her bruge R, der er et helt programmeringsmiljø (inkl. programmeringssprog) hovedsageligt anvendt til statistik, big data, maskinlæring, kunstig intelligens, dataanalyse m.fl. Det er et rigtigt godt vækrtøj at have i sin værktøjskasse. Rstudio er et fint IDE (integrated development environment) til R. Nedenfor bruges R’s sample-funktion til at trække tilfældige tal.

(Helt til sidst i dette indlæg kan I finde den komplette R-kode. Nedenfor kommer koden med output.)

Først skal vi have repræsenteret kortbunken:

> # C: Clubs / klør
> # D: Diamonds / ruder
> # H: Hearts / hjerter
> # S: Spades / spar
> faces <- c("C", "D", "H", "S")
> nums <- c("A", 2:10, "J", "Q", "K")
> 
> # Vores kortbunke: CA, C2, C2, ..., CQ, CK, DA, ..., DK, ...., SK
> # Denne genereres automatisk, men man kunne også gøre det manuelt:
> # pile_init <- c("CA", "C2") # Osv.
> pile_init <- unlist(lapply(faces, function(x) paste0(x, nums)))
> 
> # De første 6 kort i bunken
> head(pile_init, n = 6)
[1] "CA" "C2" "C3" "C4" "C5" "C6"
> 
> # De sidste 6 kort i bunken
> tail(pile_init, n = 6)
[1] "S8"  "S9"  "S10" "SJ"  "SQ"  "SK" 
> 
> # Antallet af kort i bunken
> length(pile_init)
[1] 52

Det er ikke så vigtigt hvordan bunken er blandet når vi går i gang. Vi skal egentlig bare holde styr på det sidste kort som her er “SK”.

Og så går vi i gang med at simulere 1,000 kortblandinger. Hver gang registrerer vi antallet af blandinger, der blev foretaget før bunken var blandet “nok”:

> # Funktion der simulerer én blanding
> simulate_process <- function() {
+   # Vi starter med en ny bunke
+   pile <- pile_init
+   
+   # En tæller til antallet af blandinger
+   rifs <- 0
+   
+   while (TRUE) {
+     # Registrer at der nu er bladet én gang mere
+     rifs <- rifs + 1
+     
+     # Tilfældig position som topkortet skal hen til
+     top_pos <- sample(x = seq_along(pile), size = 1)
+     
+     # Med sandsynlighed 1/52 ender det igen i toppen
+     if (top_pos == 1) {
+       #pile <- pile
+     } else if (top_pos == length(pile)) {
+       # Det kan også ende i bunden
+       pile <- c(pile[-1], pile[1])
+     } else {
+       # Eller et sted midt i mellem
+       pile <- c(pile[2:top_pos], pile[1], pile[-(1:top_pos)])
+     }
+     
+     # Hvis topkortet er bundkortet; 
+     # her kunne man også have skrevet
+     #   if (pile[1] == "SK") {
+     # men dette virker også selvom man ændrer pile_init
+     if (pile[1] == pile_init[length(pile_init)]) {
+       break
+     }
+   }
+   
+   # Topkortet (der er nu er det oprindelige bundkort)
+   # skal også blandes, men vi er ligeglade med hvor det ender
+   rifs <- rifs + 1
+   
+   return(rifs)
+ }
> 
> # Indstiller PRNG til samme tilstand for at kunne reproducere resultaterne
> set.seed(1)
> 
> # Simulér processen 1,000 gange
> riffles <- replicate(1000, simulate_process())
> 
> # De første 6 blandinger:
> head(riffles, n = 6)
[1] 249 191 205 280 189 314
> 
> # Gennemsnittet af antal blandinger
> mean(riffles)
[1] 234.757

Som I kan se får vi også at der i gennemsnit skal 235 blandinger til.

Men vores simulationer gør os i stand til at finde og vise fordelingen af antal blandinger:

> # Estimer fordelingen
> rif_dens <- density(riffles)
> 
> # Equal-tailed interval (begge haler har samme sandsynlighed)
> qs <- quantile(riffles, c(0.025, 0.975))
> 
> # Find x-værdierne
> x1 <- min(which(rif_dens$x >= qs[1]))  
> x2 <- max(which(rif_dens$x <  qs[2]))
> 
> # De centrale 95%
> rif_dens$x[c(x1, x2)]
[1] 144.2375 384.8943
> 
> plot(rif_dens)
> polygon(x = c(rif_dens$x[c(x1, x1:x2, x2)]), y = c(0, rif_dens$y[x1:x2], 0), col = "gray")
> abline(v = mean(riffles), lty = 2)

 

Altså vil man skulle forvente at skulle blande mellem 144 og 385 gange (og i gennemsnit 235) før at denne måde at blande på giver en bunke der er blandet nok.

(Hvilket nok er medvirkende til at jeg aldrig har set nogen praktisere denne form for kortblanding.)

Komplet R-kode:

# C: Clubs / klør
# D: Diamonds / ruder
# H: Hearts / hjerter
# S: Spades / spar
faces <- c("C", "D", "H", "S")
nums <- c("A", 2:10, "J", "Q", "K")

# Vores kortbunke: CA, C2, C2, ..., CQ, CK, DA, ..., DK, ...., SK
# Denne genereres automatisk, men man kunne også gøre det manuelt:
# pile_init <- c("CA", "C2") # Osv.
pile_init <- unlist(lapply(faces, function(x) paste0(x, nums)))

# De første 6 kort i bunken
head(pile_init, n = 6)

# De sidste 6 kort i bunken
tail(pile_init, n = 6)

# Antallet af kort i bunken
length(pile_init)

# Funktion der simulerer én blanding
simulate_process <- function() {
  # Vi starter med en ny bunke
  pile <- pile_init
  
  # En tæller til antallet af blandinger
  rifs <- 0
  
  while (TRUE) {
    # Registrer at der nu er bladet én gang mere
    rifs <- rifs + 1
    
    # Tilfældig position som topkortet skal hen til
    top_pos <- sample(x = seq_along(pile), size = 1)
    
    # Med sandsynlighed 1/52 ender det igen i toppen
    if (top_pos == 1) {
      #pile <- pile
    } else if (top_pos == length(pile)) {
      # Det kan også ende i bunden
      pile <- c(pile[-1], pile[1])
    } else {
      # Eller et sted midt i mellem
      pile <- c(pile[2:top_pos], pile[1], pile[-(1:top_pos)])
    }
    
    # Hvis topkortet er bundkortet; 
    # her kunne man også have skrevet
    #   if (pile[1] == "SK") {
    # men dette virker også selvom man ændrer pile_init
    if (pile[1] == pile_init[length(pile_init)]) {
      break
    }
  }
  
  # Topkortet (der er nu er det oprindelige bundkort)
  # skal også blandes, men vi er ligeglade med hvor det ender
  rifs <- rifs + 1
  
  return(rifs)
}

# Indstiller PRNG til samme tilstand for at kunne reproducere resultaterne
set.seed(1)

# Simulér processen 1,000 gange
riffles <- replicate(1000, simulate_process())

# De første 6 blandinger:
head(riffles, n = 6)

# Gennemsnittet af antal blandinger
mean(riffles)

# Estimer fordelingen
rif_dens <- density(riffles)

# Equal-tailed interval (begge haler har samme sandsynlighed)
qs <- quantile(riffles, c(0.025, 0.975))

# Find x-værdierne
x1 <- min(which(rif_dens$x >= qs[1]))  
x2 <- max(which(rif_dens$x <  qs[2]))

# De centrale 95%
rif_dens$x[c(x1, x2)]

plot(rif_dens)
polygon(x = c(rif_dens$x[c(x1, x1:x2, x2)]), y = c(0, rif_dens$y[x1:x2], 0), col = "gray")
abline(v = mean(riffles), lty = 2)

Om matematikken bag kvantetransport

Når man zoomer ind på atomart-niveau, ser verden helt anderledes ud. Den består af små partikler, som vekselvirker med hinanden, og deres egenskaber er vidt forskellige fra alt det, som vi kender fra vores “egen størrelse”.

En af de mest effektive metoder, som er brugte til at forstå den elektroniske struktur af et givet stykke materiel,  er at løbe en elektrisk strøm gennem det. Når dette stykke består af ganske få atomer, for at få ledningsprocessen ordenligt modelleret er man nødt til at bruge avancerede matematiske evolutionsligninger som Schrödingers eller Liouvilles

I næste uge skal vi afholde  en lille wokshop på instituttet, der skal samle på et sted flere førende forskere fra hele verden. Foredragsholderne tæller eksperter i matematisk-fysik, numerisk analyse og modellering. Målet er at kigge sammen (dog fra ganske forskellige synsvinkler) på det der er sket nyt  i dette spændende forskningsområde. Nogle nøgleord er: spin og ledningstransport i topologiske isolatorer, Wannier funktioner i metalliske systemer, spredningsteori for langtrækkende vekselvirkninger m.fl.

Workshoppens hovedsponsor er DFF1 bevillingen 4181-00042 fra Det Frie Forskningsråd | Natur og Univers.

Ford-cirkler – og addition af brøker som vor mor IKKE gør det.

Vælg to hele tal p og q, som er parvis primiske (det eneste tal, der går op i både p og q er tallet 1). Tegn cirklen i planen med radius \frac{1}{2q^2} og centrum i (\frac{p}{q},\frac{1}{2q^2}) . Bed nu en anden om at gøre det samme – med nyt valg af p og q. De to cirkler vil tangere x-aksen og enten tangere hinanden eller ikke have noget til fælles. Bliv ved og der opstår et fint mønster af cirkler. De kaldes Ford-cirkler, fordi de blev beskrevet i en artikel i American Mathematical Monthly i 1938 af Lester R. Ford Sr.

Notation: Fordcirklen svarende til p,q kaldes C(p,q).

Her på figuren er valgt p\leq q, så 0\leq \frac{p}{q}\leq 1 og dermed er x-koordinaten for centrum mellem 0 og 1. Tallet i cirklen er x-koordinaten for centrum (forkortet, så det svarer til p/q). Farven indikerer nævneren p.

Her er nogle konstateringer:

  • Ethvert rationalt tal a/b på x-aksen bliver rørt af en Fordcirkel: Forkort a/b og lav så Fordcirklen.
  • Radius og dermed højde af C(p,q) afhænger kun af q.

To Fordcirkler skærer ikke hinanden:

To Fordcirkler C(p,q) og C(r,s) vil enten tangere (kysse kaldte jeg det i indlægget om kuglepakninger) eller slet ikke røre hinanden:

De har centrum i hhv. (\frac{p}{q},\frac{1}{2q^2}) og (\frac{r}{s},\frac{1}{2s^2}) så afstand mellem centrene opfylder

d^2=(\frac{p}{q}-\frac{r}{s})^2+(\frac{1}{2q^2}-\frac{1}{2s^2})^2

Summen af de to radier er s=\frac{1}{2q^2}+\frac{1}{2s^2}

Nu sammenligner vi d og s ved at udregne d^2-s^2. Hvis de to cirkler skærer hinanden er d^2-s^2<0 . Tangerer de, er d^2-s^2=0.

d^2-s^2=(\frac{p}{q}-\frac{r}{s})^2+(\frac{1}{2q^2}-\frac{1}{2s^2})^2-(\frac{1}{2q^2}+\frac{1}{2s^2})^2=(\frac{p}{q}-\frac{r}{s})^2- 4(\frac{1}{2q^22s^2})=(\frac{ps-rq}{qs})^2- (\frac{1}{q^2s^2})=\frac{(ps-rq)^2-1}{(qs)^2}

Forskellige Fordcirkler skærer ikke:

Hvis de to cirkler skærer, er
( ps - rq )^2 - 1<0 og altså ( ps - rq )^2 <1

Men  ps – rq  er et helt tal, så det vil kræve
ps – rq = 0 og altså  ps = rq ,
\frac{p}{q}=\frac{r}{s}
og altså er det samme cirkel.

Fareyfølger.

Hvis C(p,q) og C(r,s) tangerer, er |ps-rq|=1. Det leder til en anden pudsig observation. men først skal vi have indført brøkregning a la Farey:

Dette er de første Fareyfølger

  1. F_1=\frac{0}{1},\frac{1}{1}
  2. F_2=\frac{0}{1},\frac{1}{2}, \frac{1}{1}
  3. F_3=\frac{0}{1},\frac{1}{3},\frac{1}{2},\frac{2}{3}\frac{1}{1}
  4. F_4=\frac{0}{1},\frac{1}{4},\frac{1}{3},\frac{1}{2},\frac{2}{3},\frac{3}{4},\frac{1}{1}
  5. F_5=\frac{0}{1},\frac{1}{5},\frac{1}{4},\frac{1}{3},\frac{2}{5},\frac{1}{2},\frac{3}{5},\frac{2}{3},\frac{3}{4},\frac{4}{5},\frac{1}{1}

Fareyfølgen F_n er uforkortelige brøker mellem 0 og 1 med nævner højst n. Rækkefølgen er efter størrelse. De elementer, der tilføjes til F_n for at få F_{n+1} er medianten af naboerne:

I F_5 tilføjes \frac{2}{5}. Naboerne er \frac{1}{3},\frac{1}{2}. Medianten er dårlig brøkregning, Fareyplus:

\frac{1}{3}\oplus\frac{1}{2}=\frac{1+1}{3+2}=\frac{2}{5}

Her er det tilsvarende for Fordcirklerne

Hvorfor gælder det? Her er først nogle konstateringer:

  1. Hvis 0<\frac{a}{b}<\frac{c}{d}<1 ligger medianten imellem dem \frac{a}{b}<\frac{a+c}{b+d}<\frac{c}{d}. Man viser det første ulighedstegn som følger:  \frac{a}{b}<\frac{a+c}{b+d} \Leftrightarrow (b+d)a<(a+c)b \Leftrightarrow da<cb og det følger af \frac{a}{b}<\frac{c}{d}.
  2. Medianten mellem to naboer i F_k tilføjes i skridtet fra F_n til F_{n+1}, når nævneren den forkortede brøk svarende til \frac{a+c}{b+d} er højst n+1.
  3. Medianten af to naboer i en Fareyfølge F_k er uforkortelig: Medianten er ikke i F_k, da \frac{a}{b}, \frac{c}{d} er naboer. Antag \frac{a+c}{b+d}=\frac{rq}{rp} og $\frac{q}{p}$ er uforkortelig. Så er p>k, da medianten ikke er i F_k. rp=b+d og b+d\leq 2k. Altså er r=1.

Medianten tilføjes altså i skridtet fra F_{b+d-1} til F_{b+d}.

Nu mangler vi blot at se, at alle uforkortelige brøker kommer med i en proces, hvor vi begynder med \frac{0}{1},\frac{1}{1} og tilføjer medianter.

Stern Brocot-træet.

Lad os undlade at holde styr på, hvor store nævnerne er. Så bygger vi Stern-Brocot-træet (opkadt efter Moritz Stern, matematiker, og Achille Brocot, urmager (!) ):

Vi bruger kun den venstre side. De stiplede linjer hjælper til at se, hvad der tages medianter af, men et lag eller “niveau” er kun de sidst tilkomne.

Påstand: Alle uforkortelige brøker kommer med i et lag i træet. (Og det er derfor ok at konstruere Fareyfølger via medianter.)

Først er hjælperesultat: Hvis \frac{a}{b} < \frac{c}{d} er barn og forælder eller forælder og barn i træet (forbundet med en kant opad eller nedad fra \frac{a}{b} til $latex  \frac{c}{d}$, så er bc-ad=1. Bevis: Induktion. Det er ok for 0/1 og 1/1. Hvis ok for \frac{a}{b} < \frac{c}{d}, så er det ok for kanter til og fra medianten: Der er enten en  kant nedad mellem  \frac{a}{b} < \frac{a+c}{b+d} eller opad \frac{a+c}{b+d}<\frac{c}{d}.
b(a+c)-a(b+d)=bc-ad=1 pr antagelse. Og tilsvarende for den anden side. (Lav selv et særargument for medianterne med hhv. 0/1 og 1/1.) En konsekvens er, at afstanden er  |\frac{a}{b} - \frac{c}{d}|=\frac{1}{bd}.

 

Argument for, at alle uforkortelige brøker er med i Stern-Brocot-træet: : På det k’te niveau i træet er summen af nævner og tæller i brøkerne mindst k+2, da Niveau k fremkommer som medianter fra niveau k-1 og højere niveauer. (Der laves hele tiden medianter med 0/1 og 1/1).

Antag nu, at p/q ikke er med i træet. Specielt er den ikke med på niveau p+q-1. Men den ligger mellem to naboer (forbundet med en kant), hvor den ene er på niveau p+q-1: \frac{a}{b} <\frac{p}{q}< \frac{c}{d}. Omskriv de to uligheder til

bp-aq>0 og cq-dp>0. Det er hele tal, så vi kan skrive \geq 1 begge steder.

Heraf: (bp-aq)(c+d)+(cq-dp)\geq c+d+a+b\geq p+q+1 (Det sidste følger af, at den ene brøk er fra niveau p+q)

Udregn venstresiden og brug bc-ad=1, da disse er forælder og barn i træet. Venstresiden giver da p+q. Og vi har en modstrid.

Tilbage til Fordcirklerne:

To Fordcirkler C(p,q) og C(r,s) tangerer hvis og kun hvis |ps-rq|=1. Altså svarer brøker, som er naboer i en Fareyfølge til tangerende Fordcirkler. Og det gælder også omvendt, men det har vi ikke vist her.

Endnu et pænt billede. His Fordcirklerne skærer, så vil halvcirklen fra (p/q,0) til (r/s,0) passere skæringspunktet.  Farven på halvcirklerne svarer til den Fareyfølge, hvori brøkerne er naboer.