2020年6月2日火曜日

学習環境

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



    1. - 5 x 0 y = x 2 + 4 x = x + 2 2 - 4

      x が-5 のとき最大値

      25 - 20 = 5

      x が-2のとき最小値-4。


    2. y = x - 2 2 + 1 x = - 2 , y = 17 x = 1 , y = 2

    3. y = - 2 x 2 - 3 x - 9 2 = - 2 x - 3 2 2 x = 3 2 , y = 0 x = - 1 , y = - 25 2

    4. y = - 1 2 x 2 + 5 2 x + 3 = - 1 2 x + 5 4 2 + 25 32 + 3 = - 1 2 x + 5 4 2 + 121 32 x = - 5 4 , y = 121 32 x = 2 , y = - 2 - 5 2 + 3 = - 3 2

コード

#!/usr/bin/env python3
from sympy import symbols, plot, Rational

print('15.')
x = symbols('x')
ys = [x ** 2 + 4 * x,
      x ** 2 - 4 * x + 5,
      -2 * x ** 2 + 6 * x - Rational(9, 2),
      -x ** 2 / 2 - 5 * x / 4 + 3]
maxs = [5, 17, 0, Rational(121, 32)]
mins = [-4, 2, -Rational(25, 2), -Rational(3, 2)]
intervals = [(x, a, b) for a, b in [(-5, 0),
                                    (-2, 1),
                                    (-1, Rational(3, 2)),
                                    (-Rational(5, 2), 2)]]
for i, (y, mi, ma, interval) in enumerate(zip(ys, mins, maxs, intervals), 1):
    p = plot(y, mi, ma,
             interval,
             ylim=(min(mins), max(maxs)),
             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(f'sample15_{i}.png')

p.show()

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

% ./sample15.py
15.
/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/sympy/plotting/plot.py:1065: MatplotlibDeprecationWarning: 
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
  self.ax[i].spines['left'].set_smart_bounds(True)
/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/sympy/plotting/plot.py:1066: MatplotlibDeprecationWarning: 
The set_smart_bounds function was deprecated in Matplotlib 3.2 and will be removed two minor releases later.
  self.ax[i].spines['bottom'].set_smart_bounds(False)
%

0 コメント:

コメントを投稿