#!/usr/pkg/bin/python
f = file('data.txt', 'r')
(a, b, c) = [float(i) for i in f.readline().split(' ')]
(p, q, r) = [float(i) for i in f.readline().split(' ')]
(x, y, z) = [float(i) for i in f.readline().split(' ')]
f.close()
# A B C
# (D E F)
# G H I
base = (a * q * z - a * r * y - p * b * z + p * c * y + x * b * r - x * c * q)
A = (q * z - r * y) / base
B = (c * y - b * z) / base
C = (b * r - c * q) / base
D = (r * x - p * z) / base
E = (a * z - c * x) / base
F = (c * p - a * r) / base
G = (p * y - q * x) / base
H = (b * x - a * y) / base
I = (a * q - b * p) / base
print "%f %f %f" % (A, B, C)
print "%f %f %f" % (D, E, F)
print "%f %f %f" % (G, H, I)
…とここまで作った後で、Numerical Python(NumPy)という便利な物がある事を知った。
# pkg_add -v py23-Numeric
$ python
>>> from Numeric import *
>>> from LinearAlgebra import *
>>> a = array(([1,2,3],[4,5,6],[7,8,9]))
>>> print inverse(a)
[[ -4.50359963e+15 9.00719925e+15 -4.50359963e+15]
[ 9.00719925e+15 -1.80143985e+16 9.00719925e+15]
[ -4.50359963e+15 9.00719925e+15 -4.50359963e+15]]
NumPyのドキュメントはこちら。
0 件のコメント:
コメントを投稿