Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/01-python/12-practice/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,15 @@ $\mathrm{gcd}(a, b)$ を $a$ と $b$ の最大公約数とします。
例:$30$ と $18$ の最大公約数を求める。

$$
\begin{align*}
\begin{aligned}
\mathrm{gcd}(30, 18) &= \mathrm{gcd}(18, 30 - 18\times 1) \\
&= \mathrm{gcd}(18, 12) \\
&= \mathrm{gcd}(12, 18 - 12\times 1) \\
&= \mathrm{gcd}(12, 6) \\
&= \mathrm{gcd}(6, 12 - 6\times 2) \\
&= \mathrm{gcd}(6, 0) \\
&= 6
\end{align*}
\end{aligned}
$$

よって、最大公約数は $6$
Expand Down
8 changes: 4 additions & 4 deletions docs/02-advanced/01-image/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -117,11 +117,11 @@ Python で画像を表現してみましょう。

$$
\left\{
\begin{align*}
\begin{aligned}
R&=(1-t)R_1+tR_2 \\
G&=(1-t)G_1+tG_2 \\
B&=(1-t)B_1+tB_2
\end{align*}
\end{aligned}
\right.
$$

Expand Down Expand Up @@ -149,11 +149,11 @@ $$

$$
\left\{
\begin{align*}
\begin{aligned}
R&=s\{(1-t)R_1+tR_2\}+(1-s)\{(1-t)R_3+tR_4\} \\
G&=s\{(1-t)G_1+tG_2\}+(1-s)\{(1-t)G_3+tG_4\} \\
B&=s\{(1-t)B_1+tB_2\}+(1-s)\{(1-t)B_3+tB_4\}
\end{align*}
\end{aligned}
\right.
$$

Expand Down
24 changes: 12 additions & 12 deletions docs/02-advanced/03-error/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ $$
10 進数の $0.1$ を 2 進数で表すことを考えます。

$$
\begin{align*}
\begin{aligned}
0.1_{(10)} &= 0.0625_{(10)} + 0.03125_{(10)} + 0.00390625_{(10)} + 0.00195332_{(10)} + \cdots \\
&= \frac{1}{16}_{(10)} + \frac{1}{32}_{(10)} + \frac{1}{256}_{(10)} + \frac{1}{512}_{(10)} + \cdots \\
&= 0.0001_{(2)} + 0.00001_{(2)} + 0.0000001_{(2)} + 0.00000001_{(2)} + \cdots \\
&= 0.000110011\cdots_{(2)}
\end{align*}
\end{aligned}
$$

このように $0.1_{(10)}$ は 2 進数では有限桁で表せません。
Expand Down Expand Up @@ -82,14 +82,14 @@ $$
実は今回の場合は、回避策があります。

$$
\begin{align*}
\begin{aligned}
\sqrt{1001}-\sqrt{999} &= \frac{(\sqrt{1001}-\sqrt{999})(\sqrt{1001}+\sqrt{999})}{\sqrt{1001}+\sqrt{999}} \\
&= \frac{1001-999}{\sqrt{1001}+\sqrt{999}} \\
&= \frac{2}{\sqrt{1001}+\sqrt{999}} \\
&\simeq \frac{2}{31.63858+31.60696} \\
&= \frac{2}{63.24554} \\
&\simeq 0.03162278
\end{align*}
\end{aligned}
$$

今回の場合ならば、これで桁落ちを回避できます。
Expand All @@ -111,32 +111,32 @@ $$
次の場合、有効数字が 5 桁なら

$$
\begin{align*}
\begin{aligned}
1.0000\times 10^4 + 1.0000 &= 1.0001 \times 10^4 \\
&\simeq 1.0001 \times 10^4
\end{align*}
\end{aligned}
$$

となって正しく計算できますが、有効数字が 4 桁だと、

$$
\begin{align*}
\begin{aligned}
1.000\times 10^4 + 1.000 &= 1.0001 \times 10^4 \\
&\simeq 1.000 \times 10^4
\end{align*}
\end{aligned}
$$

となって正しく計算できません。

次のように、何度も足す場合には深刻になってきます。

$$
\begin{align*}
\begin{aligned}
1.000\times 10^4 + 4.000 + 4.000 + 4.000 &= 1.0004 \times 10^4 + 4.000 + 4.000 \\
&\simeq 1.000 \times 10^4 + 4.000 + 4.000 \\
&\simeq \cdots \\
&\simeq 1.000 \times 10^4
\end{align*}
\end{aligned}
$$

このように、絶対値の大きい数と絶対値の小さい数を加減算したときに、絶対値の小さな数字が無視されてしまうことを情報落ちといいます。
Expand All @@ -148,12 +148,12 @@ $$
小さい数を先に足して、その後に大きい数を足せば回避できます。

$$
\begin{align*}
\begin{aligned}
4.000 + 4.000 + 4.000 + 1.000\times 10^4 &= 8.000 + 4.000 + 1.000 \times 10^4 \\
&= 12.000 + 1.000 \times 10^4 \\
&= 1.0012 \times 10^4 \\
&\simeq 1.001 \times 10^4 \\
\end{align*}
\end{aligned}
$$

これで、有効数字 4 桁で正しい計算ができました。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ $$
この微分方程式は解析的に解けますが、差分化して差分方程式を作ってみましょう。

$$
\begin{align*}
\begin{aligned}
\frac{x_{n+1} - x_n}{\Delta t} &= v_0 \\
\therefore x_{n + 1} - x_n &= v_0 \Delta t \\
\therefore x_{n + 1} &= x_n + v_0 \Delta t
\end{align*}
\end{aligned}
$$

## プログラムの作成
Expand All @@ -41,12 +41,12 @@ $\Delta t$ を十分小さくとって $x_1,x_2,x_3 \dots$ を順に求めてい
この微分方程式は、次のようにすれば簡単に解けます。確かにこの結果を用いれば、簡単にプログラムを書けるので、差分方程式を使う必要性があまり感じられないかもしれません。しかし、世の中には解析的に解けない微分方程式も多いので、差分方程式を使って近似解を求めることも時には重要になってきます。

$$
\begin{align*}
\begin{aligned}
\frac{dx}{dt} &= v_0 \\
\therefore dx &= v_0 dt \\
\therefore \int dx &= \int v_0 dt \\
\therefore x &= v_0t+C
\end{align*}
\end{aligned}
$$

初期条件 $t = 0$ で $x = x_0$ を代入して、
Expand Down
28 changes: 14 additions & 14 deletions docs/03-simulation/01-simulation/02-parabolic_motion/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,33 +18,33 @@ import Answer from "@site/src/components/Answer";
これらの関係は、次のようになります。

$$
\begin{align*}
\begin{aligned}
\frac{dx}{dt} &= u \\
\frac{dy}{dt} &= v \\
\frac{du}{dt} &= 0 \\
\frac{dv}{dt} &= -g
\end{align*}
\end{aligned}
$$

これを差分化してみましょう。

$$
\begin{align*}
\begin{aligned}
\frac{x_{n + 1} - x_n}{\Delta t} &= u_n \\
\therefore x_{n + 1} - x_n &= u_n \Delta t \\
\therefore x_{n + 1} &= x_n + u_n \Delta t
\end{align*}
\end{aligned}
$$

他も同様にすると、次のようになります。

$$
\begin{align*}
\begin{aligned}
x_{n + 1} &= x_n + u_n \Delta t \\
y_{n + 1} &= y_n + v_n \Delta t \\
u_{n + 1} &= u_n \\
v_{n + 1} &= v_n - g\Delta t
\end{align*}
\end{aligned}
$$

## プログラムの作成
Expand All @@ -69,19 +69,19 @@ $$
$x$ 軸方向は次のように解けます。

$$
\begin{align*}
\begin{aligned}
\frac{d^2x}{dt^2} &= 0 \\
\therefore \frac{dx}{dt} &= C \\
\end{align*}
\end{aligned}
$$

初期条件 $t = 0$ で $\frac{dx}{dt} = v_0 \cos \theta$ を代入して、

$$
\begin{align*}
\begin{aligned}
\frac{dx}{dt} &=v_0 \cos \theta \\
\therefore x &= v_0 t \cos \theta + D \\
\end{align*}
\end{aligned}
$$

初期条件 $t = 0$ で $x = 0$ を代入して、
Expand All @@ -93,19 +93,19 @@ $$
$y$ 軸方向は次のように解けます。

$$
\begin{align*}
\begin{aligned}
\frac{d^2y}{dt^2} &= -g \\
\therefore \frac{dy}{dt} &= -gt + C \\
\end{align*}
\end{aligned}
$$

初期条件 $t = 0$ で $\frac{dy}{dt} = v_0 \sin \theta$ を代入して、

$$
\begin{align*}
\begin{aligned}
\frac{dy}{dt} &= -gt + v_0 \sin \theta \\
\therefore y &= -\frac{1}{2}gt^2 + v_0 t \sin \theta + D \\
\end{align*}
\end{aligned}
$$

初期条件 $t = 0$ で $y = 0$ を代入して、
Expand Down
24 changes: 12 additions & 12 deletions docs/03-simulation/01-simulation/03-resisted_motion/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,28 @@ import Answer from "@site/src/components/Answer";
運動方程式は次のようになります。

$$
\begin{align*}
\begin{aligned}
m\frac{d^2y}{dt^2} &= -mg - kv \\
\therefore \frac{d^2y}{dt^2} &= -g - \frac{k}{m}v
\end{align*}
\end{aligned}
$$

よって、これらの関係は次のようになります。

$$
\begin{align*}
\begin{aligned}
\frac{dy}{dt} &= v \\
\frac{dv}{dt} &= -g - \frac{k}{m}v
\end{align*}
\end{aligned}
$$

これを差分化して、差分方程式を作ると次のようになります。

$$
\begin{align*}
\begin{aligned}
y_{n + 1} &= y_n + v_n\Delta t \\
v_{n + 1} &= v_n - g\Delta t - \frac{k}{m}v_n \Delta t
\end{align*}
\end{aligned}
$$

## プログラムの作成
Expand All @@ -56,7 +56,7 @@ $$
この微分方程式も少し大変ですが、解析的に解くことができます。

$$
\begin{align*}
\begin{aligned}
\frac{d^2y}{dt^2} &= -g - \frac{k}{m}v \\
\therefore \frac{dv}{dt} &= -g - \frac{k}{m}v \\
\therefore dv &= \left(-g - \frac{k}{m}v\right) dt \\
Expand All @@ -65,27 +65,27 @@ $$
\therefore \log \left(\frac{m}{k}g + v\right) &= -\frac{k}{m}t + C \\
\therefore v + \frac{m}{k}g &= e^{-\frac{k}{m}t + C} \\
\therefore v &= -\frac{m}{k}g + Ce^{-\frac{k}{m}t}
\end{align*}
\end{aligned}
$$

初期条件 $t = 0$ で $v = 0$ を代入して、

$$
\begin{align*}
\begin{aligned}
C &= \frac{mg}{k}\\
\therefore v &= \frac{mg}{k}\left(e^{-\frac{k}{m}t} - 1\right) \\
\therefore x &= \frac{mg}{k}\left(-\frac{m}{k}e^{-\frac{k}{m}t} - t\right) + D \\
\end{align*}
\end{aligned}
$$

初期条件 $t = 0$ で $x = 0$ を代入して、

$$
\begin{align*}
\begin{aligned}
D &= \frac{m^2g}{k^2} \\
\therefore x &= \frac{mg}{k}\left(-\frac{m}{k}e^{-\frac{k}{m}t}-t\right) + \frac{m^2g}{k^2} \\
\therefore x &= \frac{m^2g}{k^2}\left(1 - e^{-\frac{k}{m}t}\right) - \frac{mg}{k}t
\end{align*}
\end{aligned}
$$

これを使って、プログラムを作ると次のようになります。
Expand Down
Loading