增量式整理数值分析这门课的收获

来源:互联网 发布:js iframe src 编辑:程序博客网 时间:2024/05/19 06:15

大学的时候曾经选修过数值分析这门课程,但是当时好多地方都没学明白。研究生期间正好有老师开这门课,于是便去旁听了。开一帖,增量式地记录自己在这门课上的收获。依我个人的理解,数值分析是一门研究误差和近似算法的课程,包含很多在数值计算中的小trick。

一、求根公式 

数值计算中应该尽量避免两个相近的数相减。原因在于,两个相近的数相减会使得有效数字位数减少从而使得误差增大。在最常见的一元二次方程的求根公式中,

注意这样的一个问题,如果在当前的方程中,b^2远大于4ac,那么会导致其中一个根的分子上出现两个相近数相减的情形,这显然是我们不想看到的。所以有人用求根公式结合韦达定理来实现一元二次方程的求根,在看一些代码的时候应该理解别人为什么这么做。即可能会有作者先利用根号下与-b符号相同的情形计算出一个根x1,然后再用韦达定理x2=c/(ax1)求得另一根。

二、牛顿迭代公式

1、泰勒展开与泰勒公式

今天才逐渐明确,泰勒展开和泰勒公式并不是一个东东,泰勒展开实际上是一个无穷项,而泰勒公式则是一个有限的近似

2、牛顿迭代公式

先将f(x)在xk处泰勒展开得到下式

取线性部分来代替f(x)

从上式得到迭代关系式

这个东西很简单,关键是能“联系”到什么?或者说为什么要把它记在博客里?第一是牛顿迭代的固有属性,一般是至少平方收敛的;第二,法线牛顿迭代公式并没有像之前的迭代公式先找不动点那样操作,而是直接从泰勒公式入手。这给我的一点启发就是,泰勒公式的后面的好多项好像不是那么的重要,省略掉了使操作变得简单但是仍然可以得到第一个很漂亮的结果,也就是说,越是好的模型往往可能就越简单,甚至是有异于人的常规思维!有点化繁为简的感觉了。













0 0