您好我正在努力找出一种算法来找到两个线性方程的交集,如:
F(X)= 2×+ 4
G(X)= X + 2
我想使用你设置f(x)= g(x)和解x的方法,我想远离交叉产品。
有没有人对像这样的算法看起来有什么建议?
答案 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)