-
Notifications
You must be signed in to change notification settings - Fork 2
/
mechanics.scrbl
118 lines (95 loc) · 3.78 KB
/
mechanics.scrbl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#lang leibniz
@title{Basic mechanics}
@author{Konrad Hinsen}
@import["quantities" "quantities.xml"]
@context["kinematics"
#:use "quantities/length"
#:use "quantities/time"
#:use "quantities/velocity"
#:use "quantities/acceleration"]{
@section{Kinematics}
The derived quantities @sort{V} and @sort{A} are obtained as quotients
of the fundamental quantities @sort{L} and @sort{T}.
Velocities are obtained by dividing a length by a time:
@inset{@op{L ÷ Tnz : V}
@op{Lnz ÷ Tnz : Vnz}}
Accelerations are the result of dividing a velocity by a time:
@inset{@op{V ÷ Tnz : A}
@op{Vnz ÷ Tnz : Anz}}
}
@context["kinematics-example"
#:extend "kinematics"]{
@subsection{Example}
We consider a point that moves on a straight line starting at time 0 from the origin.
At time @op{t1 : Tnz} it has distance @op{d1 : L} from the origin, at
time @op{t2 : Tnz}, @term{t2 > t1} the distance is @op{d2 : L}.
The average velocity from time 0 to @term{t1} is then
@inset{@op{v1 : V}
@rule{v1 ⇒ d1 ÷ t1}.}
and the average velocity between 0 and @term{t2} is
@inset{@op{v2 : V}
@rule{v2 ⇒ d2 ÷ t2}.}
The average acceleration is given by
@inset{@op{a : A}
@rule{a ⇒ 2 × ((v2 - v1) ÷ (t2 - t1))}
@eval-term{a}.}
}
@context["kinematics-nummerical-example"
#:extend "kinematics-example"]{
Introducing a time unit @op{s : Tnz} and a length unit @op{m : Lnz}, we
can assign numerical values:
@inset{@rule{t1 ⇒ 3 × s}, @rule{d1 ⇒ 20 × m}
@rule{t2 ⇒ 6 × s}, @rule{d2 ⇒ 50 × m}
@eval-term{v1}
@eval-term{v2}
@eval-term{a}.}
}
@context["time-dependent-kinematics"
#:extend "kinematics"
#:insert ["quantities/function-with-finite-difference-template"
hide-vars
(rename-sort SQD T)
(rename-sort SQDnz Tnz)
(rename-sort SQI L)
(rename-sort SQInz Lnz)
(rename-sort SQID V)
(rename-sort SQIDnz Vnz)
(rename-sort SQD→SQI T→L)
(rename-sort SQD→SQID T→V)]
#:insert ["quantities/function-with-finite-difference-template"
hide-vars
(rename-sort SQD T)
(rename-sort SQDnz Tnz)
(rename-sort SQI V)
(rename-sort SQInz Vnz)
(rename-sort SQID A)
(rename-sort SQIDnz Anz)
(rename-sort SQD→SQI T→V)
(rename-sort SQD→SQID T→A)]]{
@section{Time-dependent kinematics}
When describing motion, quantities @sort{L}, @sort{V}, and @sort{A}
become functions of @sort{T}. These time-dependent quantities
are written as @sort{T→L ⊆ T→Q}, @sort{T→V ⊆ T→Q}, and @sort{T→A ⊆ T→Q},
with each one being the time derivative of its predecessor. The sort
@sort{T→Q ⊆ Q→Q} covers all these time-dependent quantities.
}
@context["dynamics"
#:extend "time-dependent-kinematics"
#:use "quantities/mass"
#:use "quantities/force"
#:insert ["quantities/function-template"
hide-vars
(rename-sort SQD T)
(rename-sort SQDnz Tnz)
(rename-sort SQI F)
(rename-sort SQInz Fnz)
(rename-sort SQD→SQI T→F)]]{
@section{Dynamics}
Extending kinematics to dynamics requires @sort{M} for masses, @sort{F} for forces, and
@sort{T→F ⊆ T→Q} for time-dependent forces, plus the following relations between these
quantities:
@inset{@op{M × A : F}
@op{Mnz × Anz : Fnz}
@op{M × T→A : T→F}
@rule{(m × f)[t] ⇒ m × f[t] ∀ m:M ∀ f:T→A ∀ t:T}}
}