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