Math VBA如何求解两个含有两个未知数的方程

Math VBA如何求解两个含有两个未知数的方程,math,vba,excel-2007,equations,Math,Vba,Excel 2007,Equations,我试图计算一条线上的点。 我得到了边的点和一条边到我想找到的点之间的距离(B) A(2,4) B(x,y) C(4,32) A到B之间的距离是5 如何计算Bx和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)

我试图计算一条线上的点。 我得到了边的点和一条边到我想找到的点之间的距离(B)

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

A到B之间的距离是5

如何计算Bx和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)

如何使用VBA解决此问题?



谢谢大家!

我不会解你上面的方程,因为它们是陈述问题的不必要的复杂方式(在存在舍入的情况下,解的存在是有问题的),但是线
a=(Ax,Ay)
C=(Cx,Cy)
上的所有点都可以描述为
B=(Ax,Ay)+t*(Cx-Ax Cy-Ay)
0
1
之间具有
t

然后,
B
A
之间的距离由
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)
VBA没有能力。要解决此问题,有不同的方法:

  • 转换方程式以分离其中一个未知数(最有可能使用替换),并进行计算(我建议您使用此方法解决问题。)
  • 转换您的函数并派生它们以供使用(不要这样做,这太过分了。)
  • 使用“蛮力”收敛方法:为每个变量确定一个最小值/最大值,并使用它来找到您想要的(我不建议这样做,因为在您的情况下,您很可能“落入”局部最小值/最大值。)

  • 所以基本上,我会说你走第一条路。这需要15分钟的数学公式修改,然后你就可以开始了。

    你的数学和你的文本不匹配,请澄清。如果你在A->B上寻找距离A 5的点,你的方程与问题无关。你将如何用笔和纸来解这些方程?这是你的答案。@Jean-FrançoisCorbett,我刚把它贴在这里,就试图用纸和笔来解决它,说实话,我做不到。但是还有另一个我不能解决的原因,我很久没有用数学了,甚至有点忘记了基本的例子:我计算(x-2)^为x^2+4,应该是x^2+4x+4…我明白了。。。你知道这个网站吗?那是数学问题应该张贴的地方。
    Math.Sqr((Bx-2)^2 + (By-4)^2) - 5 = Math.Sqr((4-Bx)^2 + (32-By)^2) - 23.0713377