Diary


2020-12-30(水) [長年日記]

_ [diary] 勉強で終了の冬休み二日目

朝,ママと長めウォーキングしてちょっとしたら雨降り出して雪に.
明日から大寒波らしいんで今年の乗り納め&イジリ納めは3日前の日曜かぁ.
今年はコロナのせいで帰省もしないんで本当に何もしない年末年始だな.
まぁ,こんなときもあるさで仕方がない.

で,時間があるので家事の合間にちょっと算数の勉強でもするかと.
昨日は線形代数の本を読んだが今日はpythonを.
インデントにうるさいイメージがあって敬遠していたんだけど電卓代わりに使うと便利なんですね.
ターミナルでpython立ち上げておいて簡単な計算する分にはインデント関係ないしbcコマンドの強化版だと思えば違和感なく使えそうだ.

% python
>>> 2+3
5

まぁ,こんな感じのは当たり前として...

>>> import math
>>> import numpy as np
>>> math.sqrt(3)/2
0.8660254037844386
>>> math.sin(np.deg2rad(60))
0.8660254037844386

関数電卓代わりに充分そうで...

>>> (2.3+5.5j)*(3.3+6.3j)
(-27.06+32.64j)
>>> import math
>>> import cmath
>>> import numpy as np
>>> a=1/math.sqrt(2)+1/math.sqrt(2)*1j
>>> math.atan2(a.imag, a.real)
0.7853981633974483
>>> cmath.rect(1.0, np.deg2rad(45))
(0.7071067811865476+0.7071067811865475j)

複素数もサックリで...

>>> import numpy as np
>>> a = np.matrix([[1,2], [3,4]])
>>> b = np.matrix([[5,6], [7,8]])
>>> a*b
matrix([[19, 22],
        [43, 50]])

行列乗算もサックリ.
numpy.matrixは使わないほうがよいらしく numpy.array で@オペレータもしくはdotメソッドを使うのがよいらしい

>>> a = np.array([[1,2], [3,4]])
>>> b = np.array([[5,6], [7,8]])
>>> a@b # np.dot(a,b)も同じ
array([[19, 22],
       [43, 50]])

もちろん行列式や逆行列もサックリ.

>>> np.linalg.det(a)
-2.0000000000000004
>>> a = np.array([[1,2], [3,4]])
>>> np.linalg.det(a)
-2.0000000000000004
>>> b = np.linalg.inv(a)
>>> print(b)
[[-2.   1. ]
 [ 1.5 -0.5]]
>>> a@b
array([[1.00000000e+00, 1.11022302e-16],
       [0.00000000e+00, 1.00000000e+00]])

とりあえず python立ち上げて,以下をしておけば関数電卓やテンポラリに開いておくエクセルは要らない気がする.
#関数電卓所有したことないんだが(笑)

import math
import cmath
import numpy as np

結構使えるのでそのうち算数カテゴリにまとめておこう.

今日の家事

  • 洗濯・洗濯干し・取り込み
  • 風呂掃除
  • 食器洗い
  • 仕事場の掃除は家事とは言わないか


今日の運動

  • ウォーキング60分x1 朝ママと.結構歩いたな.
  • 腹筋30回


今日の読書

  • 入門Python3を少々www