回答編集履歴

1

追記

2017/10/19 15:03

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -28,4 +28,66 @@
28
28
 
29
29
  print dot_A
30
30
 
31
+
32
+
33
+ """実行結果
34
+
35
+ A=
36
+
37
+ [[-2. 1. ]
38
+
39
+ [ 1.5 -0.5]]
40
+
41
+ [[ 1. 0.]
42
+
43
+ [ 0. 1.]]
44
+
45
+ """
46
+
31
47
  ```
48
+
49
+
50
+
51
+ ---
52
+
53
+ > 細かい部分の指摘をもらえると幸いです。
54
+
55
+
56
+
57
+ 問題点を強いて言うなら、逆行列が存在しないときはエラーになってしまうことです。
58
+
59
+ ```Python
60
+
61
+ >>> A = np.array([[1, 2], [2, 4]])
62
+
63
+ >>> inv_A = inv(A)
64
+
65
+ Traceback (most recent call last):
66
+
67
+ File "<stdin>", line 1, in <module>
68
+
69
+ File "C:...\numpy\linalg\linalg.py", line 513, in inv
70
+
71
+ ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
72
+
73
+ File "C:...\numpy\linalg\linalg.py", line 90, in _raise_linalgerror_singular
74
+
75
+ raise LinAlgError("Singular matrix")
76
+
77
+ numpy.linalg.linalg.LinAlgError: Singular matrix
78
+
79
+ ```
80
+
81
+
82
+
83
+ 前もって階数をチェックしておくのがよいかと思います。
84
+
85
+ 行列式も判断材料にはなりますが、こちらにも計算誤差の問題が発生するので。
86
+
87
+
88
+
89
+ ---
90
+
91
+ あと、全然細かい指摘ではありませんが...
92
+
93
+ 特に2.7を使い続ける理由がなければPython3への乗り換えをお勧めします。