-3
私は行列関数Ax = bを解くためにpythonを使用しようとしています。この場合、私たちは私が出力さとは明らかに異なっている。このnumpy.linalg.solveの出力が間違っています
[ -1.00000000e+00 2.22044605e-16 2.22044605e-16]
のようなものです
result = np.linalg.solve(A,b)
以下の私のコードとしてこれを解決するためにnumpy.linalg.solve
を使用しようとしていた
A = [[-1. 1. 0.]
[-1. 0. 1.]
[-2. 0. 0.]]
b = [ 1. 1. 2.]
を持っています正しい答え。 は、だから、私は、データ型について考えています
>>> import numpy as np
>>> T = np.matrix([[-1.0,1.0,0.0],[-1.0,0.0,1.0],[-2.0,0.0,0.0]])
>>> b = np.array([1.0,1.0,2.0])
>>> np.linalg.solve(T,b)
array([-1., 0., 0.])
>>> type(b[0])
<type 'numpy.float64'>
以下のように、端末にこれを実装しようとした結果、この種のを引き起こす可能性がありますが、私のコードから両方のAとB「はnumpy.float64」です。だから私はこの状況の理由が何であるか把握できません。
私によく見えます。 ( 'e-16'sに注意してください。) – user2357112
最初のコメントは正しいです。楽しみのために:numpyをインポートした後、 '' 'np.set_printoptions(suppress = True)' ''を追加して観察してください。まだ不明な場合は、科学記法とnumpyの文書を参照してください。 – sascha