数学实验 Experiments in Mathematics 实验6. 非线性方程的近似解 江西财经大学 数学与决策科学系 制作:华长生 实验6. 非线性方程的近似解 江西财经大学 数学与决策科学系 制作:华长生 华长生制作
实验6. 非线性方程的近似解 一、实例: 疾病的传播 在传染病的蔓延过程中,当已感染者(病人)与易感 实验6. 非线性方程的近似解 一、实例: 疾病的传播 在传染病的蔓延过程中,当已感染者(病人)与易感 染者(健康人)进行接触时,健康人会变为病人 假设在一个封闭的环境中总人数N 不变,记时刻t健 康人和病人在总人数中的比例分别为x(t) 和y(t). ---------(1) 健康人总数 病人总数 华长生制作
每个病人可使健康人变为病人的数量为 每天变为病人的健康人数量为 所以健康人的数目比例应满足微分方程 负号表示减少 ---------(2) 感染率 每个病人可使健康人变为病人的数量为 每天变为病人的健康人数量为 所以健康人的数目比例应满足微分方程 负号表示减少 ---------(2) 于是每天被治愈的病人总数为 所以每天病人的变化数(增加)为 华长生制作
因此病人的数量比例也应满足微分方程 ---------(3) 病人被治愈后有两种可能 非终身免疫 治愈后仍有可能成为被感染者 此时方程(1)将会化为 参见P179[3] 终身免疫 治愈后不再成为易感染者 此时 华长生制作
于是得到微分方程组 无解析解 ---------(4) 表示传染期的平均天数 一个传染期内每个病人接触到 的平均人数,称为接触数 华长生制作
求解方程(4),得 ---------(5) 若取一组值 (5)的图象 但人们关心的是 传染病疫情结束后, 还有多少人没被感染? 华长生制作
对于无规律的非代数方程的求解也无精确解法 二、非线性方程组的近似解法 方程是在科学研究中不可缺少的工具 方程求解是科学计算中一个重要的研究对象 几百年前就已经找到 了代数方程中二次至 五次方程的求解公式 但是,对于更高次数 的代数方程目前仍 无有效的精确解法 对于无规律的非代数方程的求解也无精确解法 因此,研究非线性方程的数值解法成为必然 华长生制作
设非线性方程 --------(6) 简单介绍单根区间上的求解方法 华长生制作
1.根的隔离—二分法 华长生制作
依此类推 可以得到一系列的区间和中点 华长生制作
理论上 构造简单 收敛速度很慢 就可以达到满意的精度 Shiyan61.m 二分法 华长生制作
称(8)式为求解非线性方程(7)的简单迭代法 2.迭代法 将非线性方程(6) 化为 --------(7) 继续 --------(8) 称(8)式为求解非线性方程(7)的简单迭代法 华长生制作
--------(9) 则称迭代法(8)收敛,否则称为发散 如果将(7)式表示为 与方程(7)同解 收敛 华长生制作
发散 例1. 解: (1) 如果将原方程化为等价方程 华长生制作
显然迭代法发散 (2) 如果将原方程化为等价方程 仍取初值 华长生制作
依此类推,得 同样的方程 不同的迭代格式 有不同的结果 与迭代函数的构造有关 已经收敛,故原方程的解为 什么形式的迭代法 能够收敛呢? x2 = 0.9644 x3 = 0.9940 x4 = 0.9990 x5 = 0.9998 x6 = 1.0000 x7 = 1.0000 同样的方程 不同的迭代格式 有不同的结果 与迭代函数的构造有关 已经收敛,故原方程的解为 什么形式的迭代法 能够收敛呢? 华长生制作
经过分析可知 --------(10) 且 --------(11) --------(12) 华长生制作
3.Newton迭代法 如果将非线性方程 化为等价方程 令 如果 令 即 则 华长生制作
于是取 --------(13) --------(14) (14)式称为Newton迭代法 华长生制作
Newton迭代法, 需要求每个迭代点处的导数 复杂! 这种格式称为简化Newton迭代法 --------(15) 华长生制作
这种格式称为弦截法或割线法 --------(16) 几何意义 华长生制作
因此在使用MATLAB时需编写两个函数文件 对于Newton迭代法 涉及到两个函数 因此在使用MATLAB时需编写两个函数文件 原函数文件Fun.m和导数文件dfun.m 然后使用Newton迭代法 华长生制作
注意:此程序也适用于非线性方程组的求解 [x,k]=newtonddf('fun','dfun',x0,EPS) %newtonddf.m function [x,k]=newtonddf(fun,dfun,x0,EPS) if nargin<4,EPS=1e-4;end x1=x0-feval(dfun,x0)\feval(fun,x0); k=1; while (norm(x1-x0)>=EPS)&(k<=1000) x0=x1; k=k+1; end x=x1; 注意:此程序也适用于非线性方程组的求解 华长生制作
四、迭代法的应用 回到疾病的传播模型 解方程 先编写函数和导函数文件 ill.m function y=ill(x) a=1;b=0.3;x0=0.98;y0=1-x0; sigma=a/b; y=log(x/x0)/sigma-x+x0+y0; dill.m function y=dill(x) a=1;b=0.3; sigma=a/b; y=[1/(x*sigma)-1]; 华长生制作
说明最终只有约4%的 没有被感染 若改变相关参数 说明最终有约81.22%的 没有被感染 [x,k]=newtonddf('ill','dill',0.01) x = 0.0399 k = 5 [x,k]=newtonddf('ill','dill',0.09) x = 0.0399 k = 6 说明最终只有约4%的 没有被感染 [x,k]=newtonddf('ill','dill',0.01) x = 0.8122 k = 9 若改变相关参数 说明最终有约81.22%的 没有被感染 华长生制作
隔离病人可使日接触率降低,从而防止疾病的蔓延 日治愈率提高 日接触率减少 隔离病人可使日接触率降低,从而防止疾病的蔓延 日治愈率提高 医疗条件的改善可使日治愈率提高,被感染人数减少 若再改变参数 [x,k]=newtonddf('ill','dill',0.01) x = 0.65776040482917 k = 8 接种疫苗可以使初始 易感染人数降低 最后仍有65.77%的人没有被感染 华长生制作
比较以下不同情形下的未感染人数比例 结果发现 为什么? 另外有28%的人 具有免疫能力 由于 实际上未感染比例更高 x0=0.98 y0=0.02 a=1 b=0.3 x = 0.0399 a=0.5 b=0.3 x = 0.3106 a=0.5 b=0.5 x = 0.8122 结果发现 升高 为什么? 升高 x0=0.70 y0=0.02 a=1 b=0.3 x = 0.0840 a=0.5 b=0.3 x = 0.4362 a=0.5 b=0.5 x = 0.6578 另外有28%的人 具有免疫能力 降低 由于 实际上未感染比例更高 华长生制作
起点 局部放大图 华长生制作
实验内容 1. 用MATLAB软件掌握求解非线性 方程的迭代法和Newton迭代法,并对 结果作初步分析; 目的 实验内容 1. 用MATLAB软件掌握求解非线性 方程的迭代法和Newton迭代法,并对 结果作初步分析; 2.通过实例学习用非线性方程解决实 际问题. 内容 《数学实验》第172页. 4.2实验内容 1) ; 7) 华长生制作