精要复习上节课我们讲了导数与微分。 导数的“导”,可以理解为“方向”之意。 方向决定了函数的运行,所以“导数”是函数的原因,函数是“导数”的结果。 数学即哲学,世界是存在因果关系的,因果关系即为导数与原函数的关系。 导数的MATLAB求解,很简单: y=diff(fun,x) y=diff(fun,x,n) 最后介绍了导数的亲兄弟——微分。 微分是增量的线性主部。 先思考一个问题计算器或计算机怎么计算“正弦函数”? 总不能查表吧?即使有表,那请问表又是怎么得到的呢? 这个问题的本质是,sin函数是人为定义的一个三角函数,它表面上并由“可直接计算”的函数组成,sin这个表示是一个坚硬的外壳,那怎么办? 泰勒展开公式的诞生,完美解决了这个问题,它把这一类函数的坚硬外壳彻底击碎,让所有看起来无从下手的函数,全都变成了——多项式。 泰勒展开公式初探先看看泰勒公式长什么样吧: 形式很多,这种容易记忆和理解 观察公式形式我们发现:
如果是第一次学,看不太懂很正常,先不急理解上面的结论,先看下面这个实际的例子吧—— 泰勒展开公式就是“多项式仿真”还是上面的问题,怎么把sin(x)化成一个多项式的形式? 咱们在x0=0的位置按泰勒展开分解,可以自己动笔算算,结果为: 计算机就是这样计算正弦函数的 为什么没有n=2 4 6这些项?动笔的同学肯定知道,因为这些项的导数为0,消去了。 硬壳已击碎,下面咱们利用MATLAB画画,直观感受一下。 先只取第一项,先比较一下 sin(x) 与 x: 发现其实在0点附近,两个函数还是很像的,由其两者在0点的斜率几乎相同。 这也是为什么老师教我们,当x很小时,sin(x)可以用x的值去代替。 继续再加一项: 哎呀,重叠的区域更大了。其实,当项数越来越多,两个函数就越来越像! 再加一项: 再加一项: 越多项,越像! 文章最后会附上MATLAB源码,感兴趣可以自己试一试。 所以说,泰勒展开公式,是对展开点附近的函数,进行的一个“多项式仿真”。 仿真,就一定有误差,泰勒公式的仿真误差怎么样呢? 可控的多项式仿真误差泰勒公式有无穷多项,但我们不可能计算出无穷多项,所以泰勒公式的另一种表达: 我们把从n+1往后所有的项给打包了,称为R,课本上叫它“佩亚诺型余项”,说实话时间一长我也记不住这个外国名,所以我一直习惯叫它“误差项”,还易于理解含义。 意思就是说,如果我只计算到n阶导数项,那么误差就是Rn了。 更绝的是,这个Rn被证明是x^n的高阶无穷小,关于高阶无穷小的概念我们以后会讲,这里理解为Rn起到的作用,一定比前面那些项的作用小,即可。 要接受误差,因为它无处不在 所以,我们要仿真一个“带硬壳”的函数,只要使用泰勒展开取有限几项,并保证误差在可接受的范围内,不就行了么? 所以说,泰勒展开公式是一个误差可控的多项式仿真。 直观理解泰勒展开首先,我们先尝试理解最基本的2项多项式: 几何表达: 即,x 处的函数值,约等于 x0 处的函数值,再加上由导数引起的变化量。 上节课我们理解了,导数即原因,所以我们可以这样理解上式: 对未来的仿真计算 结果=现状+原因x时间。 由于原因(导数)是当前的原因,所以仿真预测的结果肯定不完全准确,不过,只要时间足够短,仿真结果就足够准确啦。 这也印象了我们上节的理解,“导数”是函数的原因,函数是“导数”的结果。 直观理解多项泰勒展开还不止如此哦,泰勒展开还有好多项呢! |
|