【问题标题】:What is an algorithm to find intersection of two linear equations?什么是找到两个线性方程的交集的算法?
【发布时间】:2015-12-18 14:18:20
【问题描述】:

我正在努力寻找一种算法来找到两个线性方程的交集,例如:

f(x)=2x+4

g(x)=x+2

我想用你设置f(x)=g(x)的方法求解x,我想远离叉积。

有人对这样的算法的外观有什么建议吗?

【问题讨论】:

    标签: algorithm equation


    【解决方案1】:

    如果您的输入线采用斜率截距形式,那么算法就太过分了,因为有一个直接公式可以计算它们的交点。它在Wikipedia page 上给出,您可以按照下面的说明理解它。

    给定线的方程:的 x 和 y 坐标 很容易找到两条非垂直线的交点 使用以下替换和重新排列。

    假设两条线有方程 y = ax + c 和 y = bx + d 其中 a 和 b 是线的斜率(梯度),其中 c 和 d 是 线的 y 截距。在两条线的点 相交(如果他们这样做),两个 y 坐标将相同,因此 以下相等:

    ax + c = bx + d。

    我们可以重新排列这个表达式以提取 x的值,

    ax - bx = d - c,等等,

    x = (d-c)/(a-b)。

    要找到 y 坐标,我们需要做的就是将 x 的值代入 > 两个直线方程中的任一个。比如进入第一个:

    y=(a*(d-c)/(a-b))+c.

    因此,交点是{(dc)/(ab), (a*(dc)/(ab))+c}

    注意: 如果 a = b 则两条线平行。如果 c ≠ d 也是如此,则行 不同且没有交点,否则两条线是 完全相同。

    【讨论】:

      【解决方案2】:

      一般解决方案。让

      f(x) = a1x + b1 ....... g(x) = a2x + b2

      特殊情况:

      • a1 == a2 和 b1 == b2 :线条重合

      • a1 == a2 和 b1 != b2 :线是平行的,没有交叉点

      一般情况:a1 != a2

      X = (b2 - b1) / (a1 - a2) ....和... Y = (a1b2 - a2b1) / (a1 - a2)

      【讨论】:

        【解决方案3】:

        鉴于: ax + b = cx + d

        ax = cx + d - b

        ax - cx = d - b

        x(a - c) = d - b

        因此,x = (d - b) / (a - c)

        在您的示例中,设 a = 2, b = 4, c = 1 d = 2

        x = (2 - 4) / (2 - 1)

        x = -2 / 1

        x = -2

        【讨论】:

        • 别忘了测试a != c,否则你会被零除。
        【解决方案4】:

        我不记得方程式上下文中的叉积是什么。

        解决这些问题的一种方法是将它们设置为彼此相等,求解x,然后使用该值求解y

        2x + 4 = x + 2
        2x + 2 = x
             x = -2
             y = f(x)
               = g(x)
               = x + 2
               = -2 + 2
               = 0
        

        解决方案:(-2, 0)

        【讨论】:

          猜你喜欢
          • 2014-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-15
          • 2020-09-22
          • 1970-01-01
          • 2021-05-25
          相关资源
          最近更新 更多