
1 非线性方程求解
非线性方程的形式
𝑓 (𝑥) = 0
根通常不止一个, 需要给定求解区间
2 二分法
有介值定理
对于任意 [𝑎, 𝑏] 上的连续函数 𝑓 (𝑥), 若 𝑓 (𝑎) 𝑓 (𝑏) < 0, 则
∃𝜉 ∈ (𝑎, 𝑏), 𝑠.𝑡. 𝑓 (𝜉) = 0
可以不断将区间二分从而缩小根的范围. 可以这么描述算法流程
1. 选择区间 [𝑎, 𝑏] 误差限 𝜖 和函数 𝑓 (𝑥)
2. 若
|
𝑎 − 𝑏
|
< 𝜖, 则停止, 输出
1
2
(𝑎 + 𝑏)
3. 计算中点 𝑐 =
𝑎+𝑏
2
以及 𝑓 (𝑐)
4. 若
|
𝑓 (𝑐)
|
< 𝜖, 则停止, 输出 𝑐
5. 若 𝑓 (𝑎) 𝑓 (𝑐) < 0, 则令 𝑏 = 𝑐, 否则令 𝑎 = 𝑐, 返回第 2 步
二分法有如下的缺点
1. 初始区间选择困难
2. 只能求出一个根
3. 只能求出实根
4. 可能存在根但是找不到
二分法的误差满足
|
𝑥 − 𝑥
∗
|
=
1
2
𝑛
(𝑏 − 𝑎)
其中 𝑥
∗
是根,𝑥 是二分法求得的值,𝑛 是迭代次数
3 不动点迭代法
对于非线性方程 𝑓 (𝑥) = 0, 可以变形为 𝑥 = 𝜑(𝑥) 的形式, 则能写出迭代形式
𝑥
𝑘+1
= 𝜑(𝑥
𝑘
), 𝑘 = 0, 1, 2, · · ·