Skip to content

Commit 9c57eb3

Browse files
committed
Fixed merge conflict
2 parents 9ee0e62 + 893785d commit 9c57eb3

File tree

9 files changed

+90
-185
lines changed

9 files changed

+90
-185
lines changed
Lines changed: 15 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
Improvmenet:
2+
notation
3+
formulas
4+
tests
5+
6+
7+
18

29
Box on an incline
310
=================
@@ -10,6 +17,7 @@ All vectors are in newton.
1017

1118
Notation:
1219
fg = gravitational accelleration
20+
1321
m = mass of box
1422

1523
> fg = V2 0 (-10)
@@ -28,61 +36,24 @@ The normal against the incline:
2836
> fn :: Vector2 Double -> Angle -> Vector2 Double
2937
> fn fa a = negate (f_l_ fa a)
3038

31-
Frictionfree incline:
39+
Friction free incline:
3240

33-
Force resultant:
41+
Resulting force:
3442

3543
> fr :: Vector2 Double -> Angle -> Vector2 Double
3644
> fr fa a = (fn fa a) + fa
3745

46+
With friction:
3847

39-
** Tests:**
40-
------------
41-
42-
*Main> fr (V2 0 10) 0
43-
44-
(0.0 x, 0.0 y)
45-
46-
Good: No inclination - stands still.
47-
48-
49-
*Main> fr (V2 0 (-10)) 0
50-
51-
(0.0 x, -20.0 y)
52-
53-
Odd: Motsatt gravitation ger något underligt? Vi säger fortfarande att normalen är magnituden
54-
55-
56-
*Main> fr (V2 0 10) (pi/2)
57-
58-
(-6.123233995736766e-16 x, 10.0 y)
59-
60-
Good: 90* lutning - faller med G.
61-
62-
*Main> fr (V2 0 10) (pi/3)
63-
64-
(-4.330127018922194 x, 7.499999999999999 y)
65-
66-
*Main> fr (V2 0 10) (pi/4)
67-
68-
(-5.0 x, 4.999999999999999 y)
69-
70-
*Main> fr (V2 0 10) (pi/6)
71-
72-
(-4.330127018922193 x, 2.499999999999999 y)
73-
74-
75-
**Frictionconstant - in motion:**
76-
77-
\begin{align}
78-
F_{friction} = \mu * F_{normal} \iff \mu = \frac{F_{friction}}{F_{normal}}
79-
\end{align}
48+
$$ F_{friction} = \mu * F_{normal} \iff \mu = \frac{F_{friction}}{F_{normal}} $$
8049

8150
> us = 0.5
8251
> uk = 0.4
8352

8453
Add image how friction depends if there is movement.
8554

55+
![Friction](friction.png){.float-img-left}
56+
8657
> type FricConst = Double
8758

8859
Friction:
@@ -94,7 +65,7 @@ Friction:
9465

9566
We have the normal force and only needs the constants.
9667

97-
The current speed does not affect the friction. However F*M = Nm = work = J -> racer cars burn tires.
68+
The current speed does not affect the friction.
9869

9970
> motscalar :: FricConst -> Vector2 Double -> Scalar
10071
> motscalar u f = u * (magnitude f)
@@ -122,81 +93,3 @@ Now we just need to sum the force vectors:
12293
> fru' fa a u = (motkraftv u (fn fa a) (fr fa a))
12394

12495

125-
126-
127-
Hmm om jag försöker skala riktningsvektorer till sin enhetsvektor så blir det blub med nollvektorn.
128-
129-
enh_vekt v = scale (1 / (magnitude v)) v
130-
$ enh_vekt (V2 0 0)
131-
(NaN x, NaN y)
132-
133-
Jag skulle anta att enh_vekt bara gäller då (magnitude v) =/= 0.
134-
135-
136-
Fixed nollvektorn.
137-
138-
139-
*Main> fru fg (pi/4) 0
140-
(-5.0 x, 4.999999999999999 y)
141-
*Main> fru fg (pi/4) 1
142-
(1.7763568394002505e-15 x, -1.7763568394002505e-15 y)
143-
*Main> fru fg (pi/4) 0.5
144-
(-2.499999999999999 x, 2.4999999999999987 y)
145-
Ugh? Den är linjär? 1 i friktionskoeff = full stop. alltid?
146-
147-
När är isf motkraften = fallkraften?
148-
*Main> fru fg 0 5
149-
(0.0 x, 0.0 y)
150-
*Main> fru fg 0 1
151-
(0.0 x, 0.0 y)
152-
*Main> fru fg (pi/2) 10
153-
(-6.123233995736762e-16 x, 9.999999999999995 y)
154-
155-
Hmm?
156-
157-
*Main> fru fg (pi/6) 1
158-
(3.169872981077808 x, -1.8301270189221936 y)
159-
*Main> fru fg (pi/6) 0
160-
(-4.330127018922193 x, 2.499999999999999 y)
161-
*Main> fru fg (pi/6) 100000
162-
(749995.6698729811 x, -433010.2018922193 y)
163-
164-
Den statiska friktionen är konstig. Den borde stå still vid låg vinkel o hög friktion.
165-
166-
Jag summerar ju visserligen krafterna, så det är nog något lurt med friktionshanteringen.
167-
168-
Tests:
169-
170-
fr
171-
*Main> fr fg (pi/3)
172-
(-4.330127018922194 x, 7.499999999999999 y)
173-
*Main> fr fg (pi/6)
174-
(-4.330127018922193 x, 2.499999999999999 y)
175-
176-
177-
fru
178-
*Main> fru fg (pi/3) 1
179-
(-1.8301270189221928 x, 3.1698729810778055 y)
180-
*Main> fru fg (pi/6) 1
181-
(3.169872981077808 x, -1.8301270189221936 y)
182-
183-
184-
185-
fru'
186-
*Main> fru' fg (pi/3) 1
187-
(2.500000000000001 x, -4.330127018922194 y)
188-
*Main> fru' fg (pi/6) 1
189-
(7.500000000000001 x, -4.330127018922193 y
190-
191-
192-
193-
wtf händer? Hur kan fr ha samma x-vektor för två olika vinklar inom samma kvadrant?
194-
195-
fn
196-
197-
*Main> fn fg (pi/3)
198-
(-4.330127018922194 x, -2.500000000000001 y)
199-
*Main> fn fg (pi/6)
200-
(-4.330127018922193 x, -7.500000000000001 y)
201-
202-

README.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,21 @@ Medlemmar: Oskar, Erik, ~~Daniel~~, Björn, Johan
2929
- Relaterade arbeten i diskussion
3030
- ~Skriva om förklaring av generellt programmeringsspråk~
3131
- Referenssystem
32-
- Kod i figurer
32+
- ~Kod i figurer~
3333
- Kolla över användning av syntaxträd
3434
- Kommentarer i teorikapitel
35-
- Röd tråd lärandeteorier och sista stycket
35+
- Röd tråd lärandeteorier ~och sista stycket~
3636
- Framåtpekare i genomförande
3737
- Skapnde hemsida, kanske ta bort
3838
- Hade testgruppen klarat kursen?
39-
- Utveckla att inte kan fuska
39+
- ~Utveckla att inte kan fuska~
4040
- Figur som hamnat fel
4141
- Utveckla hur gick för DSL2016
42+
43+
## Att prata om
44+
45+
- Utvärdering i met+res+disk (som nu), bara disk eller inte alls?
46+
- Hur vi ska korta ner genomförande
47+
- Hur vi ska korta ner diskussion
48+
- Ha kvar hemsida i metod?
49+
- Hela läromaterialet i bilagan?
-4.66 KB
Loading

Rapport/figure/smakprov_ovning.png

-5.35 KB
Loading

Rapport/include/Diskussion.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
\chapter{Diskussion}
2+
\chapter{Diskussion}\label{cha:disk}
33
\textbf{Nånstans}
44
Implementationen kan kompileras och testas och ska då visa på att
55
implementationerna av de grundläggande områdena är både rigorösa och korrekta.

Rapport/include/Metod.tex

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,7 @@ \subsection{Implementation av domänspecifika språk för områdena}
162162
kunskap hos läsaren.
163163

164164
Efter att ett domänspecifikt språk implementerats skrevs tester till det. Det
165-
som var intressant att testa var olika lagar som skulle gälla, och eftersom de
166-
domänspecifika språken i läromaterialet modellerade matematik var det matematiska lagar
167-
som skulle gälla. Ett exempel var att vektoraddition skulle vara kommutativ.
165+
som var intressant att testa var huruvida domänens lagar gällde i det domänspecifika språket som modellerade domänen. Till exempel var det för det domänspecifika språket om vektorer aktuellt att testa om vektoraddition var kommutativ, och så vidare.
168166
Testerna gjordes med hjälp av \textit{QuickCheck}~\cite{QC} vilket är ett
169167
testningsverktyg i Haskell som genererar många och slumpmässiga testfall. Att
170168
lagarna gällde för de domänspecifika språken verifierades med andra ord genom

Rapport/include/Resultat.tex

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ \chapter{Resultat}
77

88
\section{Läromaterialet}\label{sec:res_laromaterial}
99

10-
Detta avsnitt innehåller en översikt av läromaterialet samt ett utdrag av
11-
vardera kapitel. Utdragen exemplifier delar av läromaterialet och
12-
implementationerna av domänspecifika språk. De fullständiga implementationerna
10+
Detta avsnitt innehåller en översikt av läromaterialet samt ett axplock av innehållet ur
11+
vardera kapitel. Axplocken exemplifier delar av läromaterialet och
12+
implementationerna av de domänspecifika språken. De fullständiga implementationerna
1313
är inte inkluderade (och förklarade) eftersom det är precis det läromaterialet
1414
innehåller. Rapporten skulle då bli en kopia av läromaterialet. Istället
15-
hänvisas till ett längre utdrag i bilaga~\ref{cha:utdrag} samt hemsidan där
16-
läromaterialet~\cite{LYAP} finns tillgängligt. De utdrag som finns är inga
17-
exakta kopior ord-för-ord av läromaterialet utan de har anpassats till
15+
finns ett längre utdrag i bilaga~\ref{cha:utdrag} samt hemsidan där
16+
läromaterialet~\cite{LYAP} finns tillgängligt. De avsnitt i rapporten beskriver läromaterialets innehåll är inga
17+
exakta kopior ord-för-ord utan de har anpassats till
1818
rapporten.
1919

2020
\subsection{Översikt}
@@ -30,26 +30,32 @@ \subsection{Översikt}
3030
övningar i slutet av kapitlet som ofta innebär större vidareutvecklingar av de
3131
domänspecifika språken.
3232

33-
\begin{figure}[tph]
34-
\centering
35-
\includegraphics[width=\linewidth]{figure/smakprov_laromaterial.png}
36-
\caption{Ett smakprov av det resulterande läromaterialet. Lärotexten ligger mot den ljusgrå bakgrunden medan det domänspecifika språket ligger mot den mörkgrå. Notera att detta exemplets källkod (i Litterate Haskell) har visats tidigare i avsnitt \ref{sec:lhs}.}~\label{fig:smakprov_laromaterial}
37-
\end{figure}
38-
39-
\begin{figure}[tph]
33+
\begin{figure}[h]
4034
\centering
41-
\includegraphics[width=0.4\linewidth]{figure/smakprov_ovning.png}
42-
\caption{Exempel på en övning. Övningen ligger som en del av den löpande texten.}
43-
\label{fig:smakprov_ovning}
35+
\begin{subfigure}[t]{0.5\textwidth}
36+
\centering
37+
\includegraphics[width=0.9\linewidth]{figure/smakprov_laromaterial.png}
38+
\caption{Lärotexten är mot den ljusgrå bakgrunden medan Haskell-kod är mot den mörkgrå.}~\label{fig:smakprov_laromaterial}
39+
\end{subfigure}%
40+
~~~
41+
\begin{subfigure}[t]{0.5\textwidth}
42+
\centering
43+
\includegraphics[width=0.9\linewidth]{figure/smakprov_ovning.png}
44+
\caption{Exempel på en övning. Övningen ligger som en del av den
45+
löpande texten.}~\label{fig:smakprov_ovning}
46+
\end{subfigure}
47+
\caption{Ett smakprov av det resulterande läromaterialet.}
4448
\end{figure}
4549

4650
Språket i lärotexten är enligt projektgruppen lättsamt\footnote{Diskuteras
4751
utförligare i avsnitt \ref{sec:res_disk}.} och i detta syfte finns det även
4852
bilder tillagda. Figur~\ref{fig:smakprov_bild_laromaterial} är ett exempel på en
4953
bild ur läromaterialet. Notera speciellt den medvetet oseriösa ritningstekniken
50-
som är tänkt att vara rolig och muntra upp läsaren.
54+
som är tänkt att vara rolig och muntra upp läsaren.\newline
55+
56+
% newline ska kanske bort. Är för formatering
5157

52-
\begin{figure}[tph]
58+
\begin{figure}[h]
5359
\centering
5460
\includegraphics[width=0.4\linewidth]{figure/smakprov_bild_laromaterial.png}
5561
\caption{Exempel på en bild. Bilden visar hur en hund springer och hoppar upp på en stillastående vagn.}
@@ -74,8 +80,7 @@ \subsection{Översikt}
7480
Typnivåprogrammering\footnote{Vanligtvis manipuleras \textit{värden} när
7581
programmerering sker i Haskell och andra språk. Typnivåprogrammering är precis som
7682
vanlig programmering med skillnaden att den sker på typnivån, det vill säga, att
77-
typer modifieras. Läsaren hänvisas till läromaterialet~\cite{LYAP} för en utförligare
78-
förklaring.} används för att göra likheterna så tydliga som möjligt.
83+
typer modifieras. För en utförligare förklaring av typnivåprogrammering, se läromaterialet~\cite{LYAP}.} används för att göra likheterna så tydliga som möjligt.
7984

8085
I \textit{matematisk analys} behandlas differentialkalkyl och
8186
integralkalkyl för en variabel. Först bestäms den semantiska domänen
@@ -116,6 +121,7 @@ \subsection{Översikt}
116121

117122
\subsection{Dimensioner}
118123
\label{sec:grund_impl}
124+
\label{sec:res_dim}
119125

120126
I detta avsnitt visas delar av hur implementationen av dimensioner ser ut i
121127
läromaterialet. Den fullständiga implementationen innehåller tre delar:
@@ -138,7 +144,7 @@ \subsection{Dimensioner}
138144
indiviudell exponent till varje basdimension. Datatypen, på värdenivå, som
139145
används ser därför ut som följande
140146

141-
\begin{lstlisting}[frame=none,belowskip=-0.5\baselineskip]
147+
\begin{lstlisting}
142148
data Dim = Dim Integer -- Length
143149
Integer -- Mass
144150
Integer -- Time
@@ -153,7 +159,7 @@ \subsection{Dimensioner}
153159
exponenten är $0$ betyder det att den basdimension inte är inkluderad i
154160
dimensionen. Några exempel ges för att förtydliga.
155161

156-
\begin{lstlisting}[frame=none,belowskip=-0.5\baselineskip]
162+
\begin{lstlisting}
157163
length = Dim 1 0 0 0 0 0 0
158164
mass = Dim 0 1 0 0 0 0 0
159165
time = Dim 0 0 1 0 0 0 0
@@ -180,13 +186,24 @@ \subsection{Vektorer}
180186
kurboken och implementerade vektorer i två dimensioner med en typ vars
181187
konstruktor tog två argument.
182188

189+
<<<<<<< HEAD
183190
\begin{lstlisting}
184191
test :: Int
185192
test = 1
186193
\end{lstlisting}
187194

195+
=======
196+
>>>>>>> 893785db33baa688e623fff51e3fe8a60fe7e728
188197
\subsection{Exempelproblem}
198+
\begin{binge}
199+
Dessa problem är implementationer eller lösningar på fysikuppgifter som har förekommit på tentamen i fysikkursen. De använder de andra modulerna i läromaterialet för att göra beräkningarna (exempelvis dimensionsanalys eller vektoroperationer). Av exempelproblemen finns en gungbräda och en låda på ett lutande plan. Då källkoden för dessa problem endast är menade att lösa den specifika uppgiften, och inte alla varianter på gungbrädor eller lådor på lutande plan, så kan de inte kallas för domänspecifika språk, utan är istället implementationer som använder våra domänspecifika språk.
200+
201+
Exemplet med gungbrädan har två massor på gungbräda som befinner sig i jämvikt. Uppgiften är att finna en okänd sträcka mellan en av vikterna och balanspunkten. Exemplet använder dimensionsanalys för att representera hävarmseffekten av de olika massorna. Genom att ställa upp förhållanden och lösa ut den okända sträckan, så går det att beräkna den okända sträckan. Sist görs en säkerhetskontroll där den okända sträckan används för att räkna ut hävarmsmomenten, vilket är den sista kontrolleringen att man inte har gjort några logiska fel.
202+
203+
204+
Exemplet med en låda på ett lutande plan undersöker krafterna på en låda på ett lutande plan, såsom gravitationen, normalkraften från det lutande planet, och resultantkraften, vilka representeras genom vektorer från vektormodulen. Detta exemplet tar både hänsyn till statisk friktion (då lådan befinner sig stillastående) och kinetisk friktion (då lådan befinner sig i rörelse).
189205

206+
\end{binge}
190207
\subsection{Partikelmekanik}
191208

192209
Implementationen av komposita områden var en vidareutveckling av de redan
@@ -248,8 +265,7 @@ \section{Möten med fysikläraren}\label{sec:res_ake}
248265
domänspecifika språk leder till, eftersom de domänspecifika språken måste vara
249266
väldefinierade betyder det att alla fysikaliska koncept måste göras entydiga så
250267
att även de blir väldefinierade och följden blir att operationerna på dem
251-
enbart kan göras på det definierade sättet. Inget fusk\todo{Utveckla om fusk} kan göras i
252-
beräkningarna - alla steg måste vara fullständiga och följa de regler som finns.
268+
enbart kan göras på det definierade sättet. Dessutom måste dimensionerna stämma, vilket nämndes i avsnitt \ref{sec:res_dim}.
253269
Fäldt menade att det var en bra egenskap hos läromaterialet, att detta rigorösa
254270
tankesätt och metodik som förmedlas hade varit till nytta för problemlösning i
255271
fysikkursen.

0 commit comments

Comments
 (0)