如何编程解释函数极限?

数学是精确的学科,自然语言在逻辑结构方面有天然的弱势,而程序语言天然的具有清晰的逻辑结构,我们可以尝试用它来解释一些拗口的定义。

极限的出现是为了解决没有定义的点的计算,比如sinx/x在x=0处的问题,x=0让分母为0,使得计算没有意义,迫切需要新的数学工具来研究这类问题。极限的概念不是一蹴而就的,历史上很多数学家对极限进行了研究,我们现在看到的极限定义是柯西在19世纪给的定义。 

                                                  

                                       Whenever a point x is within δ units of cf(x) is within ε units of L 

图片来源:https://commons.wikimedia.org/wiki/File:L%C3%ADmite_01.svg感谢作者

函数极限的定义

百度百科中文定义是这样的:

定义:设函数f(x)在点x0的某一去心邻域内有定义,如果存在常数a,对于任意给定的正数ε,都  ,使不等式  

在  时恒成立,那么常数  就叫做函数  当  时的极限,记作

                                                                                         

维基百科英文定义是这样的: 

英文的定义更加简短,实质上国内教科书都是按照这个定义翻译过来的,我觉得翻译的不是很好,极限毕竟是一个人为设定的逻辑概念,没有突出先名称,后成立条件的自然关系。 

听起来很拗口,极限如果存在,只能是一个数,我想象不到任何其它的事物,极限只能以确切的数的形式存在,确切性,是极限的唯一属性。这样的东西用自然语言定义好吗?我尝试用程序语言来解释。


程序语言中,会有如下转换:

任意给定正数: 每一个正数,一个也不能漏掉,只要有一个不满足,就是错的,所以是遍历所有的正数。

存在:至少可以找到一个数

成立:为真

有定义:有确定的数值

去心邻域:除了中心点数外所有的数

因此,上述定义就变成:遍历某个小范围的正数e,都有以下事实:

存在正数dx,当x满足不等式0<|x-x0|<dx时,对应的函数值f(x)都满足不等式|f(x)-A|<e

这里强调的是,存在一个连续的区域:x0的dx邻域,在这片区域里,f(x)取值都是在A的e邻域内。

因此,上述定义就变成:遍历某个小范围的正数x1,至少能找到一个dx:

当x满足不等式0<|x-x0|<dx时,对应的函数值f(x)都满足不等式|f(x)-A|<e

也就是说,遍历dx限制下的x的取值,满足 |f(x)-A|<e,就说明A是自变量趋向x0时的极限。

上面过程中有一个不满足,就说明A不是自变量趋向x0时的极限。

至此,我们就理清了整个逻辑结构。现在把它转化成伪代码。

bool A_Is_Limit_Or_Not( f(x), A, x0){

for (i=0;i<fx_field;i++){  //针对f(x),给定一个小邻域半径fx_field,遍历所有取值,检查其中每一个正数,也就是e

    for (j=0;j<x_field;j++){  //针对自变量x,给定一个小邻域半径x_field,遍历所有取值,找到一个dx

        for(x=x0-dx;x<x0+dx;x++){   //把dx作为小邻域半径,遍历dx邻域中的每一个x,检查对应的每一个函数f(x)取值

            if ( !( |f(x)-A|<fx_field ) )   //检查函数f(x)和A的差能否被小邻域半径内的取值e控制住

            return false;//不是极限,结束函数

}

}

}

return true;//能够执行到这里,说明!( |f(x)-A|<fx_field )从未成立过,所以A是趋于x0的极限,结束函数

}

注明:我在这里写的i++,j++,x++,并不是真的有一个整数在做自增1操作,而是想表现变量在定义域里逐个取值的含义。


关于用程序语言表达数学,这里有一个视频讲的很不错,我也是受了启发才写的这篇文章。

猜你喜欢

转载自blog.csdn.net/sinat_39416814/article/details/99576824