Skip to content

Commit e162e9f

Browse files
author
Oskar Lundström
committed
Skrev om partikelmekanik i resultat
1 parent 97b0b04 commit e162e9f

File tree

1 file changed

+40
-24
lines changed

1 file changed

+40
-24
lines changed

Rapport/include/Resultat.tex

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -285,36 +285,52 @@ \subsection{Exempelproblem}
285285

286286
\subsection{Partikelmekanik}
287287

288-
Implementationen av komposita områden var en vidareutveckling av de redan
289-
implementerade grundläggande områdena. Detta utfördes genom att kombinera
290-
element från två eller fler områden för att på så sätt tillsammans skapa ett
291-
nytt område. Denna kombination växte fram organiskt genom att studera de områden
292-
som skulle implementeras och se vilka av de grundläggande områdena som
293-
låg till grund för det. Efter en sådan genomgång växte den faktiska
294-
implementationen fram genom experimentering och diskussion inom gruppen.
295-
296-
Ett exempel på ett komposit område är implementationen av partikelmekanik
297-
där de grundläggande områdena vektorer och matematisk analys
298-
kombinerades. Anledningen till detta var att partiklars position, hastighet och
299-
acceleration modelleras med vektorer, dessutom är de krafter som påverkar
300-
partiklar även de modellerade som vektorer. Sedan används matematisk analys för
301-
att göra beräkningar på dem. Därför var det naturligt att modellera
302-
partikelmekanik med hjälp av vektorer vars komponenter var uttryck som
303-
implementerades av matematisk analys.
304-
305-
Exempel från läromaterialet:
306-
\begin{lstlisting}[frame=none, belowskip=-0.5\baselineskip, xleftmargin=0.5in]
288+
Implementationen av partikelmekanik är en kombination av de domänspecifika språken för vektorer och matematisk analys. Anledningen till detta är att partiklars position, hastighet och acceleration modelleras med vektorer, dessutom är de krafter som påverkar partiklar även de modellerade som vektorer. Sedan används matematisk analys för att göra beräkningar på dem. Därför är det naturligt att modellera partikelmekanik med hjälp av vektorer vars komponenter är uttryck som implementeras av matematisk analys.
289+
290+
Datatypen för en partikel är
291+
292+
\begin{lstlisting}
307293
type Mass = FunExpr
308-
type VectorE = Vector3 FunExpr -- Vector of functional
309-
-- expressions
294+
type VectorE = Vector3 FunExpr
310295

311296
data Particle = P { pos :: VectorE -- Position as a
312-
-- function of time
313-
-- , unit m
314-
, mass :: Mass -- Mass, unit kg
297+
-- function of time.
298+
-- Unit m
299+
, mass :: Mass -- Mass. Unit kg
315300
}
316301
\end{lstlisting}
317302

303+
Ett exempelvärde är
304+
305+
\begin{lstlisting}
306+
particle :: Particle
307+
particle = P (V3 (3 * Id * Id) (2 * Id) 1) 3
308+
\end{lstlisting}
309+
310+
Eftersom komponenterna i vektorerna är funktionsuttryck är det enkelt att beräkna en partikels hastighet och acceleration.
311+
312+
\begin{lstlisting}
313+
velocity :: Particle -> VectorE
314+
velocity = vmap D . pos
315+
316+
acceleration :: Particle -> VectorE
317+
acceleration = vmap D . velocity
318+
\end{lstlisting}
319+
320+
Det går även att beräkna nettokraften på en partikel med hjälp av Newtons andra lag.
321+
322+
\begin{lstlisting}
323+
type Force = VectorE
324+
325+
force :: Particle -> Force
326+
force p = vmap (* m) a
327+
where
328+
m = mass p
329+
a = acceleration p
330+
\end{lstlisting}
331+
332+
I läromaterialet behandlas även rörelseenergi, lägesenergi, arbete och gravitation.
333+
318334
\section{Utvärderingen med testgruppen}\label{sec:res_test}
319335

320336
Utfallet från utvärderingen med testgruppen var till övervägande del positivt.

0 commit comments

Comments
 (0)