学習環境
- Surface
 - Windows 10 Pro (OS)
 - Nebo(Windows アプリ)
 - iPad
 - MyScript Nebo - MyScript(iPad アプリ(iOS))
 - 参考書籍
 
続 解析入門 (原書第2版) (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第1章(ベクトル)、1(空間の点の定義)の練習問題1の解答を求めてみる。
問1の各点のグラフ 上の点。
問2の各点の グラフ上の点。
コード
#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Matrix, pi
from sympy.plotting import plot_parametric
print('1.')
class TextVector(TestCase):
    def test(self):
        AS = [[2, -1],
              [-1, 3],
              [2, -1, 5],
              [-1, -2, 3],
              [pi, 3, -1],
              [15, -2, 4]]
        BS = [[-1, 1],
              [0, 4],
              [-1, 1, 1],
              [-1, 3, -4],
              [2 * pi, -3, 7],
              [pi, 3, -1]]
        CS = [[1, 0],
              [-1, 7],
              [1, 0, 6],
              [-2, 1, -1],
              [3 * pi, 0, 6],
              [15 + pi, 1, 3]]
        DS = [[3, -2],
              [-1, -1],
              [3, -2, 4],
              [0, -5, 7],
              [-pi, 6, -8],
              [15 - pi, -5, 5]]
        ES = [[6, -3],
              [-3, 9],
              [6, -3, 15],
              [-3, -6, 9],
              [3 * pi, 9, -3],
              [45, -6, 12]]
        FS = [[2, -2],
              [0, -8],
              [2, -2, -2],
              [2, -6, 8],
              [-4 * pi, 6, -14],
              [-2 * pi, -6, 2]]
        for i, (A, B, C, D, E, F) in enumerate(zip(AS, BS, CS, DS, ES, FS), 1):
            print(f'({i})')
            A = Matrix(A)
            B = Matrix(B)
            self.assertEqual(A + B, Matrix(C))
            self.assertEqual(A - B, Matrix(D))
            self.assertEqual(3 * A, Matrix(E))
            self.assertEqual(-2 * B, Matrix(F))
t = symbols('t')
p = plot_parametric(*[(t * x, t * y, (t, 0, 1))
                      for x, y in [(2, -1), (-1, 1), (3, -2)]],
                    (2 + t, -1 - t, (t, 0, 1)),
                    xlim=(-5, 5),
                    ylim=(-5, 5),
                    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.show()
p.save('sample1.png')
if __name__ == "__main__":
    main()
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./sample1.py -v
1.
test (__main__.TextVector) ... (1)
(2)
(3)
(4)
(5)
(6)
ok
----------------------------------------------------------------------
Ran 1 test in 0.004s
OK
%
0 コメント:
コメントを投稿