## 2020年6月16日火曜日

### 数学 - Python - 代数学 - 1次関数、2次関数 - 放物線、直線、接する場合、判別式

1. $\begin{array}{l}{x}^{2}=mx-4\left(m-3\right)\\ {x}^{2}-mx+4\left(m-3\right)=0\end{array}$
$\begin{array}{l}D={m}^{2}-4·4\left(m-3\right)=0\\ {m}^{2}-16m+48=0\\ \left(m-4\right)\left(m-12\right)=0\end{array}$

よって、 問題の直線が放物線に接するのは

$m=4,12$

のとき。

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, plot, solveset, S
from sympy.abc import m, x

print('7.')

y1 = m * x - 4 * (m - 3)
y2 = x ** 2
ms = [4, 12]

class Test(TestCase):
def test(self):
for m0 in ms:
self.assertEqual(
len(solveset(y1.subs({m: m0}) - x, domain=S.Reals)),
1
)

p = plot(y2,
*[y1.subs({m: m0}) for m0 in ms],
(x, 0, 50),
ylim=(0, 50),
legend=True,
show=False)

colors = ['red', 'green', 'blue', 'brown', 'orange',
'purple', 'pink', 'gray', 'skyblue', 'yellow']

for o, color in zip(p, colors):
o.line_color = color
p.save('sample7.png')
p.show()

if __name__ == "__main__":
main()

% ./sample7.py -v
7.
test (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.015s

OK
%