学習環境
- Surface
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
代数への出発 (新装版 数学入門シリーズ) (松坂 和夫(著)、岩波書店)の第6章(1次方程式、2次方程式)、6(関数のグラフと方程式)の問24、25の解答を求めてみる。
よって、
のとき、共有点はない。
のとき、 1個。
のとき、 2個。
よって、
のとき接する。
コード
#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, plot, solveset, S
x, k = symbols('x, k')
print('24, 25.')
y11 = x ** 2 + 4
y12 = -2 * x + k
y21 = 2 * k * x - 2 * k
y22 = x ** 2 + 3
class Test(TestCase):
def test_24(self):
self.assertEqual(
len(solveset(y11 - y12.subs({k: 2}), domain=S.Reals)),
0,
)
def test_24_1(self):
self.assertEqual(
len(solveset(y11 - y12.subs({k: 3}), domain=S.Reals)),
1,
)
def test_24_2(self):
self.assertEqual(
len(solveset(y11 - y12.subs({k: 4}), domain=S.Reals)),
2,
)
def test_25(self):
for k0 in [-1, 3]:
self.assertEqual(
len(solveset((y21 - y22).subs({k: k0}))),
1,
)
colors = ['red', 'green', 'blue', 'brown', 'orange',
'purple', 'pink', 'gray', 'skyblue', 'yellow']
for i, ys in enumerate([[y11] + [y12.subs({k: k0})
for k0 in [2, 3, 4]],
[y22] + [y21.subs({k: k0})
for k0 in [-1, (-1 + 3) / 2, 3]]], 24):
p = plot(*ys,
(x, -10, 10),
ylim=(-10, 10),
legend=True,
show=False)
for o, color in zip(p, colors):
o.line_color = color
p.save(f'sample{i}.png')
p.show()
if __name__ == "__main__":
main()
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./sample24.py -v
24, 25.
test_24 (__main__.Test) ... ok
test_24_1 (__main__.Test) ... ok
test_24_2 (__main__.Test) ... ok
test_25 (__main__.Test) ... ok
----------------------------------------------------------------------
Ran 4 tests in 0.077s
OK
%
0 コメント:
コメントを投稿