Naturlagar i cyberrymden

Relevanta dokument
Miniprojekt: MEX och molekyldynamik

Naturlagar i cyberrymden VT 2006 Lektion 6. Martin Servin Institutionen för fysik Umeå universitet. Modellering

Vetenskapsdagen 2016 SciLab för laborativa inslag i matematik eller fysik

Inlämningsuppgift 4 NUM131

university-logo Mekanik Repetition CBGA02, FYGA03, FYGA07 Jens Fjelstad 1 / 11

Introduktion till kursen och MATLAB

Repetion. Jonas Björnsson. 1. Lyft ut den/de intressanta kopp/kropparna från den verkliga världen

Laboration: Grunderna i MATLAB

Inledande matematik M+TD

Matlabövning 1 Funktioner och grafer i Matlab

Beräkningsverktyg HT07

Inledning. Kapitel Bakgrund. 1.2 Syfte

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

Introduktion till MATLAB

Matlabövning 1 Funktioner och grafer i Matlab

Kapitel extra Tröghetsmoment

Matematisk Modellering

MMA132: Laboration 1 Introduktion till MATLAB

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Mekanik FK2002m. Repetition

Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism. Inledning. Fysikalisk bakgrund

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Numerisk kollision av stela kroppar

Byggnationen av Cheopspyramiden - ett visualiseringsprojekt. Mathias Bergqvist, Rikard Gehlin, Henrik Gunnarsson

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Ordinära differentialekvationer,

LABORATIONSHÄFTE NUMERISKA METODER GRUNDKURS 1, 2D1210 LÄSÅRET 03/04. Laboration 3 3. Torsionssvängningar i en drivaxel

Matematisk Modellering

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

Matematisk Modellering

Två gränsfall en fallstudie

Mekanik Föreläsning 8

TSBB14 Laboration: Intro till Matlab 1D

Integration av matematik och teknik på ingenjörsutbildningar

Matematisk Modellering

SF1626 Flervariabelanalys

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

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

Modeller och teknik Grundl program och gränssnitt. Matlab-tips

Projekt: Filmat tornfall med modell av tornet. Benjamin Tayehanpour, Adrian Kuryatko Mihai

SG1108 Tillämpad fysik, mekanik för ME1 (7,5 hp)

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab?

7,5 högskolepoäng. Provmoment: tentamen. Tentamen ges för: Högskoleingenjörer årskurs 1. Tentamensdatum: Tid:

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Institutionen för Fysik och Astronomi! Mekanik HI: Rotationsrörelse

Laboration 4 Mekanik baskurs

Robotarm och algebra

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Laboration 1: Figurer i hierarki

TAIU07 Matematiska beräkningar med Matlab

Fysikaliska modeller. Skapa modeller av en fysikalisk verklighet med hjälp av experiment. Peter Andersson IFM fysik, adjunkt

Per-Emil Eliasson, Claes Fälth, Manne Gustafson, Andreas Gustafsson

TAIU07 Matematiska beräkningar med Matlab

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Matematisk Modellering

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Välkommen! Till Kursen MEKANIK MSGB21. Föreläsningar & kursansvar:

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer:

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Arbete och effekt vid rotation

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

En introduktion till MatLab

Tentamen i Teknisk-Vetenskapliga Beräkningar

ATT RITA GRAFER MED KOMMANDOT "PLOT"

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

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

Laboration 3. Ergodicitet, symplektiska scheman och Monte Carlo-integration

Bose-Einsteinkondensation. Lars Gislén, Malin Sjödahl, Patrik Sahlin

Datorövning 1 Fördelningar

Introduktionskurs i MATLAB (TSRT04)

Generering av ljud utifrån fysikalisk simulering

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

Obligatoriska uppgifter i MATLAB

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer

Laboration 6. Ordinära differentialekvationer och glesa system

Joakim Holmberg, lektor, Mekanik och hållfasthetslära (IEI), examinator för TMMI03 (mekanik) och TMMI39 (mekanik f.k.).

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

Kollisioner, impuls, rörelsemängd kapitel 8

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

TFYA16: Tenta Svar och anvisningar

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

Mekanik FK2002m. Kinetisk energi och arbete

Introduktion till MATLAB, med utgångspunkt från Ada

FÖRBEREDELSER INFÖR DELTENTAMEN OCH TENTAMEN

Teknisk dokumentation MCIV

Laboration 1. Grafisk teknik (TNM059) Introduktion till Matlab. R. Lenz och S. Gooran (VT2007)

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

Datum: , , , ,

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Introduktionsföreläsning

II. Partikelkinetik {RK 5,6,7}

Datorövning 1: Fördelningar

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

Transkript:

Naturlagar i cyberrymden VT 2006 Lektion 1 Naturlagar i cyberrymden Hur naturlagarna används för att skapa naturtrogna datorsimuleringar, virtuella världar och datorspel Dagens föreläsning Presentation Kursens upplägg och administration Introduktion till fysikbaserade datorsimuleringar Test för fysikdidaktisk forskning Introduktion till fysik Lite MATLAB Martin Servin Institutionen för fysik Umeå universitet Exempel Kursen Naturlagar i cyberrymden Introduktion till fysikbaserade datorsimuleringar Mål och innehåll Registrering Kurshemsidan Kompendium (100 kr) Schema och gästföreläsningar Tips Försäljning av kompendium 1

Olika typer av datorsimuleringar Vetenskapliga simuleringar VR Ingenjörssimuleringar Datorspel och film Vilka naturlagar? Svar: rörelselagar Rörelselagarna beskriver hur våra objekt utvecklas med tiden; hur objektens position, hastighet osv. förändras givet de krafter som finns närvarande. Dessa uttrycks normalt som ordinära differentialekvationer, t.ex x (t)=f(t) Varför simulera naturlagarna? Hur implementeras naturlagarna i datorprogram? Svar: för realism (samt praktiskt) Datorsimuleringar i forskning och teknisk utveckling: realism självklart mål. I upplevelseindustrin: uppenbart ofysikaliska förlopp sticker i ögonen på betraktaren. Mer verklighetstrogna förlopp förhöjer närvarokänslan. Svar: via tangentbordet och detta är vad vi ska ägna resten av kursen åt! 2

Fysikmotor Simuleringsloopen Naturlagarna kommer in i ett program genom en s.k. fysikmotor. En fysikmotor är ett kodbibliotek som kombineras med rutiner för visualisering, interaktion, AI osv Fysikmotorn hanterar hur simuleringsvärlden (med dess allas objekt) utvecklas med tiden. Vortex, ODE, Havok, Meqon, Novodex, Fysikmotor? Initialisering av värld och objekt Kraftberäkning ( yttre krafter) Hantering av tvång Hantering av kollisioner Kollisions-detektion Kollisions-respons Numerisk ekvationsslösare (stega fram i tiden) Visualisering Efteranalys Introduktion till fysik Vad är fysik? Två perpsektiv: fundamentala teorier och praktiskt fungerande modeller för klass av fenomen Partikelfysik Atomfysik Vätskedynamik Stela kroppar Allomfattande teori? Specialfall Vätskedynamik Atomfysik Stela kroppar Mer generell Hur använda fysiken i simuleringar? Djungel av formler att känna till och behärska? De grundläggande naturlagarna är (relativt) få! Övriga formler är specialfall (och definitioner). I simuleringar behöver endast (grovt sett) de grundläggande naturlagarna implementeras. Resten av fysiken följer då automatiskt. Välj teori/modell som är tillräckligt, men inte onödigt, generell. 3

Klassisk mekanik Rörelse (kinematik) Krafter Dynamik = rörelse+krafter Lägesvektor: Hastighetsvektor: Accelerationsvektor: Rörelse r(t)=[x(t),y(t),z(t)] v(t)=[v x (t),v y (t),v z (t)] a(t)=[a x (t),a y (t),a z (t)] x z r(t) a(t) y v(t) d v = r dt d a = v dt Accelerationen anger hur hastigheten förändras i storlek och riktning. Källan till hastighetsförändringar är krafter. Krafter Objekt Gravitation mm F = G r 2 Fjäder F = kd ( x) Friktion F f v F Glidfriktion Ff = µ F m F M x d F l Nära jordytan v m F Fl Luftmotstånd d F mg = Cv n M g = G r 2 Jord x F Punktmassor Saknar utsträckning. Rotation irrelevant. Vanligt att approximera andra objekt med punktmassor. Kraft påverkar hastigheten. Stela kroppar Har utsträckning och kan rotera. Kraft påverkar hastigheten och rotationshastigheten. Elastiska strängar, membran och kroppar Har utsträckning, kan rotera samt är elastisk. Kraft påverkar hastigheten, rotationshastigheten och svängningar. Vätskor Som elastiska objekt fast med full rörlighet. Mer krävande numerisk kod 4

Naturlagarna i klassisk mekanik Rörelselagar m a= F Newtons rörelselag Iα = M Konserveringslagar ptot = 0 Ltot = 0 E = 0 tot Rörelselag för rotation Bevarande av rörelsemängd (p=mv) Bevarande av rörelsemängdsmoment (L=Iw) Bevarande av energi MATLAB Introduktion: miljön, datatyper, vanliga operationer och kommandon. Programmering Tips Grafik C-MEX funktioner Kraft och motkraft F 1 F 2 F2 = -F 1 MATLAB-miljön Exempel på inmatningar >> 1/3 ; Beräkning ans= 0.3333 >> A=3*ans ; Tilldelning A= 1 >> x=[1,2,3,4,5]; ; Vektor >> x*x ; Vektorprodukt ans= 55 5

Matriser i MATLAB Matriser kan byggas upp term för term eller genereras med matrisbyggande funktioner >> A=[ 1 2 3; 4 5 6] ; Skapa matris A= 1 2 3 3 5 6 >> A(2,3)=-6 ; Ändra i matris A= 1 2 3 3 5-6 En vektor är en matris med dimension (1,n) eller (n,1). En skalär är en matris med dimension (1,1). Dessa behandlas inte annorlunda av MATLAB än andra matriser. Operationer och funktioner Matrisoperationer + - * / \ ^. Matrisfunktioner inv(m), det(m), size(m), Skalärfunktioner (verkar enskilt på varje element) sqrt(m), sin(m), exp(m), Matrisbyggande funktioner, t.ex. kolon-operatorn >> A=[ 0:0.5:2] ; Bygg upp vektor A= 0.0 0.5 1.0 1.5 2.0 Plot Hur en plot är uppbyggd Hur en plot skapas i MATLAB y(x) = >> x=[0:0.01:3*pi]; >> y=sin(x.^2)./(1+x); >> plot(x,y) sin(x 2 ) 1+ x Programmering Spara följande som minfunktion.m function y=minfunktion(a,b) tmp=a/b; y=tmp^2; >> minfunktion(3,4) ans= 0.5625 Se kompendium för syntaxering av if-satser, for-slingor och while-loopar. Men för snabbare kod ersätt loopar med matris operationer. 6

Smart val av datatyper Om du har flera lika objekt, tex bollar Skapa inte en variabel för varje objetk, tex boll1_x=[1,0,1]; boll2_x=[1,0,2]; Välj smarta datatyper som gör det lätt att ändra antalet objekt och deras egenskaper. Lagra objektens variabler i matriser Lagra i struct Matrislagring av position, hastighet och radie: X dim (3,N) V dim (3,N) R dim (1,N) Struct-lagring av position, hastighet och radie: BOLL en strukt med N slots BOLL(n).x positionsvektor för boll n, dim (3,1) BOLL(n).v hastighetsvektor för boll n, dim (3,1) BOLL(n).radie radie för boll n, dim (1,1) Matrislagring ger snabbare beräkningar Struct-lagring ger tydligare och mer strukturerad kod Grafik Se exempel grafik.m Låt MATLAB sköta uppdateringen av grafikfönstret genom att tilldela handles till grafikobjekten Uppdatera objekten med set Exempel: H=plot(1,1); set(h, erasemode, xor ) axis([0,0,3,5]) daspect([1,1,1]) hold on set(h, XData,2, YData,4) Kommandon: line, rectangle % Plot med handtag H % Egenskap vid utritning % Figurens axlar % Skala axlar lika % Lås fast inställningar % Uppdatera objektets % position 3D Grafik Se exempel moving_spehers.m 7

C-MEX funktioner MATLAB ofta långsamt Med C-MEX funktioner kan beräkningstunga rutiner utföras med C-kod MEX-funktionen kompileras i MATLAB Resultatet är en dll-fil (mexglx i Linux) som anropas i MATLAB- koden som en M-fil. MATLAB-funktion function y=timestwo(x) y=2*x; C-MEX funktion # include mex.h void timestwo(double y[], double x[]) { y[0]=2.0*x[0]; } Exempel void mexfunction(int nlhs, mxarray *plhs[], int nrhs, const mxarray *prhs[]) { double *x,*y; plhs[0]=mxcreatedoublematrix(1,1,mxreal); x=mxgetpr(prhs[0]); y=mxgetpr(plhs[0]); timestwo(y,x); } Mål och innehåll att med kunskap om hur grundläggande naturlagar tillsammans med datorprogram används för att göra verklighetstrogna simuleringar grundläggande teori simuleras med datorprogram skrivna av studenter golfbollars rörelse hoppande föremål stela kroppars rörelse kollisioner hur programpaket kan användas för att simulera och grafiskt visualisera mer avancerade system 8

Tips Påbörja laborationerna i tid, svårighetsgraden ökar under kursen. Uppfinningsrikedom belönas. Dokumentera i rapporten! Att visa att naturlagarna är uppfyllda är viktigt. Dokumentera i rapporten! Börja laborationen med att skriva en algoritm. Skriv strukturerad kod med kommentarer. Exempel demo Besök gästföreläsningarna för att höra mer om hur kursens element används i verkligheten. 9