2014-07-21 3 views
0

다음은 this tutorial에이어서 3 점 (x, y) 좌표가 주어진 중심 및 반지름을 계산합니다. 나는 다음 파이썬 코드를 작성했지만, 내가 가진 시간과 K 값은 여전히 ​​행렬, 그래서 나는이 튜토리얼에 따라이 두 값을 계산하는 방법 궁금 : 당신은에서 하나 개의 작은 세부 사항을 놓친파이썬 : 중심 및 반지름을 결정하는 순환 회귀

import numpy as np 
from math import * 

last_point = (2, -4) 
second_last_point = (6, -2) 
third_last_point = (5, 5) 

points = [] 
points.append(last_point) 
points.append(second_last_point) 
points.append(third_last_point) 


h_numerator = [] 
h_denominator = [] 

k_numerator = [] 

for index in range(len(points)): 
    current_point = points[index] 

    h_denominator.append([current_point[0], current_point[1], 1]) 
    h_numerator.append([current_point[0] ** 2 + current_point[1] ** 2, current_point[1], 1]) 

    k_numerator.append([current_point[0], current_point[0] ** 2 + current_point[1] ** 2, 1]) 



h_numeratorMatrix = np.matrix(np.array(h_numerator)) 
denominatorMatrix = np.matrix(np.array(h_denominator)) 

k_numeratorMatrix = np.matrix(np.array(k_numerator)) 


h = h_numeratorMatrix/(2. * denominatorMatrix) 
k = k_numeratorMatrix/(2. * denominatorMatrix) 

print 'h=', h 
print 'k=', k 

답변

1

튜토리얼 : (h = h_numeratorMatrix/(2. * denominatorMatrix)를) 의

가장 간단한 형태는 이러한 참여는

를 결정 그리고 당신은 매트릭스를 분할하려는 그래서, 올바른 코드는 h 계산 다음과 같이 k은 다음과 같아야합니다

h = np.linalg.det(h_numeratorMatrix)/(2. * np.linalg.det(denominatorMatrix)) 
k = np.linalg.det(k_numeratorMatrix)/(2. * np.linalg.det(denominatorMatrix)) 


P.S.을

for current_point in points: 
    ... 
: 코드의이 부분은

for index in range(len(points)): 
    current_point = points[index] 

로 변경 될 수 있습니다