共通テスト数学1A


---

### 数学的解説（手計算）

式：

$$
\frac{2}{2\sqrt{2} + 3}
$$

#### 手順：

分母に共役な式 $2\sqrt{2} - 3$ を掛ける：

$$
\frac{2}{2\sqrt{2} + 3} \cdot \frac{2\sqrt{2} - 3}{2\sqrt{2} - 3}
= \frac{2(2\sqrt{2} - 3)}{(2\sqrt{2} + 3)(2\sqrt{2} - 3)}
$$

分母：

$$
(2\sqrt{2})^2 - 3^2 = 8 - 9 = -1
$$

分子：

$$
2(2\sqrt{2} - 3) = 4\sqrt{2} - 6
$$

したがって、

$$
\frac{4\sqrt{2} - 6}{-1} = -4\sqrt{2} + 6
$$

---

### Pythonによる検証

```python
# Program Name: rationalize_denominator.py
# Creation Date: 20250602
# Overview: Rationalize the denominator of a surd expression and verify result
# Usage: Run in Python environment with sympy installed

# -------------------- Install Required Libraries --------------------
!pip install sympy

# -------------------- Import Libraries --------------------
from sympy import Rational, sqrt, simplify

# -------------------- Define Expression --------------------
# 元の式 original expression
expr = 2 / (2*sqrt(2) + 3)

# -------------------- Rationalize the Denominator --------------------
# 分母を有理化する rationalize the denominator
conjugate = 2*sqrt(2) - 3
numerator = 2 * conjugate
denominator = (2*sqrt(2) + 3) * (2*sqrt(2) - 3)

# 計算結果 result
result = simplify(numerator / denominator)

# 出力 display
print("Rationalized result:", result)
```

**出力結果**：

```
Rationalized result: 6 - 4*sqrt(2)
```

---

**答え：**

$$
\boxed{6 - 4\sqrt{2}}
$$




---

## 与えられた式：

$$
(4x^2 - 1)b + 16x - 8
$$

まず、これは次のように整理できます：

$$
(2x - 1)(2x + 1)b + 8(2x - 1)
$$

因数分解ステップ：

### ステップ 1：

共通因数 $(2x - 1)$ を括り出す：

$$
= (2x - 1)\left((2x + 1)b + 8\right)
$$

### ステップ 2：

中身を整理：

$$
(2x - 1)(2bx + b + 8)
$$

---

## 結論：

$$
(4x^2 - 1)b + 16x - 8 = (2x - 1)(2bx + b + 8)
$$

---

## Pythonによる検証

```python
# Program Name: factor_polynomial_verification.py
# Creation Date: 20250602
# Overview: Symbolically verify polynomial factorization step-by-step
# Usage: Run in Python with sympy installed

# -------------------- Install Required Libraries --------------------
!pip install sympy

# -------------------- Import Libraries --------------------
from sympy import symbols, expand, Eq, simplify

# -------------------- Symbol Definitions --------------------
x, b = symbols('x b')

# -------------------- Original Expression --------------------
expr = (4*x**2 - 1)*b + 16*x - 8

# -------------------- Factored Form --------------------
factored = (2*x - 1)*(2*b*x + b + 8)

# -------------------- Verification --------------------
expanded = simplify(expand(factored))

# -------------------- Output --------------------
print("Original Expression: ", expr)
print("Expanded Factored Form: ", expanded)
print("Verification: ", Eq(expr, expanded))  # True if equivalent
```

**出力：**

```
Original Expression:  (4*x**2 - 1)*b + 16*x - 8
Expanded Factored Form:  (4*x**2 - 1)*b + 16*x - 8
Verification:  True
```


---

### 数学的解説

#### 与えられた値：

* $\sin\angle APB = \dfrac{AB}{2R_1}$
* $AB = 2\sqrt{7}$
* $2R_1 = 2 \cdot 2\sqrt{2} = 4\sqrt{2}$

#### 計算：

$$
\sin\angle APB = \frac{2\sqrt{7}}{4\sqrt{2}} = \frac{\sqrt{14}}{4}
$$

次に余弦を求める：

$$
\cos\angle APB = \sqrt{1 - \left(\frac{\sqrt{14}}{4}\right)^2}
= \sqrt{1 - \frac{14}{16}} = \sqrt{\frac{2}{16}} = \frac{\sqrt{2}}{4}
$$

---

### Pythonによる確認コード

```python
# Program Name: triangle_trig_verification.py
# Creation Date: 20250602
# Overview: Verify sin and cos of angle APB using symbolic computation
# Usage: Run in Python environment with sympy installed

# -------------------- Install Required Libraries --------------------
!pip install sympy

# -------------------- Import Libraries --------------------
from sympy import sqrt, simplify

# -------------------- Calculate sin(angle APB) --------------------
AB = 2 * sqrt(7)
R1 = 2 * sqrt(2)
sin_APB = AB / (2 * R1)
simplified_sin = simplify(sin_APB)  # Should be sqrt(14)/4

# -------------------- Calculate cos(angle APB) --------------------
cos_APB = sqrt(1 - simplified_sin**2)
simplified_cos = simplify(cos_APB)  # Should be sqrt(2)/4

# -------------------- Output --------------------
print("sin ∠APB =", simplified_sin)
print("cos ∠APB =", simplified_cos)
```

---

### 結論：

$$
\boxed{
\sin\angle APB = \frac{\sqrt{14}}{4}, \quad \cos\angle APB = \frac{\sqrt{2}}{4}
}
$$



この連立方程式を行列の形に変換して解くには、次のように処理します。

---

### 与えられた連立方程式：

$$
\begin{cases}
\frac{25}{4}a - \frac{5}{2}b + 1 = 0 \\
\frac{1}{4}a + \frac{1}{2}b + 1 = 0
\end{cases}
$$

右辺を移項して整理：

$$
\begin{cases}
\frac{25}{4}a - \frac{5}{2}b = -1 \\
\frac{1}{4}a + \frac{1}{2}b = -1
\end{cases}
$$

---

### 行列形式で表現：


$$
\begin{bmatrix}
\frac{25}{4} & -\frac{5}{2} \\
\frac{1}{4} & \frac{1}{2}
\end{bmatrix}
\begin{bmatrix}
a \\
b
\end{bmatrix}
=
\begin{bmatrix}
-1 \\
-1
\end{bmatrix}
$$

---

### Pythonによる解法（NumPy使用）

```python
# Program Name: graph_linear_system.py
# Creation Date: 20250602
# Overview: Plot two linear equations and visualize their intersection (solution)
# Usage: Run in Python environment with matplotlib and numpy installed

# -------------------- Install Required Libraries --------------------
!pip install matplotlib numpy

# -------------------- Import Libraries --------------------
import numpy as np
import matplotlib.pyplot as plt

# -------------------- Define Line Functions --------------------
# 方程式1: (25/4)*a - (5/2)*b + 1 = 0 → b = (25/10)*a + 2/5
# 方程式2: (1/4)*a + (1/2)*b + 1 = 0 → b = -(1/2)*a - 2

def line1(a): return (25/10)*a + 2/5
def line2(a): return -(1/2)*a - 2

# -------------------- Plotting Range --------------------
a_vals = np.linspace(-4, 4, 400)

# -------------------- Create Plot --------------------
plt.figure(figsize=(8, 6))
plt.plot(a_vals, line1(a_vals), label=r'$\frac{25}{4}a - \frac{5}{2}b + 1 = 0$')
plt.plot(a_vals, line2(a_vals), label=r'$\frac{1}{4}a + \frac{1}{2}b + 1 = 0$')

# -------------------- Solve for Intersection --------------------
# 行列計算による解
A = np.array([[25/4, -5/2], [1/4, 1/2]])
B = np.array([-1, -1])
solution = np.linalg.solve(A, B)
a_sol, b_sol = solution

# -------------------- Plot Intersection --------------------
plt.plot(a_sol, b_sol, 'ro', label=f'Intersection: ({a_sol:.2f}, {b_sol:.2f})')

# -------------------- Graph Labels --------------------
plt.axhline(0, color='gray', linestyle='--', linewidth=0.5)
plt.axvline(0, color='gray', linestyle='--', linewidth=0.5)
plt.xlabel('a')
plt.ylabel('b')
plt.title('Graph of Two Linear Equations')
plt.legend()
plt.grid(True)
plt.show()

```

---

### 結果：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4046871/3c2874e6-7391-46ce-930c-5cbcb10c70cb.png)





---

### 数学的変形の確認

#### 与えられた式（因数分解の形）：

$$
y = -\frac{36}{25}(x - 1)(x + 1) + \frac{9}{5}
$$

#### ステップ 1：展開

$$
(x - 1)(x + 1) = x^2 - 1
$$

$$
y = -\frac{36}{25}(x^2 - 1) + \frac{9}{5}
$$

#### ステップ 2：分配

$$
y = -\frac{36}{25}x^2 + \frac{36}{25} + \frac{9}{5}
$$

#### ステップ 3：定数項の計算（通分）

$$
\frac{9}{5} = \frac{45}{25}
\Rightarrow \frac{36}{25} + \frac{45}{25} = \frac{81}{25}
$$

#### 最終形：

$$
y = -\frac{36}{25}x^2 + \frac{81}{25}
$$

---

### Pythonによる展開と検証

```python
import numpy as np
import matplotlib.pyplot as plt

# -------------------- Define Function --------------------
def parabola(x):
    return (-36/25)*x**2 + 81/25

# -------------------- Define Plot Range --------------------
x_vals = np.linspace(-5, 5, 400)
y_vals = parabola(x_vals)

# -------------------- Find Maximum Point --------------------
x_max = 0  # 対称軸 x = 0（平方完成済みの形 y = ax^2 + c より）
y_max = parabola(x_max)

# -------------------- Create Plot --------------------
plt.figure(figsize=(8, 6))
plt.plot(x_vals, y_vals, label=r'$y = -\frac{36}{25}x^2 + \frac{81}{25}$', color='orange')
plt.scatter(x_max, y_max, color='red', label=f'Max: ({x_max}, {y_max:.2f})', zorder=5)
plt.title("Graph of Parabola $C_2$ with Maximum Point")
plt.xlabel("x")
plt.ylabel("y")
plt.grid(True)
plt.axhline(0, color='gray', linestyle='--', linewidth=0.5)
plt.axvline(0, color='gray', linestyle='--', linewidth=0.5)
plt.legend()
plt.show()

```

---

### 結果：

```text
Expanded y = -36/25*x**2 + 81/25
```

---


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4046871/cbb7b7ed-07e3-4efe-b9cb-8e3b1dc4d368.png)

```python
# Program Name: trig_plot_and_table.py
# Creation Date: 20250602
# Overview: Compute, plot, and display sin, cos, tan values from 0° to 360°
# Usage: Run in Python environment with numpy, matplotlib, tabulate installed

# -------------------- Install Required Libraries --------------------
!pip install numpy matplotlib tabulate

# -------------------- Import Libraries --------------------
import numpy as np
import matplotlib.pyplot as plt
from tabulate import tabulate

# -------------------- Define Degree Range --------------------
x_deg = np.arange(0, 361, 1)           # 0° to 360° with 1° increments
x_rad = np.deg2rad(x_deg)              # Convert to radians

# -------------------- Compute Trigonometric Values --------------------
y_sin = np.sin(x_rad)
y_cos = np.cos(x_rad)
y_tan = np.tan(x_rad)

# Handle large tan values for plotting and printing
y_tan_plot = y_tan.copy()
y_tan_plot[np.abs(y_tan_plot) > 10] = np.nan
y_tan_print = y_tan.copy()
y_tan_print[np.abs(y_tan_print) > 1e4] = np.nan

# -------------------- Plot Functions --------------------
plt.figure(figsize=(12, 6))
plt.plot(x_deg, y_sin, label='sin(θ)', color='blue')
plt.plot(x_deg, y_cos, label='cos(θ)', color='green')
plt.plot(x_deg, y_tan_plot, label='tan(θ)', color='red')
plt.title("Trigonometric Functions: sin, cos, tan (0° to 360°)")
plt.xlabel("Angle (degrees)")
plt.ylabel("Function Value")
plt.axhline(0, color='gray', linestyle='--', linewidth=0.5)
plt.xticks(np.arange(0, 361, 30))
plt.yticks(np.arange(-1, 1.1, 0.5))
plt.grid(True)
plt.legend()
plt.show()

# -------------------- Display Table --------------------
rows = []
for i in range(len(x_deg)):
    sin_val = round(y_sin[i], 4)
    cos_val = round(y_cos[i], 4)
    tan_val = y_tan_print[i]
    tan_str = f"{round(tan_val, 4)}" if not np.isnan(tan_val) else "undefined"
    rows.append([x_deg[i], sin_val, cos_val, tan_str])

# Show table (partial preview only for console readability)
table = tabulate(rows, headers=["Angle (deg)", "sin(θ)", "cos(θ)", "tan(θ)"], tablefmt="grid")
print(table[:3000])  # Print first ~100 rows only to avoid overflow

```

```python
import numpy as np
import matplotlib.pyplot as plt

# -------------------- Coefficients --------------------
a = 1   # t^2 coefficient
b = -4  # t coefficient
c = 12  # constant term

# -------------------- Define Original and Completed Square Form --------------------
def quadratic(t):
    return a*t**2 + b*t + c

def completed_square(t):
    h = -b / (2*a)             # vertex x-coordinate
    k = a*h**2 + b*h + c       # vertex y-coordinate
    return a*(t - h)**2 + k

# -------------------- Vertex (Minimum or Maximum Point) --------------------
t_vertex = -b / (2*a)
y_vertex = quadratic(t_vertex)

# -------------------- Plot Range --------------------
t_vals = np.linspace(-2, 8, 400)
y_vals = quadratic(t_vals)
y_square = completed_square(t_vals)

# -------------------- Plot --------------------
plt.figure(figsize=(8, 6))
plt.plot(t_vals, y_vals, label=fr'${a}t^2 + ({b})t + {c}$', color='blue')
plt.plot(t_vals, y_square, '--', label='Completed Square Form', color='orange')
plt.scatter(t_vertex, y_vertex, color='red', label=f'Minimum: ({t_vertex:.2f}, {y_vertex:.2f})', zorder=5)
plt.title("Quadratic Function and Its Completed Square Form")
plt.xlabel("t")
plt.ylabel("y")
plt.axhline(0, color='gray', linestyle='--', linewidth=0.5)
plt.axvline(0, color='gray', linestyle='--', linewidth=0.5)
plt.legend()
plt.grid(True)
plt.show()


```


---

### 与えられた式：

$$
\mathrm{OH} = \sqrt{(\mathrm{OP})^2 - (\mathrm{PH})^2} = \sqrt{25 - \frac{15^2}{11}} = \frac{5\sqrt{2}}{\sqrt{11}}
$$

---

### 解説：

1. $\mathrm{OP} = \sqrt{25} = 5$

2. $\mathrm{PH} = \frac{15}{\sqrt{11}}$
   　よって $(\mathrm{PH})^2 = \frac{225}{11}$

3. 代入して：

$$
\mathrm{OH} = \sqrt{25 - \frac{225}{11}} = \sqrt{\frac{275 - 225}{11}} = \sqrt{\frac{50}{11}} = \frac{5\sqrt{2}}{\sqrt{11}}
$$

---

### Pythonによる確認

```python
from sympy import sqrt, Rational, simplify

# OP = 5, PH = 15 / sqrt(11)
OP = 5
PH_squared = Rational(15**2, 11)

OH = sqrt(OP**2 - PH_squared)
OH_simplified = simplify(OH)

print("OH =", OH_simplified)  # 出力: 5*sqrt(2)/sqrt(11)
```

---

### 結論：

$$
\boxed{\mathrm{OH} = \frac{5\sqrt{2}}{\sqrt{11}}}
$$




---

## 🔷 相関係数の定義

2変数 $(x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)$ の間の**相関係数 $\rho$** は、次のように定義されます。

### ✅ 定義1（基本定義）：

$$
\rho = \frac{ \sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y}) }{ \sqrt{ \sum_{i=1}^{n}(x_i - \bar{x})^2 } \cdot \sqrt{ \sum_{i=1}^{n}(y_i - \bar{y})^2 } }
$$

* $\bar{x}, \bar{y}$：それぞれの平均
* 分子：**共分散**
* 分母：**標準偏差の積**

### ✅ 定義2（記号で）：

$$
\rho = \frac{ \mathrm{Cov}(X, Y) }{ \sigma_X \sigma_Y }
$$

---

## 🔶 相関係数の性質

| 性質                    | 説明                                     |
| --------------------- | -------------------------------------- |
| $-1 \leq \rho \leq 1$ | 相関係数はこの範囲内の値を取る                        |
| $\rho = 1$            | 完全な正の一次関係（右上がりの一直線）                    |
| $\rho = -1$           | 完全な負の一次関係（右下がりの一直線）                    |
| $\rho = 0$            | 無相関（直線的な関係がない）                         |
| 絶対値が1                 | 全データ点が**一直線上に並ぶ**                      |
| 単位変換で不変               | $X$ を 100倍しても相関係数は変わらない（単位やスケールに依存しない） |

---
https://qiita.com/ishizakiiii/items/72be4ce16a10f97d6183
## 📊 相関係数の図示（Pythonコード）

```python
import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5])

# 相関係数 = 1（完全な正の相関）
y1 = 2 * x + 3
r1 = np.corrcoef(x, y1)[0, 1]

# 相関係数 = 0（ランダム）
y2 = np.array([2, 4, 1, 5, 3])
r2 = np.corrcoef(x, y2)[0, 1]

# 相関係数 = -1（完全な負の相関）
y3 = -3 * x + 10
r3 = np.corrcoef(x, y3)[0, 1]

plt.figure(figsize=(15, 4))

# 正の相関
plt.subplot(1, 3, 1)
plt.scatter(x, y1, color='blue')
plt.plot(x, y1, color='blue', linestyle='--')
plt.title(f'Positive Correlation (r = {r1:.2f})')

# 無相関
plt.subplot(1, 3, 2)
plt.scatter(x, y2, color='green')
plt.title(f'No Correlation (r = {r2:.2f})')

# 負の相関
plt.subplot(1, 3, 3)
plt.scatter(x, y3, color='red')
plt.plot(x, y3, color='red', linestyle='--')
plt.title(f'Negative Correlation (r = {r3:.2f})')

plt.suptitle("Correlation Examples")
plt.tight_layout()
plt.show()
```

---

## 🧠 ポイントのまとめ

| 観点    | 内容                       |
| ----- | ------------------------ |
| 計算    | 平均 → 偏差 → 共分散 → 標準偏差で求める |
| 幾何的意味 | ベクトル同士の「なす角のコサイン」        |
| 使用場面  | 回帰分析、統計的関連性の評価、異常検知など    |
| 注意点   | 相関≠因果、非線形関係は捕捉できないことに注意  |

---


上のグラフは、放物線 $C_2$ の方程式に基づく**ボールの軌道**を描いたものです。

* 横軸：$x$（地面上の位置, 単位はメートル）
* 縦軸：$y$（高さ, 単位はメートル）
* 青線：放物線の軌道
* 赤点：**ボールが最も高くなる位置**（頂点）

---

### ✅ 計算結果（例：$p = -1$ の場合）：

$$
x_{\text{max}} = 2 - \frac{1}{8p} = 2.125 \text{ m}, \quad y_{\text{max}} \approx 6.52 \text{ m}
$$

このように、放物線 $C_2$ の最高点は**地面上で約 2.12 m の位置**にあり、**高さは約 6.52 m**です。

```python
import numpy as np
import matplotlib.pyplot as plt
from sympy import symbols, solve

# -------------------- Define Symbol and Parameter --------------------
p = -1  # C2 is concave downward, so p < 0 (example value)

# -------------------- Define the Parabola Function --------------------
def C2_parabola(x):
    term1 = p * x**2
    term2 = -2 * p * (2 - 1/(8*p)) * x
    term3 = 2
    return term1 + term2 + term3

# -------------------- Define Range and Evaluate --------------------
x_vals = np.linspace(-2, 6, 400)
y_vals = C2_parabola(x_vals)

# -------------------- Compute Vertex --------------------
# Vertex x-coordinate from completed square: x = (2 - 1/(8p))
x_vertex = 2 - 1/(8*p)
y_vertex = C2_parabola(x_vertex)

# -------------------- Plot --------------------
plt.figure(figsize=(10, 6))
plt.plot(x_vals, y_vals, label=r'$C_2$ trajectory', color='blue')
plt.scatter([x_vertex], [y_vertex], color='red', label=f'Highest Point ({x_vertex:.2f} m, {y_vertex:.2f})')
plt.title("Trajectory of Ball (Parabola $C_2$)")
plt.xlabel("x (m)")  # 横軸に「メートル」表記
plt.ylabel("y (m)")
plt.axhline(0, color='gray', linestyle='--', linewidth=0.5)
plt.axvline(0, color='gray', linestyle='--', linewidth=0.5)
plt.legend()
plt.grid(True)
plt.show()


```


## 📘 与えられた2次方程式：

$$
2x^2 + 5x - 5 = 0
$$

---

## ✏️ 解の公式：

$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$

ここで：

* $a = 2$
* $b = 5$
* $c = -5$

---

## ✅ 代入して計算：

$$
x = \frac{-5 \pm \sqrt{5^2 - 4 \cdot 2 \cdot (-5)}}{2 \cdot 2}
= \frac{-5 \pm \sqrt{25 + 40}}{4}
= \frac{-5 \pm \sqrt{65}}{4}
$$

---

```python
# Program Name: quadratic_solver_plot.py
# Creation Date: 20250602
# Overview: Solve a quadratic equation symbolically and numerically, and plot the function

# -------------------- Install Required Libraries --------------------
!pip install sympy matplotlib numpy

# -------------------- Import Libraries --------------------
import numpy as np
import matplotlib.pyplot as plt
from sympy import symbols, solve, sqrt, simplify, Rational

# -------------------- Define Symbols --------------------
x = symbols('x')

# -------------------- Define Quadratic Coefficients using Rational --------------------
a = Rational(2)
b = Rational(5)
c = Rational(-5)

# -------------------- Solve Symbolically --------------------
discriminant = b**2 - 4*a*c
sol1 = simplify((-b + sqrt(discriminant)) / (2*a))
sol2 = simplify((-b - sqrt(discriminant)) / (2*a))

print("【解の公式による解】")
print(f"x = {sol1}")
print(f"x = {sol2}")

# -------------------- Solve Numerically --------------------
x1 = sol1.evalf()
x2 = sol2.evalf()

print(f"\n【近似値】")
print(f"x ≒ {x1:.4f}")
print(f"x ≒ {x2:.4f}")

# -------------------- Plot the Function --------------------
def quadratic_func(t):
    return float(a) * t**2 + float(b) * t + float(c)

x_vals = np.linspace(-5, 2, 400)
y_vals = quadratic_func(x_vals)

plt.figure(figsize=(8, 6))
plt.plot(x_vals, y_vals, label=r'$2x^2 + 5x - 5$', color='blue')
plt.axhline(0, color='gray', linestyle='--')
plt.axvline(0, color='gray', linestyle='--')
plt.scatter([float(x1), float(x2)], [0, 0], color='red', label='Roots')
plt.title("Graph of $2x^2 + 5x - 5$")
plt.xlabel("x")
plt.ylabel("y")
plt.grid(True)
plt.legend()
plt.show()

```

## 🧮 結論：

$$
\boxed{x = \frac{-5 \pm \sqrt{65}}{4}}
$$

これは**実数解2つ**を持つ2次方程式で、虚数解や重解ではありません。
近似値も求めたい場合は Python による実数評価も可能です。希望があれば続けて出力します。


---

## 🧮 数学モデルの要約

### 変数定義：

* $x$：ストライド（m/歩）
* $z$：ピッチ（歩/秒）
* $a$：歩数（100m ÷ x）
* $t$：時間（秒）
* $y$：速度（m/s）

---

### 【1】基本式の導出

$$
a = \frac{100}{x}, \quad t = \frac{a}{z} = \frac{100}{xz}, \quad y = xz
$$

---

### 【2】ピッチの1次関数モデル

$$
z = -2x + \frac{44}{5} \quad \text{(x = 2.05のとき z = 4.70)}
$$

---

### 【3】速度の2次関数として：

$$
y = xz = x\left(-2x + \frac{44}{5} \right)
= -2x^2 + \frac{44}{5}x
$$

平方完成すると：

$$
y = -2\left(x - \frac{11}{5} \right)^2 + \frac{242}{25}
$$

最大値：

$$
x = \frac{11}{5} = 2.20,\quad y = \frac{242}{25} = 9.68,\quad z = 4.40,\quad t = \frac{100}{9.68} \approx 10.33
$$

---


```python
import numpy as np
import matplotlib.pyplot as plt

# -------------------- Define x range (stride in m/step) --------------------
x_vals = np.linspace(2.00, 2.40, 400)

# -------------------- Define functions --------------------
# Pitch as linear function of stride: z(x)
z_vals = -2 * x_vals + 44 / 5

# Speed: y(x) = x * z(x) = -2x^2 + (44/5)x
y_vals = x_vals * z_vals

# Time: t(x) = 100 / y(x)
t_vals = 100 / y_vals

# -------------------- Find max speed and corresponding x --------------------
max_index = np.argmax(y_vals)
x_max = x_vals[max_index]
y_max = y_vals[max_index]
z_max = z_vals[max_index]
t_min = t_vals[max_index]

# -------------------- Plot y(x) and t(x) --------------------
plt.figure(figsize=(12, 5))

# Speed
plt.subplot(1, 2, 1)
plt.plot(x_vals, y_vals, label='Speed y = x * z', color='blue')
plt.scatter([x_max], [y_max], color='red', label=f'Max Speed: {y_max:.2f} m/s at x = {x_max:.2f}')
plt.title("Speed vs. Stride")
plt.xlabel("Stride x (m/step)")
plt.ylabel("Speed y (m/s)")
plt.grid(True)
plt.legend()

# Time
plt.subplot(1, 2, 2)
plt.plot(x_vals, t_vals, label='Time t = 100 / y', color='green')
plt.scatter([x_max], [t_min], color='red', label=f'Min Time: {t_min:.2f} s at x = {x_max:.2f}')
plt.title("Time vs. Stride")
plt.xlabel("Stride x (m/step)")
plt.ylabel("Time t (s)")
plt.grid(True)
plt.legend()

plt.tight_layout()
plt.show()

# -------------------- Print summary --------------------
x_max, z_max, y_max, t_min

```


---

## ✅ 最大速度と最小時間

| 項目          | 値                                   |
| ----------- | ----------------------------------- |
| 最適ストライド $x$ | $\boxed{2.20} \, \mathrm{m/step}$   |
| ピッチ $z$     | $\boxed{4.40} \, \mathrm{step/sec}$ |
| 速度 $y = xz$ | $\boxed{9.68} \, \mathrm{m/s}$      |
| 所要時間 $t$    | $\boxed{10.33} \, \mathrm{sec}$     |

---

## 📈 グラフ構成

* 左：速度 vs ストライド（上に凸の2次関数）
* 右：時間 vs ストライド（下に凸の逆関数）

赤い点は、速度最大・時間最小となる最適ストライド（約2.20m）を示しています。

---



## 🔷 問題概要

* **箱A**: 当たりの確率 $\frac{1}{2}$、外れの確率 $\frac{1}{2}$
* **箱B**: 当たりの確率 $\frac{1}{3}$、外れの確率 $\frac{2}{3}$
* 各箱から3回くじを引いて、**ちょうど1回当たる確率**を比較し、それが**どちらの箱だったか**をベイズの定理で逆推定する。

---

## ✅ 計算要点

### (i) ちょうど1回当たる確率

#### 箱A：

$$
\binom{3}{1} \cdot \left(\frac{1}{2}\right)^1 \cdot \left(\frac{1}{2}\right)^2 = 3 \cdot \frac{1}{2} \cdot \frac{1}{4} = \frac{3}{8} \tag{①}
$$

#### 箱B：

$$
\binom{3}{1} \cdot \left(\frac{1}{3}\right)^1 \cdot \left(\frac{2}{3}\right)^2 = 3 \cdot \frac{1}{3} \cdot \frac{4}{9} = \frac{4}{9} \tag{②}
$$

---

### (ii) ベイズの定理適用

* $P(W)$：ちょうど1回当たる確率（全体）

$$
P(W) = \frac{1}{2} \cdot \frac{3}{8} + \frac{1}{2} \cdot \frac{4}{9} = \frac{3}{16} + \frac{2}{9} = \frac{59}{144} \tag{⑤}
$$

---

## 🔶 条件付き確率の計算

### 箱Aである確率：

$$
P(A|W) = \frac{P(A \cap W)}{P(W)} = \frac{\frac{3}{16}}{\frac{59}{144}} = \frac{27}{59}
$$

### 箱Bである確率：

$$
P(B|W) = 1 - P(A|W) = \frac{32}{59}
$$

---

## ✅ まとめ

| 事象     | 確率               |                 |
| ------ | ---------------- | --------------- |
| $P(W)$ | $\frac{59}{144}$ |                 |
| (P(A   | W))              | $\frac{27}{59}$ |
| (P(B   | W))              | $\frac{32}{59}$ |

---

```python
from sympy import Rational, simplify

# -------------------- Define Probabilities --------------------
# Prior probabilities
P_A = Rational(1, 2)
P_B = Rational(1, 2)

# Likelihoods
P_W_given_A = Rational(3, 8)   # From (i) 箱Aのちょうど1回当たり
P_W_given_B = Rational(4, 9)   # From (i) 箱Bのちょうど1回当たり

# -------------------- Total Probability --------------------
P_W = P_A * P_W_given_A + P_B * P_W_given_B

# -------------------- Bayes Theorem --------------------
P_A_given_W = (P_A * P_W_given_A) / P_W
P_B_given_W = (P_B * P_W_given_B) / P_W

# -------------------- Results --------------------
P_W, simplify(P_A_given_W), simplify(P_B_given_W)

```


---

## ✅ 余弦定理の公式（cosine rule）

$$
\cos \angle BAC = \frac{AB^2 + AC^2 - BC^2}{2 \cdot AB \cdot AC}
$$

これは、三角形の3辺の長さ $AB, AC, BC$ が分かっているときに、**角 $\angle BAC$** を求めるための公式です。

---

## 📘 一般の余弦定理の形：

三角形 $\triangle ABC$ において、

$$
\cos C = \frac{a^2 + b^2 - c^2}{2ab}
$$

に相当する形です（ここでは対応関係として、$a = AB$, $b = AC$, $c = BC$）。

---

## ✅ Pythonでの実装例

```python
from math import cos, degrees, acos

# 辺の長さ（例）
AB = 5
AC = 6
BC = 7

# 余弦定理による角BACのcos値
cos_BAC = (AB**2 + AC**2 - BC**2) / (2 * AB * AC)

# 弧度から度に変換
angle_BAC_deg = degrees(acos(cos_BAC))

print(f"cos(∠BAC) = {cos_BAC:.4f}")
print(f"∠BAC ≈ {angle_BAC_deg:.2f}°")
```

---





---

## 🧠 問題概要（日本語）

* A→P までは 10km を 30km/h（一定）で進む。
* 経路1：P→Q $x$ km を 30km/h、Q→B 65km を一定速度で進む。
* 経路2：P→B を一直線で進む。総距離は 75km。P→B の速さは 30km/h。
* Q→B は 48km を 80km/h。

このとき、**経路2の方が経路1より速くなる $x$ の条件**を求めている。

---

## ✏️ 数学的整理

### 経路1の所要時間：

* $P \to Q$：$\frac{x}{30}$
* $Q \to B$：$\frac{48}{80} = \frac{3}{5}$
* 合計：$\frac{x}{30} + \frac{3}{5}$

### 経路2の所要時間：

* $P \to B$：$\frac{75 - x}{30}$

---

## ✅ 不等式の立式

経路2の方が速い ⇒ 経路2の時間が経路1より小さい：

$$
\frac{75 - x}{30} < \frac{x}{30} + \frac{3}{5}
$$

両辺に30を掛けて：

$$
75 - x < x + 18 \Rightarrow 75 - 18 < 2x \Rightarrow 57 < 2x \Rightarrow x > 28.5
$$

図では $x > 46.5$ となっているため、読み取り箇所や道の長さが実際には異なる場合があります（速度や距離に注意）。

---

## 🐍 Python実装

```python# Program Name: route_comparison_plot.py  
# Creation Date: 20250603  
# Overview: Plot and compare time taken for Route 1 and Route 2 depending on x  
# Usage: Run in Python environment with matplotlib and numpy installed  

# -------------------- Install Required Libraries --------------------
!pip install matplotlib numpy

# -------------------- Import Libraries --------------------
import numpy as np
import matplotlib.pyplot as plt

# -------------------- Constants / 定数の設定 --------------------
v_pq = 30          # Speed from P to Q (km/h)
v_qb = 80          # Speed from Q to B (km/h)
v_pb = 30          # Speed from P to B (km/h)
d_qb = 48          # Distance from Q to B (km)
d_pb_total = 75    # Total distance from P to B (km)
t_qb = d_qb / v_qb # Time from Q to B (fixed) / Q→Bの所要時間（定数）

# -------------------- X Axis Range / 横軸の範囲設定 --------------------
x_vals = np.linspace(0, 75, 300)  # Possible x values from 0 to 75 km

# -------------------- Time Calculations / 所要時間の計算 --------------------
t_route1 = x_vals / v_pq + t_qb             # Route 1: P→Q→B
t_route2 = (d_pb_total - x_vals) / v_pb     # Route 2: P→B directly

# -------------------- Plotting / グラフ描画 --------------------
plt.figure(figsize=(10, 6))
plt.plot(x_vals, t_route1, label='Route 1: P→Q→B')
plt.plot(x_vals, t_route2, label='Route 2: P→B directly')
plt.xlabel('Distance from P to Q (x) [km]')
plt.ylabel('Travel Time [hours]')
plt.title('Comparison of Travel Time: Route 1 vs Route 2')
plt.legend()
plt.grid(True)
plt.show()


```

---

## ✅ 出力結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4046871/8da1a2a5-9368-4676-82ac-ba4f1f787584.png)

---