Matematik, Modellering och Simulering. Markus Dahl, Carl Jönsson Wolfram MathCore

Relevanta dokument
Inledande matematik M+TD

4x 2 dx = [polynomdivision] 2x x + 1 dx. (sin 2 (x) ) 2. = cos 2 (x) ) 2. t = cos(x),

Sammanfattning av föreläsning 11. Modellbygge & Simulering, TSRT62. Föreläsning 12. Simulering. Föreläsning 12. Numeriska metoder och Simulering

Uppgift 1. (SUBPLOT) (Läs gärna help, subplot innan du börjar med uppgiften.) 1 A) Testa och förklara hur nedanstående kommandon fungerar.

de uppgifter i) Under m-filerna iv) Efter samlade i en mapp. Uppgift clear clc Sida 1 av 6

3.3. Symboliska matematikprogram

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

y + 1 y + x 1 = 2x 1 z 1 dy = ln z 1 = x 2 + c z 1 = e x2 +c z 1 = Ce x2 z = Ce x Bestäm den allmänna lösningen till differentialekvationen

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

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

k 1 B k 2 C ges av dx 1 /dt = k 1 x 1 x 1 (0) = 100 dx 2 /dt = k 1 x 1 k 2 x 2 x 2 (0) = 0 dx 3 /dt = k 2 x 2 x 3 (0) = 0

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

ÖVN 2 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF1683. Inofficiella mål

TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer

Lektion 3. Partiella derivator, differentierbarhet och tangentplan till en yta, normalen i en punkt till en yta, kedjeregeln

Partiella differentialekvationer: Koppling Diskret - Kontinuum och Finita Elementmetoden

Tentamen i Matematik 1 DD-DP08

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

ÖVN 6 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF Nyckelord och innehåll. a n (x x 0 ) n.

Sammanfattning av föreläsning 10. Modellbygge & Simulering, TSRT62. Föreläsning 11. DAE-modeller. Modelltyper. Föreläsning 11 : DAEmodeller

1. Bestäm definitionsmängden och värdemängden till funktionen f(x,y) = 1 2x 2 3y 2. Skissera definitionsmängden, nivålinjerna och grafen till f.

Veckans teman. Repetition av ordinära differentialekvationer ZC 1, 2.1-3, 4.1-6, 7.4-6, 8.1-3

Modellering av Dynamiska system. - Uppgifter till övning 1 och 2 17 mars 2010

Laboration 1. x = 1±0.01, y = 2±0.05. a) Teoretiskt med hjälp av felfortplantningsformeln (Taylor-utveckling).

KTH Matematik SF1633 Differentialekvationer I, för I1 Kontrollskrivning nr 2, Måndag den 31 mars 2008, kl Version: A Namn:... Personnr:...

DIFFERENTIALEKVATIONER. INLEDNING OCH GRUNDBEGREPP

Chalmers tekniska högskola Datum: kl Telefonvakt: Carl Lundholm MVE475 Inledande Matematisk Analys

Chalmers tekniska högskola Datum: kl Telefonvakt: Jonny Lindström MVE475 Inledande Matematisk Analys

Linjära differentialekvationer av andra ordningen

x 2 = lim x 2 x 2 x 2 x 2 x x+2 (x + 3)(x + x + 2) = lim x 2 (x + 1)

TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning

2 Funktioner från R n till R m, linjära, inversa och implicita funktioner

Blandade A-uppgifter Matematisk analys

Omtentamen i DV & TDV

Meningslöst nonsens. December 14, 2014

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA671

Laboration 1. Ekvationslösning

SF1625 Envariabelanalys Tentamen Lördagen den 11 januari, 2014

Två gränsfall en fallstudie

Endast kommenterade svar!!! OBS: Inte alla delsteg är redovisade!

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.

Laboration 2. Laborationen löses i grupper om två och redovisas individuellt genom en lappskrivning den 3/10. x = 1±0.01, y = 2±0.05.

Laboration 2, M0043M, HT14 Python

Symboliska beräkningar i Matlab

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Måndag 14 januari 2002 TID:

Teknisk Beräkningsvetenskap I Tema 3: Styvhetsmodellering av mjuk mark med icke-linjära ekvationer

FEM1: Randvärdesproblem och finita elementmetoden i en variabel.

Systemidentifiering för läkemedelsutveckling modeller, skattning och analys.

2D1240 Numeriska metoder gk II för T2, VT 2004 LABORATION 1. Ekvationslösning

Studietips inför kommande tentamen TEN1 inom kursen TNIU23

Allmänt om Mathematica

Frågorna 1 till 6 ska svaras med sant eller falskt och ger vardera 1

Tentamen i Matematisk analys MVE045, Lösningsförslag

En trafikmodell. Leif Arkeryd. Göteborgs Universitet. 0 x 1 x 2 x 3 x 4. Fig.1

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1/TM1, TMA

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

Laboration 1. 1 Matlab-repetition. 2 Störningsräkning 1. 3 Störningsräkning 2

2D1250 Tillämpade numeriska metoder II

v0.2, Högskolan i Skövde Tentamen i matematik

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Modelica. Traditionella simuleringsverktyg. Ny generell fysikalisk modellering. Generella program. Specialiserade program

Laboration 2 M0039M, VT2016

1. (4p) Para ihop följande ekvationer med deras riktingsfält. 1. y = 2 + x y 2. y = 2y + x 2 e 2x 3. y = e x + 2y 4. y = 2 sin(x) y

Naturvetenskapligt aktivitetspaket Koppling till Lgr11

Omtentamen i DV & TDV

Räta linjer. Ekvationssystem. Att hitta räta linjens ekvation ifrån olika förutsättningar. 1.1 Hitta en rät linjes ekvation utifrån en ritad graf.

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

Prov i Matematik Prog: NV, Lär., fristående Analys MN UPPSALA UNIVERSITET Matematiska institutionen Michael Melgaard, tel

Fri programvara i skolan datoralgebraprogrammet Maxima

Formalia. Modellbygge & Simulering, TSRT62. Föreläsning 1. Varför modeller? Föreläsning 1: Modeller och modellbygge

Modellbygge och simulering

TMA226 datorlaboration

Föreläsning 14: Exempel på randvärdesproblem. LU-faktorisering för att lösa linjära ekvationssystem.

för Tekniskt/Naturvetenskapligt Basår

NATURVETENSKAPLIGA FAKULTETEN

Tentamen i Teknisk-Vetenskapliga Beräkningar

SJÄLVSTÄNDIGA ARBETEN I MATEMATIK

LABORATION cos (3x 2 ) dx I =

u(x) + xv(x) = 0 2u(x) + 3xv(x) = sin(x) xxx egentliga uppgifter xxx 1. Sök alla lösningar till den homogena differentialekvationen

TANA81: Simuleringar med Matlab

9.1 Mer om differentialekvationer

Matematik 5 svar. Kapitel Test Blandade uppgifter Kapitel a) dy

(y 2 xy) dx + x 2 dy = 0 y(e) = e. = 2x + y y = 2x + 3y 2e 3t, = (x 2)(y 1) y = xy 4. = x 5 y 3 y = 2x y 3.

5B1134 Matematik och modeller Lösningsförslag till tentamen den 11 oktober 2004

SF1625 Envariabelanalys

Planering för Matematik kurs D

Kontrollskrivning KS1T

SF1633, Differentialekvationer I Tentamen, torsdagen den 7 januari Lösningsförslag. Del I

Matematik 4 Kap 3 Derivator och integraler

Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016

SF1626 Flervariabelanalys

Förord. Stockholm i juni Luciano Triguero

Högskolan i Skövde (SK, JS) Svensk version Tentamen i matematik Lösningsförslag till del I

Transkript:

Matematik, Modellering och Simulering Markus Dahl, Carl Jönsson Wolfram MathCore

2 LiU Math Presentation.nb Översikt Vilka är vi som presenterar? Wolfram Research med produkter Modellering och simulering i arbetslivet (Markus) Algoritmutveckling och matematiken bakom den (Carl)

LiU Math Presentation.nb 3 Vilka är vi? Markus Dahl - Applications Engineer på Wolfram MathCore Började Yi (tyska) 2010 - Examen 2015 Masterprofil inom Teori, Modellering och Visualisering Exjobb på MathCore -> Anställning Carl Jönsson - Software Engineer på Wolfram MathCore Började Yi (japanska) 2007 - Examen 2012 Masterprofil i Teknisk Matematik Utvecklar kärnan i Wolfram SystemModeler

4 LiU Math Presentation.nb Wolfram Research Huvudkontor i IL, USA. ~700 anställda världen över ~20 anställda på Sverigekontoret i Linköping (Wolfram MathCore) Produkter Mathematica Wolfram Alpha SystemModeler

LiU Math Presentation.nb 5 Mathematica Matematikprogram med symbolhantering In[1]:= Out[1]= 1 1 - x 3 dx ArcTan 1+2 x 3 3-1 3 Log[1 - x] + 1 6 Log 1 + x + x2 In[2]:= DSolve 2 + Cos[x] y'[x] - Sin[x] y[x] 4 * Exp[2 x], y[0] 4, y[x], x [[1, 1, 2]] Out[2]= 2 5 + e 2 x 2 + Cos[x] In[3]:= RevolutionPlot3D[Sqrt[1 + x], {x, 0, 1}, RevolutionAxis {2, 0, 0}] Out[3]= y (x) x y(x) y(0) a, y (0) b

6 LiU Math Presentation.nb y(0) y (0) 3 2 1 1 2 3 4-1 -2-3 Wolfram Alpha (Se video)

LiU Math Presentation.nb 7 SystemModeler Modellering- och Simuleringsprogram, utvecklas i Mjärdevi av Wolfram MathCore Drag-and-drop modellering Multi-domänt Baserat på programmeringsspråket Modelica

8 LiU Math Presentation.nb Modellering och Simulering Vad betyder modellering i detta sammanhang? Beskrivning av verkligheten Ett sätt att kommunicera med en dator Fjäder: F =k*x F = kraft, k = styvhet, x = förskjutning Hur sätter vi ihop den här fjädermodellen med andra modeller? Räknar man verkligen matte efter universitetet? SystemModeler - Exempel Elektronikmodell Mekanikmodell

LiU Math Presentation.nb 9 Optimera solfångare Cleanergy - Använder solen för att driva stirlingmotorer

10 LiU Math Presentation.nb Video Vilka delar behöver modelleras? Solen Ta väderdata från mätningar Hur faller solens strålar in mot parabolen? Parabolen Enkel optik där en liten del absorberas av parabolen, resten reflekteras Solfångaren Termodynamik! Värmeöverföring genom konvektion, ledning och strålning. Behöver även kunna beskriva geometrin för kaviteten Stirlingmotorn

LiU Math Presentation.nb 11 Termodynamik igen, plus interaktion med reglersystem Reglersystemet Reglerteori Generator Enklaste fallet: skriv in en uppmätt verkningsgrad

12 LiU Math Presentation.nb Helikoptermodellering Vad behöver vi modellera för att få en realistisk helikopterrotor? Flexibla helikopterblad - Mekanik Helikopterkropp - Mekanik Reglersystem för kontroll av motor och vinkel av blad Hur gör man ett reglersystem till en helikopter på så kort tid som möjligt? Helikopterbladens interaktion med luft (Stor utmaning!) - Aerodynamik Detta blev den stora nöten att knäcka..

LiU Math Presentation.nb 13

14 LiU Math Presentation.nb

LiU Math Presentation.nb 15 Matematik och SystemModeler Jag arbetar på SystemModeler-kärnan, typiskt innefattar detta: Förbättra robusthet och kapabilitet. Utveckla och vidareutveckla algoritmer som behövs för matematisk behandling av modeller. Hålla mig uppdaterad med relevant forskning. SystemModeler-kärnan tar en användardefinierad modell och producerar ett separat simuleringsprogram för modellen. Först omvandlas modellen till en lista av ekvationer och variabler. Sen optimeras och sorteras ekvationerna. Till sist genereras programkod (C++) som kompileras av en vanlig kompilator. Vilken matematik hanterar SystemModeler? Vad kan användaren skriva in? Vilken matematik använder SystemModeler internt? Vilken matematik behövs för att omvandla ett stort ekvationssystem till ett datorprogram?

16 LiU Math Presentation.nb Vilken matematik hanterar SystemModeler? Modeller i SystemModeler är matematiskt sett hybrida differential-algebraiska ekvationssystem (Hybrid DAE). Detta innebär att man kan ha ekvationer som är: Differentialekvationer, där derivatan tas med avseende på tiden, exempelvis: dx = αx + βy dt dy = δxy - γy dt Algebraiska ekvationer (ekvationer utan derivator i), exempelvis: x 2 + y 2 = L 2 ϵ = tan(ϕ) - ϕ Event-ekvationer, ekvationer som triggar på en speciell händelse, exempelvis: when x > 0 then y = z^2; end when;

LiU Math Presentation.nb 17 Hur löser SystemModeler hybrida DAE:er? Differentialekvationer löses oftast med numeriska ODE-lösare. Man beräknar den högsta derivatan av en variabel och integrerar sedan numeriskt. ODE-lösaren håller takten vid simulering. Algebriska ekvationer löses antingen symboliskt, med linjära lösare eller med olinjära lösare. Event-ekvationer löses symboliskt, men här måste man se till att stanna sin ODE-lösare vid rätt tidpunkt.

18 LiU Math Presentation.nb Hur hanterar SystemModeler stora system? En modell i SystemModeler har ofta väldigt många ekvationer, modeller med över 10 000 ekvationer är vanligt. Nästan alla intressanta modeller innehåller någon icke-linjär ekvation. Enkel lösning: Ge alla algebraiska ekvationer till en icke-linjär lösare. Kan bli väldigt ineffektivt. Hur kan man behandla modeller mer effektivt? Vi använder grafteori för att bryta ner systemet i mindre system.

LiU Math Presentation.nb 19 Hur använder SystemModeler grafteori? En graf är en samling av noder,sammanbundna av bågar. GraphPlot3D[GraphData["Foster056A", "EdgeRules"], Boxed False] Vi analyserar en modells ekvationer genom att skapa en nod för varje ekvation och variabel. Vi skapar en båge mellan en ekvation e och en variabel v om v förekommer i e. x y + z = 1 x + y = 2 x - y = 2

20 LiU Math Presentation.nb eg1 = bipartitegraph[{{1, x}, {1, y}, {1, z}, {2, x}, {2, y}, {3, x}, {3, y}}] 1 x 2 y 3 z Vi försöker sedan matcha upp ekvationerna med variablerna så att varje ekvation är matchad med exakt en variabel. Om ekvation e är matchad med variabel v tolkar vi det som att vi ska lösa ekvationen e för variabeln v. HighlightGraph[eg1, FindEdgeCover[eg1]] 1 x 2 y 3 z

LiU Math Presentation.nb 21 Graf och matchning för en V6-motor Nedanstående graf har ungefär 6800 noder (3400 variabelnoder och 3400 ekvationsnoder). En röd båge mellan noder betyder att noderna är ett matchat variabel-ekvationspar. HighlightGraph[bipartiteGraphNoLabels[ev6g], ev6matching]

22 LiU Math Presentation.nb Ekvationssortering När vi har matchat alla variabler med en ekvation sorterar vi ekvationerna i ordningen de ska lösas. Idealt sett vill vi ordna ekvationerna så att man löser en ekvation åt gången och lösa den matchade variabeln symboliskt ur ekvationen. Detta är inte alltid möjligt, betrakta exempelvis följande system: x + y = 2 x - y = t Grafen med en matchning ser ut såhär: exg = {{1, x}, {1, y}, {2, x}, {2, y}}; g = bipartitegraph[exg]; HighlightGraph[g, FindEdgeCover[g]] 1 x 2 y Här löser vi ekvation 1 för y, men ekvation 1 kräver att vi vet x, vilken löses ur ekvation 2, som kräver att vi vet x. Alltså måste ekvationerna 1 och 2 lösas samtidigt. Vi identifierar dessa system av ekvationer och använder speciella lösare för dem.

LiU Math Presentation.nb 23 Fördelar Om man bryter ner systemet i mindre system blir det mycket enklare att lösa. Istället för att lösa ett icke-linjärt system med 10 000 ekvationer, löser man massor av små system. För de flesta modeller får man massor av system med endast en ekvation och ett fåtal system som är större (oftast under 20 ekvationer) som använder speciella lösare. För V6-motorn får man: 17 linjära system: 11 med storlek 2, 6 med storlek 8. 6 olinjära system, samtliga av storlek 9 (ett system för varje cylinder). Resten av ekvationerna (över 3200) löses en åt gången, symboliskt.

24 LiU Math Presentation.nb Hur vet SystemModeler vilken lösare den ska använda? När SystemModeler träffar på ett system av flera ekvationer ser den ekvationerna som en funktion av variablerna den försöker lösa. Från exemplet tidigare identifierade vi ett system med två ekvationer där vi löser för x och y. x + y = 2 x - y = t Vi omvandlar detta till en funktion f(x, y) = x + y - 2 x - y - t och försöker hitta x, y så att f(x, y) = 0. Vi analyserar systemet genom att beräkna jacobianen. f 1 x f 2 x f 1 y f 2 y = 1 1 1-1 Vi kan sedan på jacobianen om systemet är tidskonstant linjärt, tidsvariabelt linjärt eller olinjärt. För tidskonstanta linjära system kan man exempelvis förberäkna en LU-faktorisering för att snabbt lösa systemet när det behövs. Vårt exempel är tidskonstant linjärt 1 1 1-1 x y = 2, endast högerledet kan ändras med tiden. t Ett tidsvariabelt linjärt system innehåller variabler som inte är lösningsvariabler för systemet i sin jacobian. För dessa system behöver man lösa systemet med en linjär lösare varje gång. Exempelvis z x + y = 1, 2 x + y = 2. f(x, y) = z x + y - 1 2 x + y - 2 Jacobian: z 1 2 1 z 1 2 1 x y = 1, vänsterledet kan ändras med tiden. 2 Ett olinjärt system innehåller lösningsvariabler i jacobianen. För dessa system använder man speciella lösare som kan ta betydligt mer tid än linjära lösare. Exempelvis x 2 + y = z, 2 x + y 2 = 2. f(x, y) = x 2 + y - z 2 x + y 2-2 Jacobian: 2 x 1 2 2 y