如何找到两个线性方程组的交点算法?

3

我正在苦苦思索一种算法,以找出两个线性方程的交点,例如:

f(x)=2x+4

g(x)=x+2

我希望使用将f(x)=g(x)设为方程并解出x的方法,并避免使用叉积。请问是否有人能提供类似算法的建议?
4个回答

5
如果你的输入行是斜截式形式,那么算法就过于复杂了,因为有一个直接的公式可以计算它们的交点。该公式在维基百科页面上给出(链接),并且您可以按照以下解释来理解它。

给出线条的方程:两条非垂直线相交的点的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。

因此,交点为{(d-c)/(a-b), (a*(d-c)/(a-b))+c}

注意:如果a = b,则两条线平行。 如果c ≠ d,那么这两条线是不同的,并且没有交点。否则,两条直线相同。


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

1
不要忘记测试 a != c,否则你会得到一个除以零的错误。 - Charles

1

通解。让

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)


0

我不记得在方程的背景下什么是叉积。

解决这些问题的一种方法是将它们相等,解出 x 的值,然后使用该值来解出 y

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

解决方案:(-2, 0)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接