非线性方程与方程组数值解法
- 格式:pdf
- 大小:2.35 MB
- 文档页数:88


数值分析复习资料
一、重点公式
第一章 非线性方程和方程组的数值解法
1)二分法的基本原理,误差:~12kbax
2)迭代法收敛阶:1lim0ipiic,若1p则要求01c
3)单点迭代收敛定理:
定理一:若当,xab时,(),xab且'()1xl,,xab,则迭代格式收敛于唯一的根;
定理二:设()x满足:①,xab时,(),xab,
②121212,,, ()(),01xxabxxlxxl有
则对任意初值0,xab迭代收敛,且:
110111iiiiixxxllxxxl
定理三:设()x在的邻域内具有连续的一阶导数,且'()1,则迭代格式具有局部收敛性;
定理四:假设()x在根的邻域内充分可导,则迭代格式1()iixx是P阶收敛的()()()0,1,,1,()0jPjP(Taylor展开证明)
4)Newton迭代法:1'()()iiiifxxxfx,平方收敛
5)Newton迭代法收敛定理:
设()fx在有根区间,ab上有二阶导数,且满足:
①:()()0fafb;
②:'()0,,fxxab;
③:'',,fxab不变号 ④:初值0,xab使得''()()0fxfx;
则Newton迭代法收敛于根。
6)多点迭代法:1111111()()()()()()()()()iiiiiiiiiiiiiiifxfxfxxxxxfxfxfxfxfxfxxx
收敛阶:152P
7)Newton迭代法求重根(收敛仍为线性收敛),对Newton法进行修改
①:已知根的重数r,1'()()iiiifxxxrfx(平方收敛)
②:未知根的重数:1''()(),()()()iiiiuxfxxxuxuxfx,为()fx的重根,则为()ux的单根。
大学数学实验 实验报告
——线性代数方程组的数值解法、非线性方程求解
数学实验 实验五 线性方程组的数值解法和非线性方程求解
1 大学数学实验 实验报告 | 2014/4/5 一、 实验目的
1、学习用Matlab软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分
析;
2、通过实例学习用线性代数方程组解决简化问题。
二、 实验内容
项目一:
种群的繁殖与稳定收获:种群的数量因繁殖而增加,因自然死亡而减少,对于人工饲养的
种群(比如家畜)而言,为了保证稳定的收获,各个年龄的种群数量应维持不变。种群因雌性
个体的繁殖而改变,为方便起见以下种群数量均指其中的雌性。
种群年龄记作k=1,2,…,n,当年年龄k的种群数量记作𝑥
𝑘,繁殖率记作𝑏
𝑘(每个雌性个体1
年的繁殖的数量),自然存活率记作𝑠
𝑘(𝑠
𝑘=1−𝑑
𝑘,𝑑
𝑘为1年的死亡率),收获量记作ℎ
𝑘,
则来年年龄k的种群数量𝑥̌
𝑘应该为𝑥̌
𝑘=∑
𝑏
𝑘𝑛
𝑘=1𝑥
𝑘, 𝑥̌
𝑘+1=𝑠
𝑘𝑥
𝑘−ℎ
𝑘, (k=1,2,…,n-1)。要求各个
年龄的种群数量每年维持不变就是要求使得𝑥̌
𝑘=𝑥
𝑘, (k=1,2,…,n-1).
(1) 如果𝑏
𝑘, 𝑠
𝑘已知,给定收获量ℎ
𝑘,建立求各个年龄的稳定种群数量𝑥
𝑘的模型(用矩阵、
向量表示).
(2) 设n=5,𝑏
1=𝑏
2=𝑏
5=0,𝑏
3=5,𝑏
4=3,𝑠
1=𝑠
4=0.4,𝑠
2=𝑠
3=0.6,如要求ℎ
1~ℎ
5为
500,400,200,100,100,求𝑥
1~𝑥
5.
(3) 要使ℎ
1~ℎ
5均为500,如何达到?
问题分析:
该问题属于简单的种群数量增长模型,在一定的条件(存活率,繁殖率等)下为使各年龄
阶段的种群数量保持不变,各个年龄段的种群数量将会满足一定的要求,只要找到种群数量与
各个参量之间的关系,建立起种群数量恒定的方程就可以求解出各年龄阶段的种群数量。
求解非线性方程和方程组的一些新方法
求解线性方程分为两种方法–二分法和迭代法常见的方法一共有5种二分法迭代法牛顿法割线法拟牛顿法Halley法
使用条件二分法需要知道两个自变量,分别是一个根的两侧
牛顿法迭代法是最常用的方法,收敛性信赖于初值,取不同的初值可以的方程不同的根,函数用的是一阶导数,输入的是一个猜想的可能的值
割线法给定两个初值再带入计算,比如要在2附近求一个根,那就可以假设这个范围是(1.9,2)拟牛顿法这个比较方便,用时最好可以找到一个好的初始值Halley法需要知道函数值以及它的一阶求导、二阶求导
这里我从计算代码的角度来解释一下,代码按以下顺序给出。把方程组直接带入已知条件,就可以得到答案。
二分法
基本函数是这样子的:y = dichotomy(fun,a,b,tol);二分法的算法要输入四个变量,fun,a,b,tol:函数,一个根的左右点,tol=1.0e-6
function y =fun(x)
y = x^3-5* x +4.272;
上面这个就是定义的fun,每次的输入的方程不同,第一条不动,直接改第二行就可以的。比如这里我们要计算的方程y =
x^3 - 5 * x + 4.272;我们是可以通过简单计算得到一个根的两侧分别是1和1.3 那在窗口指令指令中输入x=dichotomy(’fun‘,1,1.3,1.0e-6)就可以得到结果
function y =dichotomy(fun,a,b,tol)if nargin <4
tol =1.0e-5;
end
n =1;iffeval(fun,a)*feval(fun,b)<0
c =(a+b)/2;while(abs(b-c)>tol)&&(abs(feval(fun,c))>tol)if(feval(fun,c)*feval(fun,a)>0)
a = c;
c
数学方法解决非线性方程组
非线性方程组在科学、工程和数学领域中具有重要的应用价值。解决非线性方程组是一个复杂的任务,而数学方法为我们提供了一种有效的途径。本文将介绍一些常用的数学方法,以解决非线性方程组的问题。
1. 牛顿法
牛顿法是一种常用的数值解法,用于求解非线性方程组。它基于泰勒级数的思想,通过迭代逼近方程组的根。具体步骤如下:
首先,选择一个初始点作为近似解。然后,根据函数的导数来计算方程组在该点的切线,找到切线与坐标轴的交点。将该交点作为新的近似解,继续迭代,直到满足收敛条件。
牛顿法具有快速收敛的特点,但在某些情况下可能会陷入局部极小值点。
2. 雅可比迭代法
雅可比迭代法也是一种常见的数值解法。它将非线性方程组转化为线性方程组的形式,然后通过迭代来逼近解。具体步骤如下:
首先,将非线性方程组表示为矩阵形式,其中包含未知数的系数矩阵和常数向量。然后,将方程组进行变换,使得未知数的系数矩阵变为对角矩阵。接下来,选择一个初始解向量,并通过迭代计算新的解向量,直到满足收敛条件。 雅可比迭代法适用于大规模的非线性方程组求解,但收敛速度较慢。
3. 高斯-赛德尔迭代法
高斯-赛德尔迭代法是雅可比迭代法的改进版本。它在每次迭代中使用新的解向量来更新未知数的值,从而加快收敛速度。
具体步骤如下:
首先,选择一个初始解向量。然后,通过迭代计算新的解向量,直到满足收敛条件。
高斯-赛德尔迭代法相对于雅可比迭代法而言,可以更快地收敛到解。它在求解非线性方程组时具有较好的效果。
4. 弦截法
弦截法是一种近似求解非线性方程组的方法。它通过线段的截断来逼近方程组的根。
具体步骤如下:
首先,选择一个初始的线段,其中包含方程组的两个近似解。然后,通过截取线段上的新点,构造新的线段。重复这个过程,直到满足收敛条件。
弦截法是一种迭代方法,它可以在不需要计算导数的情况下逼近方程组的根。但是,它的收敛速度比牛顿法和雅可比迭代法要慢。