2020年6月17日水曜日

学習環境

代数への出発 (新装版 数学入門シリーズ) (松坂 和夫(著)、岩波書店)の第6章(1次方程式、2次方程式)、練習問題8の解答を求めてみる。


  1. 求める2次関数を

    y=ax2+bx+c=a(x-b2a)2-b2-4ac4a

    とおく。

    点(1,0) を通るので、

    a+b+c=0c=-a-b

    最小値-2をもつので

    a>0-b2-4ac4a=-2b2-4ac=8a

    直線

    x+y=0

    に接するので、

    -x=ax2+bx+cax2+(b+1)x+c=0(b+1)2-4ac=0b2+2b+1-4ac=0

    よって、

    {b2+4a(a+b)=8ab2+2b+1+4a(a+b)=02b+1=-8ab=-8a+12
    64a2+16a+14+4a(a-8a+12)=8a64a2+16a+1+16a-6a-12=32a64a2+16a+1-48a2-8a=32a16a2-24a+1=0a=12±144-1616=12±8216=3±224
    b=-2(3±22)+12=-7±422c=-3±224+7±422=11±624

    よって求める2次関数は

    y=3±224x2-7±422x+11±624

    (複号同順)

コード

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

print('8.')

y = -x
ys = [(3 + s * 2 * sqrt(2)) * x ** 2 / 4 -
      (7 + s * 4 * sqrt(2)) * x / 2 + (11 + s * 6 * sqrt(2)) / 4
      for s in [-1, 1]]


class Test(TestCase):
    def test(self):
        for y0 in ys:
            self.assertEqual(
                len(solveset(y0 - y, domain=S.Reals)),
                1
            )


p = plot(y, *ys, -2,
         (x, -10, 10),
         ylim=(-5, 15),
         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('sample8.png')
p.show()

if __name__ == "__main__":
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample8.py -v
8.
test (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.433s

OK
%

0 コメント:

コメントを投稿