के साथ दो बिंदुओं (त्रिज्या ज्ञात) के आधार पर सर्कल सेंटर निर्धारित करता है मेरे पास अंक की एक जोड़ी है और मैं इन दो बिंदुओं द्वारा निर्धारित ज्ञात आर की मंडलियों को ढूंढना चाहता हूं। मैं इसे x
और y
के लिए अनुकरण और संभावित स्थान में उपयोग कर रहा हूं सीमाएं हैं (-200, 200 का एक बॉक्स कहें)।हल/ऑप्टिमाइज़
It is known कि त्रिज्या के वर्ग
(x-x1)^2 + (y-y1)^2 = r^2
(x-x2)^2 + (y-y2)^2 = r^2
मैं अब दो संभावित चक्र केन्द्रों प्राप्त करने के लिए समीकरणों के इस गैर रेखीय प्रणाली का समाधान चाहते हैं। मैंने पैकेज BB
का उपयोग करने का प्रयास किया। यहां मेरा कमजोर प्रयास है जो केवल एक बिंदु देता है। जो मैं प्राप्त करना चाहता हूं वह दोनों संभव अंक हैं। सही दिशा में किसी भी संकेतक को पहले संभावित अवसर पर मानार्थ बियर के साथ मुलाकात की जाएगी।
library(BB)
known.pair <- structure(c(-46.9531139599816, -62.1874917150412, 25.9011462171242,
16.7441676243879), .Dim = c(2L, 2L), .Dimnames = list(NULL, c("x",
"y")))
getPoints <- function(ps, r, tr) {
# get parameters
x <- ps[1]
y <- ps[2]
# known coordinates of two points
x1 <- tr[1, 1]
y1 <- tr[1, 2]
x2 <- tr[2, 1]
y2 <- tr[2, 2]
out <- rep(NA, 2)
out[1] <- (x-x1)^2 + (y-y1)^2 - r^2
out[2] <- (x-x2)^2 + (y-y2)^2 - r^2
out
}
slvd <- BBsolve(par = c(0, 0),
fn = getPoints,
method = "L-BFGS-B",
tr = known.pair,
r = 40
)
ग्राफिक रूप से आप इसे निम्न कोड के साथ देख सकते हैं, लेकिन आपको कुछ अतिरिक्त पैकेज की आवश्यकता होगी।
library(sp)
library(rgeos)
plot(0,0, xlim = c(-200, 200), ylim = c(-200, 200), type = "n", asp = 1)
points(known.pair)
found.pt <- SpatialPoints(matrix(slvd$par, nrow = 1))
plot(gBuffer(found.pt, width = 40), add = T)
परिशिष्ट
आप अपने सभी मूल्यवान टिप्पणियों और कोड के लिए धन्यवाद। मैं पोस्टर्स द्वारा उत्तरों के लिए समय प्रदान करता हूं जिन्होंने कोड के साथ अपने उत्तरों की सराहना की।
test replications elapsed relative user.self sys.self user.child sys.child
4 alex 100 0.00 NA 0.00 0 NA NA
2 dason 100 0.01 NA 0.02 0 NA NA
3 josh 100 0.01 NA 0.02 0 NA NA
1 roland 100 0.15 NA 0.14 0 NA NA
अंक करो परिधि पर झूठ? – James
हाथों से समीकरण प्रणाली को हल करना और सूत्रों का उपयोग करना संभव है – MBo
@ जेम्स, हाँ बिंदु परिधि पर कहीं झूठ बोलते हैं। मैंने अपना जवाब अपडेट कर दिया है जो परिणाम दिखाता है। –