2011-09-28 2 views
-2

줄에 점을 계산하려고합니다. 나는 엣지의 포인트와 하나의 엣지 사이의 하나의 점을 내가 찾고자하는 점 (B 임)으로 가져왔다.VBA 두 알 수없는 두 방정식을 해결하는 방법

A (2,4)
B (x, y)를
C (4,32)

A와 B 사이의 거리가 5

이다 어떻게 Bx로에 의해 계산할 수있다 ?

d = Math.Sqr((Bx-Ax)^2 + (By-Ay)^2) 
d = Math.Sqr((Cx-Bx)^2 + (Cy-By)^2) 

위의 식을 비교하면 다음과 같습니다. 여기


는 점 방정식이 배치되어

5 = Math.Sqr((Bx-2)^2 + (By-4)^2) 
23.0713366 = Math.Sqr((4-Bx)^2 + (32-By)^2) 

또는 I이 사용 VBA를 해결할 수있는 방법

Math.Sqr((Bx-2)^2 + (By-4)^2) - 5 = Math.Sqr((4-Bx)^2 + (32-By)^2) - 23.0713377 

?


고마워요! 나는 그들이 문제 상태에 불필요하게 복잡한 방법이기 때문에 위의 방정식을 해결하지 않습니다

+0

수학과 텍스트가 일치하지 않으므로 명확히하십시오. A에서 B까지의 거리가 A에서 5 거리 인 경우, 방정식은 문제와 아무 관계가 없습니다. – themel

+0

펜과 종이를 사용하여이 방정식을 어떻게 풀 수 있습니까? 당신의 대답이 있습니다. –

+0

@ Jean-FrançoisCorbett, 나는 그것을 게시 한 직후 펜과 종이를 사용하여 그것을 풀려고 노력했다. 솔직히 말해서 couldnt. 그러나 그것을 해결할 수없는 또 다른 이유가 있습니다.> 오랜 기간 동안 수학을 사용하지 못했고 기본적인 것을 잊어 버렸습니다.> 예 : x^2 + 4x + 4가되어야하는 x^2 + 4로 계산했습니다 (x-2). ... – Ron

답변

2

(및 솔루션의 존재는 반올림의 존재에 의문이다)하지만, C=(Cx,Cy)에 선 A=(Ax,Ay)의 모든 지점 수 B=(Ax,Ay) + t*(Cx-Ax,Cy-Ay)으로 표시되고 은 01 사이입니다.

BA 사이의 거리는 다음에 대한 적절한 t을 얻을 반전 할 수있는 d=t*Sqrt((Cx-Ax)^2+(Cy-Ay)^2)에 의해 제공되는 d 제공 - 귀하의 경우에는 t=d/Sqrt((Cx-Ax)^2+(Cy-Ay)^2)

, B(t) = (2,4) + t*(2,28), t=5/Sqrt(2^2+28^2) ~ 0.178 ->B ~ (2,4) + 0.178 * (2,28) ~ (2.356, 8.987)합니다.

+0

+1 스푼으로 VBA 솔루션을 먹지 않아도됩니다. –

0

VBA에는 Symbolic Language 기능이 없습니다. (. 나는 당신의 문제에 대한이 권장)

  1. 이 대체를 사용할 가능성이 가장 높은 미지수 중 하나를 분리 방정식을 변환하고, 계산
  2. 는 기능을 변환 : 서로 다른 접근 방식이 있습니다이 문제를 해결하려면
  3. "brute force"수렴 방법을 사용합니다. 각 변수에 대해 최소/최대 값을 수정하고 bisection methods을 사용하여 원하는 것을 찾습니다. (나는 그렇지 않습니다. 귀하의 경우 최소/최대로 떨어질 가능성이 큽니다.)

그래서 기본적으로, 나는 당신이 첫번째 길을 가고 있다고 말하고 싶습니다. 수학 방정식으로 15 분의 조작이 필요합니다. 그런 다음 이동을 시작합니다.

관련 문제