数值分析实验算法总结 - 新疆大学

更新时间:2023-05-14 09:08:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数值分析实验算法总结 - 新疆大学

自己收集整理的
错误在所难免
仅供参考交流
如有错误
请指正!谢谢
第九章 解常微分方程初值问题
1. Euler方法

在x, y平面上微分方程①的解 在曲线上一点 (x, y) 的切线斜率等于函数的值.该曲线的顶点设为p,再推进到p(),
显然两个顶点p, p的坐标有以下关系


  这就是著名的Euler公式具体公式为 (1)
  为了易于理解下面给出了一个例子;
  例1.用Euler方法解初值问题,h=0.1
  ,
解: 取步长为h=0.1 计算结果见表:

xyy(x) en =y(x)-y0.11.100000000000001.09544511501033-0.00460.21.191818181818181.18321595661992-0.00860.31.277437833714721.26491106406735-0.01250.41.358212599560291.34164078649987-0.01660.51.435132918657801.41421356237310-0.02090.61.508966253566331.48323969741913-0.02580.71.580338237655221.54919333848297-0.03110.81.649783431047711.61245154965971-0.03730.91.717779347860091.67332005306815-0.04451.01.784770832497981.73205080756888-0.0527  分析可知误差是积累的.
  下面来讨论一下 Euler方法的误差估计
先来看一下Euler方法的误差估计..这里就需要我们先介绍两个概念:.
  局部截断误差Tn+1= y(x n+1)-y(x n)-h*f()
  整体截断误差en= y(x n)-y n
所以Euler方法的局部截断误差为
y (x n)-h*f(
  =
  =
Euler方法的整体截断误差为: = y(x n)-y n
  = +h* (f ()-f ()
∣en+1∣≤∣en∣+h*L∣en∣+T=(1+ h*L)∣en∣+T
这里L是f(x,y)关于y的Lipshitz常数,T= h2/2max∣f(x)∣.于是
∣en∣≤(1+ hL)∣en-1∣+T≤(1+ hL) n∣e0∣+
  (1+(1+ hL)+(1+ hL)2+...+(1+ hL) n-1 )T
因为e0=0,于是
∣en∣≤((1+ hL)n-1)/((1+ hL)-1)T=((1+ hL)n-1)/(hL)T
 ≤(eL(b-a)-1)/(hL)T=O(h)
注意:局部截断误差和整体截断误差关系,前者是O(h2),后者是O(h)
后者是前者的n倍.这一关系是一般性的,以后的方法有这一关系出现.我们将直接引用而不给证明.
注:(以下各方法只给出了局部截断误差和整体截断误差的公式
没有提供推导过程


上机实验⑴
上机题目:贬值求一阶常微分方程的初值问题
实验目的:掌握各种Euler方法和梯形法
进过计算结果来分析四种方法的优缺点
掌握规律
分析结果

实验要求:用不同的方法来解同一个例子

① 上机前充分准备
复习有关内容
写出计算步骤
查对程序

② 用Euler 法进行运算
并分析最好的方法
再给出它的流程图

③ 实验结束后写出完整的实验报告

算法说明:①经过所给出的方程组和初值初步改变方程组

① 由以上四种方法的计算公式来逐步计算y的每个值

② 最后为了方便比较列为表最适合


数值分析实验算法总结 - 新疆大学

上机例题:例1.用Euler方法解初值问题,h=0.1
Matlab程序:
function s=Euler(f,y0,a,b,n)
f=inline(f); %定义f
h=(b-a)/n; %决定步长
y(1)=y0;x(1)=a; %腻植
for k=1:n
x(k+1)=x(1)+k*h; %以算法公式进行计算
y(k+1)=y(k)+h*f(x(k),y(k));
end
disp(sprintf(' k x(k) y(k)')); %以规定格式输出k,x(k),y(k)
for i=1:n
disp(sprintf(' %d %f %f',i,x(i+1),y(i+1))); %再刚才规定的k,x(k),y(k)下面分别输出计算结果.
End s=y(k);
运行结果:
s=Euler('y-2*x/y',1,0,1,10)
k x(k) y(k)
1 0.100000 1.100000
2 0.200000 1.191818
3 0.300000 1.277438
4 0.400000 1.358213
5 0.500000 1.435133
6 0.600000 1.508966
7 0.700000 1.580338
8 0.800000 1.649783
9 0.900000 1.717779
10 1.000000 1.784771
s =1.7178
复习思考题
1. 为什么要研究微分方程数值解?本章主要研究的是怎样一类初值问题?
2. 何谓方法的阶与局部截断误差?
3. 何谓单步法、多步法?何谓显示公式、隐式公式?四阶龙格-库塔法属于哪一类?
4. 线性多步法的优缺点是什么?
5. 预测-校正公式有何特点与优点?
6. 试述用带误差修正的四阶阿当姆斯预测-校正公式(或哈明公式)解初值问题的计算步骤

7. 一阶微分方程组与高阶方程初值问题如何求解?导出下述三阶方程初值问题的龙格-库塔公式

8. 什么叫高斯公式和高斯点?是高斯点的充要条件是什么?怎
  样求高斯点和高斯公式?高斯公式有何优点和缺点?
9. 什么叫待定系数法?怎样利用它确定数值积分公式?有什么优点和缺点?
10. 插值型求导公式是怎样形成的?其误差怎样估计?
为什么使用插值型求导
公式要注意误差分析?样条插值求导有什么优点?
??

??

??

??

 新疆大学 - 1 - 数学与系统科学院


本文来源:https://www.bwwdw.com/article/c06e.html

Top