![見出し画像](https://assets.st-note.com/production/uploads/images/145224202/rectangle_large_type_2_405318e1e5a4083781fd70ef0c62f412.png?width=1200)
GPT-4oに東大入試数学2024(理科)【第1問】を解かせた結果
1 GPT-4oに解かせた問題
今回解かせたのは、東京大学令和6(2024)年度第2次学力試験数学(理科)第1問です。
![](https://assets.st-note.com/img/1719346497975-Gy1e8g0D9R.png?width=1200)
2 解かせた結果の概要
1回目 不正解
↓(指摘)
2回目 不正解
↓(指摘)
3回目 不正解
↓(指摘)
4回目 不正解
3 詳細
座標空間内の点 $${ A(0, -1, 1) }$$ をとり、xy平面上の点 $${ P(x, y, 0) }$$ が次の条件を満たすとします。
1. $${ P }$$ は原点 $${ O }$$ と異なる。
2. $${\angle AOP \geq \frac{2}{3}\pi}$$
3. $${\angle OAP \leq \frac{\pi}{6}}$$
これらの条件を考慮して、点 $${ P }$$ の取りうる範囲をxy平面上に図示します。
### 条件の解析
1. **条件 (1): $${ P }$$ は原点 $${ O }$$ と異なる**
- $${ P }$$ は原点 $${ O }$$ (0, 0, 0) 以外の点です。
2. **条件 (2): $${\angle AOP \geq \frac{2}{3}\pi}$$**
- 点 $${ P }$$ は原点 $${ O }$$ と点 $${ A }$$ に対して角度 $${ \angle AOP }$$ が $${ \frac{2}{3}\pi }$$ 以上になる位置にあります。
$${ \cos(\angle AOP) = \frac{\vec{OA} \cdot \vec{OP}}{|\vec{OA}||\vec{OP}|}}$$
ここで、$${\vec{OA} = (0, -1, 1)}$$ と $${\vec{OP} = (x, y, 0)}$$ です。
$${ \vec{OA} \cdot \vec{OP} = 0 \cdot x + (-1) \cdot y + 1 \cdot 0 = -y }$$
$${ |\vec{OA}| = \sqrt{0^2 + (-1)^2 + 1^2} = \sqrt{2} }$$
$${ |\vec{OP}| = \sqrt{x^2 + y^2} }$$
よって、
$${ \cos(\angle AOP) = \frac{-y}{\sqrt{2} \cdot \sqrt{x^2 + y^2}} }$$
これが $${\cos(\frac{2}{3}\pi) = -\frac{1}{2}}$$ 以上である必要があります。
$${ \frac{-y}{\sqrt{2} \cdot \sqrt{x^2 + y^2}} \leq -\frac{1}{2} }$$
よって、
$${ -y \leq -\frac{\sqrt{2}}{2} \sqrt{x^2 + y^2} }$$
つまり、
$${ y \geq \frac{\sqrt{2}}{2} \sqrt{x^2 + y^2} }$$
3. **条件 (3): $${\angle OAP \leq \frac{\pi}{6}}$$**
- 点 $${ P }$$ は点 $${ A }$$ と原点 $${ O }$$ に対して角度 $${ \angle OAP }$$ が $${ \frac{\pi}{6} }$$ 以下になる位置にあります。
$${ \cos(\angle OAP) = \frac{\vec{AO} \cdot \vec{AP}}{|\vec{AO}||\vec{AP}|} }$$
ここで、$${\vec{AO} = (0, 1, -1)}$$ と $${\vec{AP} = (x, y+1, -1)}$$ です。
$${ \vec{AO} \cdot \vec{AP} = 0 \cdot x + 1 \cdot (y + 1) + (-1) \cdot 0 = y + 1 }$$
$${ |\vec{AO}| = \sqrt{0^2 + 1^2 + (-1)^2} = \sqrt{2} }$$
$${ |\vec{AP}| = \sqrt{x^2 + (y + 1)^2 + (-1)^2} = \sqrt{x^2 + (y + 1)^2 + 1}}$$
よって、
$${ \cos(\angle OAP) = \frac{y + 1}{\sqrt{2} \cdot \sqrt{x^2 + (y + 1)^2 + 1}} }$$
これが $${\cos(\frac{\pi}{6}) = \frac{\sqrt{3}}{2}}$$ 以下である必要があります。
$${ \frac{y + 1}{\sqrt{2} \cdot \sqrt{x^2 + (y + 1)^2 + 1}} \leq \frac{\sqrt{3}}{2}}$$
### 解法
この条件を満たす点 $${ P }$$ をxy平面上にプロットするためのコードを以下に示します。
```python
import matplotlib.pyplot as plt
import numpy as np
# メッシュグリッドの作成
x = np.linspace(-5, 5, 400)
y = np.linspace(-5, 5, 400)
X, Y = np.meshgrid(x, y)
# 条件2: y >= sqrt(2)/2 * sqrt(x^2 + y^2)
condition2 = Y >= (np.sqrt(2)/2) * np.sqrt(X**2 + Y**2)
# 条件3: (y + 1) / (sqrt(2) * sqrt(x^2 + (y + 1)^2 + 1)) <= sqrt(3)/2
condition3 = (Y + 1) <= (np.sqrt(3)/2) * (np.sqrt(2) * np.sqrt(X**2 + (Y + 1)**2 + 1))
# 両方の条件を満たす領域
valid_region = condition2 & condition3
# プロット
plt.figure(figsize=(8, 8))
plt.contourf(X, Y, valid_region, levels=[0, 1], colors=['white', 'blue'], alpha=0.5)
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.scatter(0, -1, color='red') # 点A
plt.title('Pの取りうる範囲')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)
plt.show()
```
上記のプロットコードを実行すると、xy平面上において条件を満たす点 $${ P }$$ の取りうる範囲が図示されます。
「ベクトルを使って考える」というのは、人間と同じでした。
条件(2)から得た不等式をもう少し簡単な形にするために、次のように指摘しました。
![](https://assets.st-note.com/img/1719347183882-TUzrnoaf5Y.png?width=1200)
ご指摘ありがとうございます。条件 (2) の変形を再確認し、次の条件を整理してプロットを行います。
### 条件の再解析
2. **条件 (2): $${\angle AOP \geq \frac{2}{3}\pi}$$**
- 点 $${ P }$$ は原点 $${ O }$$ と点 $${ A }$$ に対して角度 $${ \angle AOP }$$ が $${ \frac{2}{3}\pi }$$ 以上になる位置にあります。
$${ \cos(\angle AOP) = \frac{\vec{OA} \cdot \vec{OP}}{|\vec{OA}||\vec{OP}|}}$$
ここで、$${\vec{OA} = (0, -1, 1)}$$ と $${\vec{OP} = (x, y, 0)}$$ です。
$${ \vec{OA} \cdot \vec{OP} = 0 \cdot x + (-1) \cdot y + 1 \cdot 0 = -y }$$
$${ |\vec{OA}| = \sqrt{0^2 + (-1)^2 + 1^2} = \sqrt{2} }$$
$${ |\vec{OP}| = \sqrt{x^2 + y^2} }$$
よって、
$${ \cos(\angle AOP) = \frac{-y}{\sqrt{2} \cdot \sqrt{x^2 + y^2}} }$$
これが $${\cos(\frac{2}{3}\pi) = -\frac{1}{2}}$$ 以下である必要があります。
$${ \frac{-y}{\sqrt{2} \cdot \sqrt{x^2 + y^2}} \leq -\frac{1}{2} }$$
つまり、
$${ -y \leq -\frac{\sqrt{2}}{2} \sqrt{x^2 + y^2} }$$
したがって、
$${ y \geq \frac{\sqrt{2}}{2} \sqrt{x^2 + y^2} }$$
両辺を2乗すると、
$${ y^2 \geq \frac{2}{4}(x^2 + y^2) \Rightarrow y^2 \geq \frac{1}{2}(x^2 + y^2) }$$
よって、
$${ 2y^2 \geq x^2 + y^2 \Rightarrow y^2 \geq x^2 }$$
つまり、$${|y| \geq |x|}$$ です。
### 条件 (3) の再解析
3. **条件 (3): $${\angle OAP \leq \frac{\pi}{6}}$$**
- 点 $${ P }$$ は点 $${ A }$$ と原点 $${ O }$$ に対して角度 $${ \angle OAP }$$ が $${ \frac{\pi}{6} }$$ 以下になる位置にあります。
$${ \cos(\angle OAP) = \frac{\vec{AO} \cdot \vec{AP}}{|\vec{AO}||\vec{AP}|} }$$
ここで、$${\vec{AO} = (0, 1, -1)}$$ と $${\vec{AP} = (x, y+1, -1)}$$ です。
$${ \vec{AO} \cdot \vec{AP} = 0 \cdot x + 1 \cdot (y + 1) + (-1) \cdot (-1) = y + 2 }$$
$${ |\vec{AO}| = \sqrt{0^2 + 1^2 + (-1)^2} = \sqrt{2} }$$
$${ |\vec{AP}| = \sqrt{x^2 + (y + 1)^2 + 1} = \sqrt{x^2 + y^2 + 2y + 2} }$$
よって、
$${ \cos(\angle OAP) = \frac{y + 2}{\sqrt{2} \cdot \sqrt{x^2 + y^2 + 2y + 2}} }$$
これが $${\cos(\frac{\pi}{6}) = \frac{\sqrt{3}}{2}}$$ 以上である必要があります。
$${ \frac{y + 2}{\sqrt{2} \cdot \sqrt{x^2 + y^2 + 2y + 2}} \geq \frac{\sqrt{3}}{2} }$$
両辺を2乗すると、
$${ \frac{(y + 2)^2}{2(x^2 + y^2 + 2y + 2)} \geq \frac{3}{4} }$$
よって、
$${ 4(y + 2)^2 \geq 6(x^2 + y^2 + 2y + 2) }$$
展開して整理すると、
$${ 4y^2 + 16y + 16 \geq 6x^2 + 6y^2 + 12y + 12 }$$
$${ -2y^2 + 4y + 4 \geq 6x^2 }$$
$${
-2y^2 + 4y + 4 - 6x^2 \geq 0
}$$
よって、
$${ -6x^2 - 2y^2 + 4y + 4 \geq 0 }$$
この2つの条件を元に、点 $${ P }$$ の取りうる範囲をxy平面上にプロットします。
```python
import matplotlib.pyplot as plt
import numpy as np
# メッシュグリッドの作成
x = np.linspace(-5, 5, 400)
y = np.linspace(-5, 5, 400)
X, Y = np.meshgrid(x, y)
# 条件2: y^2 >= x^2
condition2 = (Y**2 >= X**2)
# 条件3: -6x^2 - 2y^2 + 4y + 4 >= 0
condition3 = (-6*X**2 - 2*Y**2 + 4*Y + 4 >= 0)
# 両方の条件を満たす領域
valid_region = condition2 & condition3
# プロット
plt.figure(figsize=(8, 8))
plt.contourf(X, Y, valid_region, levels=[0, 1], colors=['white', 'blue'], alpha=0.5)
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.scatter(0, -1, color='red') # 点A
plt.title('Pの取りうる範囲')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)
plt.show()
```
このプロットコードを実行すると、xy平面上で条件を満たす点 $${ P }$$ の取りうる範囲が図示されます。
条件(3)から得た不等式をもう少し簡単な形にするために、次のように指摘しました。
![](https://assets.st-note.com/img/1719347788524-fQwJUKEn6X.png?width=1200)
ご指摘ありがとうございます。条件 (3) からの不等式が楕円に変形できることを考慮して、点 $${ P }$$ の取りうる範囲を再解析します。
### 条件の再解析
**条件 (2)**:
$${y^2 \geq x^2 \quad \text{つまり} \quad |y| \geq |x|}$$
**条件 (3)**:
$${-6x^2 - 2y^2 + 4y + 4 \geq 0}$$
この不等式を楕円の形式に変形します。
$${-6x^2 - 2y^2 + 4y + 4 \geq 0}$$
両辺を -2 で割ると、
$${3x^2 + y^2 - 2y - 2 \leq 0}$$
平方完成を行います。
$${3x^2 + y^2 - 2y + 1 - 1 - 2 \leq 0}$$
$${3x^2 + (y - 1)^2 - 3 \leq 0}$$
$${3x^2 + (y - 1)^2 \leq 3}$$
両辺を3で割ると、
$${x^2 + \frac{(y - 1)^2}{3} \leq 1}$$
### プロット
この条件を考慮して、点 $${ P }$$ の取りうる範囲をプロットします。
```python
import matplotlib.pyplot as plt
import numpy as np
# メッシュグリッドの作成
x = np.linspace(-2, 2, 400)
y = np.linspace(-2, 3, 400)
X, Y = np.meshgrid(x, y)
# 条件2: y^2 >= x^2
condition2 = (Y**2 >= X**2)
# 条件3: x^2 + (y - 1)^2 / 3 <= 1
condition3 = (X**2 + (Y - 1)**2 / 3 <= 1)
# 両方の条件を満たす領域
valid_region = condition2 & condition3
# プロット
plt.figure(figsize=(8, 8))
plt.contourf(X, Y, valid_region, levels=[0, 1], colors=['white', 'blue'], alpha=0.5)
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.scatter(0, -1, color='red', label='A(0, -1, 1)') # 点A
plt.title('Pの取りうる範囲')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True)
plt.show()
```
このプロットコードを実行すると、xy平面上で条件を満たす点 $${ P }$$ の取りうる範囲が図示されます。
また、両辺を2乗する前の不等式から、$${y}$$の範囲が絞ることができます。
![](https://assets.st-note.com/img/1719348581499-J8PWV5hRyX.png?width=1200)
このことを指摘しましたが、何度か指摘する言葉を変えても、期待した回答は得られませんでした。
4 評価
【良かった点】
解法の数学的な考え方ができたことです。空間図形の問題に見えますが、AIはベクトルとその内積を用いて回答しました。これは、高校生が用いる手法と同じです。
【課題点】
1回目や2回目の回答で指摘した通り、不等式をもっと簡単な形にして、$${y}$$の範囲を$${xy}$$平面に図示しやすいようにすること
両辺を2乗する前に、$${y}$$の範囲の考察が欠けていること
そもそも$${xy}$$平面に図示するプログラムが出来上がっていない。
AIの回答にあったプログラムをPythonで動かしてみましたが、正解の図にはなりませんでした。
次は第2問を解いてみます。
最後まで読んでいただき、ありがとうございました。
![](https://assets.st-note.com/img/1719349181190-z22RxZdWvR.jpg?width=1200)
この記事が気に入ったらサポートをしてみませんか?