You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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}
307
293
type Mass = FunExpr
308
-
type VectorE = Vector3 FunExpr -- Vector of functional
309
-
-- expressions
294
+
type VectorE = Vector3 FunExpr
310
295
311
296
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
315
300
}
316
301
\end{lstlisting}
317
302
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
+
318
334
\section{Utvärderingen med testgruppen}\label{sec:res_test}
319
335
320
336
Utfallet från utvärderingen med testgruppen var till övervägande del positivt.
0 commit comments