2016-03-04 60 views
-3

可以說我有3個二進制點(5,0),(0,5),( - 5,0),我想找到一個等距離這些3點總之找到通過這3點的圓的中心)。我從幾何知道,如果我的答案是(a,b),那麼我可以找到(a,b)和3點之間的距離並將它們相等,然後求解3個聯立方程。我如何在R中快速執行此操作?我知道方程將是線性的,所有平方項將抵消。R中心給出3分 - 求解聯立方程

_____________________________update1

我試圖爲如何解決R.線性方程但作爲所有鏈接指望我提供LHS係數和RHS值的所有3個方程式沒有得到很好的效果谷歌搜索。但我沒有RHS。我必須一次拿兩個方程式並移動術語來找到RHS。有沒有R包可以爲我做這個?

+1

爲什麼你不想谷歌這個普遍的問題解決方案? – MBo

+0

我使用Google搜索 - https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=r%20center%20given%203%20分。但它不提供任何R代碼。它只是解釋找到中心後面的邏輯 – user2543622

+0

用首選語言編寫簡單公式(https://en.wikipedia.org/wiki/Circumscribed_circle#Cartesian_coordinates_2)是否是一個真正的問題? – MBo

回答

0

我使用了評論中給出的link。我的代碼如下

#finding circles center 
p3=c(0,5,5,0,-5,0)#coordinates of point in (x1,y1,x2,y2,x3,y3) format 


mat1=matrix(c(p3[1]^2+p3[2]^2,p3[2],1,p3[3]^2+p3[4]^2,p3[4],1,p3[5]^2+p3[6]^2,p3[6],1),nrow=3,ncol=3,byrow=TRUE) 
mat2=matrix(c(p3[1],p3[1]^2+p3[2]^2,1,p3[3],p3[3]^2+p3[4]^2,1,p3[5],p3[5]^2+p3[6]^2,1),nrow=3,ncol=3,byrow=TRUE) 
mat3=matrix(c(p3[1],p3[2],1,p3[3],p3[4],1,p3[5],p3[6],1),nrow=3,ncol=3,byrow=TRUE) 
mat1 
mat2 
mat3 


xcenter=det(mat1)/(2*det(mat3)) 
ycenter=det(mat2)/(2*det(mat3)) 
radius=sqrt((p3[1]-xcenter)^2+(p3[2]-ycenter)^2)