程序函数与数学函数概念的区别

来源:互联网 发布:linux log4j 中文乱码 编辑:程序博客网 时间:2024/06/05 14:29

   写代码时常说“函数”,它有输入参数、返回值、计算过程等。它在形式上与数学上的函数很相似,为了得到某个结果需要自变量,同时也可以借助其他已定义的函数。但是程序函数(有的语言叫方法、过程等)与数学函数的最重要的区别是:数学函数是描述性知识,它指明了变量之间的关系,即它们之间需要满足方程的条件。程序上的函数是行动性知识,它指明了为了得到某个结果而应该如何去做。举个例子,数学上求x的平方根sqrt(x)=y,如果某个数y符合这个函数的答案,那么就要求y大于零,并且它的平方等于x。但是对于计算机来说,从这个函数里并不知道如何才能得到y的值。计算机需要的是一步一步达到目标的可行的步骤。常用的方法是牛顿逐步逼近法,这个方法首先猜测一个值,然后通过简单的操作得到一个更好的值,这样逐步迭代直到满足条件,这时最好的猜测值就作为想要的答案。这个简单的步骤就是:首个猜测值为y0,以y0和x/y0的平均值y1作为下一个更接近答案的值;判断是否满足迭代终止条件,也就是y1的平方与x的差值是否足够小,如果满足了那么这时的y1就是我们要的答案;如果不满足,以y1替代第一步的y0计算下一个平均值y作为最终答案的备选值。下面的表描述了求解2的平方根的步骤:y0=1

猜测值商平均值12/1=2(1+2)/2=1.51.52/1.5=1.333(1.5+1.333)/2=1.41671.41672/1.4167=1.41181.4142

0 0