2019年1月2日水曜日

学習環境

数学読本〈1〉数・式の計算/方程式/不等式 (松坂 和夫(著)、岩波書店)の第3章(数学の威力を発揮する - 方程式)、3.3(高次方程式)、連立2次方程式の問40.を取り組んでみる。


  1. 直方体の横の長さ、縦の長さ、高さをそれぞれ x cm、y cm、 z cm とする。

    問題.の仮定より、

    2 x y + y z + z x = 376 2 x y + 1 + y + 1 z + z x = 376 + 36 2 x + 1 y + y z + z x + 1 = 376 + 32

    この連立方程式の解を求める。

    x y + y z + z x = 188 x y + y z + z x + x + z = 188 + 18 x y + y z + z x + y + z = 188 + 16 x + z = 18 y + z = 16 z = 18 - x y = 16 - z = 16 - 18 - x = x - 2 x x - 2 + x - 2 18 - x + 18 - x x = 188 - x 2 + 36 x - 36 - 188 = 0 x 2 - 36 x + 224 = 0 x - 8 x - 28 = 0 0 < x < 18 x = 8 y = 6 z = 10

    よって求める縦、横、高さはそれぞれ6 cm、 8 cm 、10 cm。

コード(Emacs)

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, solve
from sympy.plotting import plot3d

print('40.')

x, y, z = symbols('x, y, z')

pprint(solve((2 * (x * y + y * z + z * x) - 376,
              2 * ((x + 1) * y + y * z + z * (x + 1)) - (376 + 36),
              2 * (x * (y + 1) + (y + 1) * z + z * x) - (376 + 32)),
             dict=True))

p = plot3d((188 - x * y) / (y + x),
           (188 + 18 - x * y - x) / (y + x + 1),
           (188 + 16 - x * y - y) / (y + x + 1),
           (x, 1, 11), (y, 1, 11),
           show=False)

p.save('sample40.png')

入出力結果(Terminal, cmd(コマンドプロンプト), Jupyter(IPython))

$ ./sample40.py
40.
[{x: 6, y: 8, z: 10}, {x: 26, y: 28, z: -10}]
$

0 コメント:

コメントを投稿