求两个线性方程组相交的算法

时间:2015-09-21 19:02:47

标签: algorithm linear equations

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

F(X)= 2×+ 4

G(X)= X + 2

我想使用你设置f(x)= g(x)和解x的方法,我想远离交叉产品。

有没有人对像这样的算法看起来有什么建议?

4 个答案:

答案 0 :(得分:3)

如果您的输入线处于斜率截距形式,则算法会过度消耗,因为有一个直接公式来计算它们的交点。它是在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,则为线   是不同的,没有交集,否则两条线是   相同。

答案 1 :(得分: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

答案 2 :(得分:0)

我不记得方程式背景下的交叉产品。

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

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

解决方案:(-2, 0)

答案 3 :(得分:0)

一般解决方案。让

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)