数学程序如何解决基于微积分的问题?

How do math programs solve calculus-based problems?

有许多数学程序,其中一些能够解决基于微积分的问题,GeoGebraQalculate! 到举几个例子。

这些程序如何能够解决人类需要使用长过程来评估的基于微积分的问题?
比如问题:

Quora.
所示,人类需要很多步骤才能解决这个问题 那些数学程序怎么能这么准确地解决它们?

Church-Turing 论点意味着人类可以计算的任何东西都可以通过任何图灵等效计算系统来计算 - 包括计算机上的程序 运行。也就是说,如果我们能够解决这个问题(或者计算出一个符合某些标准的近似答案),那么就可以让一个计算机程序来做同样的事情。让我们考虑一个更简单的例子:

f(x) = x
a = Integral(f, 0, 1)

遇到这个问题的人有两个选择:

  1. 尝试使用一些程序计算反导数,然后使用程序计算所提供范围内的定积分

  2. 使用某种数值方法计算定积分的近似值,该值符合某些接近真实值的标准

无论哪种情况,人类都有一套工具可以做到这一点:

  1. 认识到 f(x) 是 x 的多项式。有构造多项式反导数的规则。具体来说,可以将多项式中的每一项ax^b转化为a/(b+1)x^(b+1),然后在末尾加上一个任意常数c。然后我们说 Sf(x)dx = (1/2)x^2 + c。现在我们有了反导数,我们有一个计算范围内反导数的过程:计算高值的 Sf(x)dx,然后从计算低值的 Sf(x)dx 的结果中减去。这给出 ((1/2)1^2) - ((1/2)0^2) = 1/2 - 0 = 1/2.

  2. 决定对于我们的目的,dx=1/10 的黎曼和就足够了,我们将取中点值。我们得到 10 个矩形,底边为 1/10,高度为 1/20、3/20、5/20、7/20、9/20、11/20、13/20、15/20、17/20 和 19/20 , 分别。面积为 1/200、3/200、5/200、7/200、9/200、11/200、13/200、15/200、17/200 和 19/200。这些的总和是(1+3+5+7+9+11+13+15+17+19)/200 = 100/200 = 1/2。由于我们使用中点值并评估线性函数的定积分,因此我们碰巧得到了准确的答案;总的来说,我们会很接近但不准确。

唯一的困难在于充分说明人类用来以各种方式解决这些问题的程序。一旦指定,计算机就完全有能力完成它们。别搞错了,人类有一个程序——有意识的或潜意识的——来可靠地解决这些问题。