想象一下有任何两个功能。您需要找到该函数的交集。您绝对不想尝试所有 x 值来检查f(x)==g(x)
. 通常在数学中,您创建从f(x)==g(x)
. 但我看不出如何用任何编程语言实现方程。
所以再一次,我在寻找什么:
- 求解方程的概念算法。
- 联立方程和二次方程也是如此。
我相信应该有一些使用函数推导的解决方法,但是我最近在学校学习了推导概念,我不知道在这种情况下如何使用它。
想象一下有任何两个功能。您需要找到该函数的交集。您绝对不想尝试所有 x 值来检查f(x)==g(x)
. 通常在数学中,您创建从f(x)==g(x)
. 但我看不出如何用任何编程语言实现方程。
所以再一次,我在寻找什么:
我相信应该有一些使用函数推导的解决方法,但是我最近在学校学习了推导概念,我不知道在这种情况下如何使用它。
这是一个比你想象的要困难得多的问题。学习这些东西的一个很好的起点是 Newton-Raphson 方法,它给出了形式方程的数值近似h(x) = 0
。(当您设置 时h(x) = g(x) - f(x)
,这将为您所询问的问题提供解决方案。)
方程的精确代数求解(例如,在 Mathematica 中实现)更加困难,你基本上必须重新创建在一张纸上求解方程时你会在脑海中做的所有事情。
显然这个问题在一般情况下是无法解决的,因为你可以构造一个任意复杂的“函数”。例如,如果你有一个包含 5 万亿项的“函数”,其中包括各种超越和复杂的变换,那么计算机可能需要数年时间才能计算出一个值,更不用说与另一个类似的函数相交了。
因此,首先您需要定义“功能”的含义。如果您的意思是次数小于 4 的多项式,那么问题就变得更加简单。在这种情况下,您结合多项式的项并找到方程的根,这将是交点。
如果多项式的项超过 5 个(五次或更多),则没有简单的符号解。在这种情况下,这些项被组合起来,您可以通过迭代逼近找到根。请参阅求根算法。
如果函数涉及超越函数,例如 sin/cos/log/e^x 等,您可以通过将函数表示为级数或连分数来潜在地找到交集。然后从另一个系列中减去一个系列并将值设置为零。连续方程的解产生根的近似值。