問題文
$a,b$ を実数とする。座標平面上の放物線 $y=x^{2}+ax+b$ を $C$ とおく。 $C$ は、原点で垂直に交わる2本の接線 $\ell_1,\ell_2$ を持つとする。だだし、 $C$ と $\ell_1$ の接点 $\mathrm{P}_1$ の $x$ 座標は、 $C$ と $\ell_2$ の接点 $\mathrm{P}_2$ の $x$ 座標より小さいとする。
  1. $b$ を $a$ で表せ。また $a$ の値はすべての実数をとりうることを示せ。
  2. $i=1,2$ に対し、円 $D_i$ を、放物線 $C$ の軸上に中心を持ち、点 $P_i$ で $\ell_i$ と接するものと定める。 $D_2$ の半径が $D_1$ の半径の2倍となるとき、 $a$ の値を求めよ。
(2022 東京大学 文系第1問)
  1. $b=\frac{1}{4}(a^2+1)$
  2. $a=\frac{3}{4}$
※ この答えは学校側が公表したものではありません。個人が作成した非公式の答えです。
コード
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as ani
import matplotlib.patches as patches

'''
放物線
'''
def f(x,a,b):
    y = x**2 + a*x + b
    return y

'''
図の準備
'''
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim(-4,4)
ax.set_ylim(-2,6)
ax.axhline(0,color='0.6')
ax.axvline(0,color='0.6')
ax.set_aspect("equal")
ax.grid()
ax.set_title("2022東大数学 文系第1問",pad=15)

'''
変数の準備
'''
x = np.arange(-4,4.1,0.1)
A = np.arange(-3,3.01,0.01)

'''
動画を作成する
'''
imgs = []
for a in A:
    
    #接線ℓ1
    m1 = a + np.sqrt(a**2+1)
    y  = m1*x
    l1 = ax.plot(x,y,color="0.3")
    
    #接線ℓ2
    m2 = a - np.sqrt(a**2+1)
    y  = m2*x
    l2 = ax.plot(x,y,color="0.3")
    
    #放物線C
    b  = (a**2+1)/4
    y  = f(x,a,b)
    C  = ax.plot(x,y,color="0.0")
    jiku = ax.axvline(-a/2,color='0.3',linestyle='dashed')
    
    #円D1
    d1y = (m1**2-a*m1+1)/2
    d1r = np.sqrt(m1**2+1)/2
    d1  = patches.Circle((-a/2,d1y),d1r,fc='darksalmon',alpha=0.5)
    D1  = ax.add_patch(d1)
    
    #円D2
    d2y = (m2**2-a*m2+1)/2
    d2r = np.sqrt(m2**2+1)/2
    d2  = patches.Circle((-a/2,d2y),d2r,fc='dodgerblue',alpha=0.5)
    D2  = ax.add_patch(d2)
    
    #aの値を図に記載
    boxdic = {"facecolor":"white",
              "linewidth":0}
    text = ax.text(1.5,-1.7,"a = "+"{: .2f}".format(a),fontsize=16,bbox=boxdic)
    
    #a=0.75のときだけ、動画が少し止まるようにする
    img = l1+l2+C+[jiku]+[D1]+[D2]+[text]
    if a >= 0.751 or a <= 0.749:
        imgs.append(img)
    else:
        for i in range(60):
            imgs.append(img)
    
mov=ani.ArtistAnimation(fig, imgs, 50)
plt.show()
解説になっているのか?甚だギモンな動画
「高校数学のエアポケット」に戻る