> For the complete documentation index, see [llms.txt](https://epigrolab.gitbook.io/shu-zhi-fen-xi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://epigrolab.gitbook.io/shu-zhi-fen-xi/shu-zhi-fen-xi-de-ji-chu-zhi-shi.md).

# 数值分析的基础知识

参考：《数值分析》Timothy Sauer著，裴玉如等译，机械工业出版社

原书MatLab代码均由本人改为python

## 多项式求值

科学计算方法的主要特征：

* 计算机在做简单计算的时候速度很快；
* 由于简单计算可能会进行多次，尽可能有效地进行简单计算可能非常重要；
* 最好的计算方式可能不是显而易见的那种方法。

多项式可写成如下一般的形式：

$$
c\_1 + (x-r\_1)(c\_2+(x-r\_2)(c\_3+(x-r\_3)(c\_4+(x-r\_4)c\_5)))
$$

其中，$$r\_1$$、$$r\_2$$、$$r\_3$$和 $$r\_4$$为**基点**。

```python
# 嵌套乘法
# 使用霍纳方法以嵌套形式计算多项式的值
# 输入：多项式的阶d
#             d+1个系数构成数组c(第一个元素为常数项，)
#             x是需要求值的位置
#             如果需要的话，还有d个基点构成的数组b
# 输出：多项式在x点对应的y值    
import numpy as np
def nest(d, c, x, **kwargs):
    if kwargs == ():
        b = np.zeros(d)
    else:
        b= kwargs['b']
    y = c[d]
    for i in range(d-1, -1, -1):
        y = y*(x-b[i]) + c[i]
    return y
```

## 微积分回顾

微积分的中值定理、泰勒定理对于数值分析很重要。
