微分方程的matlab求解(数学建模)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0.8
1.2493 1.2475 1.2511
0.9
1.3066 1.3047 1.3084
1
1.3679 1.3660 1.3697
结论:显然迭代步长h 的选取对精度有影响。 11
上一页 下一页
主页
图形显示
1.4
Z
1.3
1.2
有什么方
法可以使精度
1.1
提高?
1
0
向后欧拉法
x+exp(-x)
数学实验
主页
返回
使用改进欧拉公式的例
数学实验
步长 h= 0.1 的数值解比较表
x
精确解 向前欧拉 向后欧拉 改进欧拉
0
1
1
1
1
0.1
1.0048
1
1.0091
1.005
0.2
1.0187
1.01
1.0264
1.019
0.3
1.0408
1.029
1.0513 1.0412
0.4
1.0703 1.0561 1.0830 1.0708
初始条件:y(x0) = y0
2、一阶微分方程组的一般形式:
dy1
dx
f1(x,
y1(x), y2(x),
, ym(x));
dym dx
fm(x, y1(x), y2(x), , ym(x));
2
上一页 下一页
主页
数学实验
微分方程求解方法简介
①简单 的微分
① 解析解 y = f(t) •欧拉方法
② 非线性方程, 称‘隐式公式’。
方法:迭代( y’= f (x, y) )
x=[];y=[]; x(1)=x0; y(1)=y0; for n=1:k
x(n+1)=x(n)+n*h;
y(n+1) = y(n) + h *f(x(n), y(n)); (向前)
end
6
上一页 下一页
主页
1、欧拉方法
0.6
1.1488 1.1314 1.1645
0.7
1.1966 1.1783 1.2132
0.8
1.2493 1.2305 1.2665
0.9
1.3066 1.2874 1.3241
1
1.3679 1.3487 1.3855
10
上一页 下一页
主页
(2)步长h=0.01的数值解比较表
数学实验
x
精确解 向前欧拉 向后欧拉
0.5
1.1065 1.0905 1.1209 1.1071
0.6
1.1488 1.1314 1.1645 1.1494
0.7
1.1966 1.1783 1.2132 1.1972
微分方程模型
数学实验
定义:含有导数的方程称为微分方程。如 f(x, y(x), y’(x))=0
1、微分方程的一般形式:
F(x, y, y’,…,y(n) ) = 0 隐式

y(n) = f (x, y, y’,…,y (n-1) ) 显式
1
上一页 下一页
主页
微分方程模型
数学实验
特殊情形:
dy f (t, y) dt
数学实验
例 1 y'yx1,y(0)1,h0.1 其f中 (x,y)yx1
观察向前欧拉、向后欧拉算法计算 情况。与精确解进行比较。误差有多大?
解:1) 解析解: y = x + e-x
7
上一页 下一页
主页
1、欧拉方法
数学实验
y’ = f(x,y) = -y + x +1; 2) 向前欧拉法:
yn+1 = yn + h(-yn + xn+ 1) = (1-h) yn + h xn+ h
xn = xn-1+ h,(n=1,2,…)。
4
上一页 下一页
主页
1、欧拉方法
数学实验
在小区间[xn, xn+1]上用差商代替微商(近似),
y(xn1)y(xn)y' h
1) 向前欧拉公式: (y’= f (x, y) )
y (xn+1) y(xn) + h f(xn, y(xn)) (迭代式)
方程。
② 数值解 (ti, yi) • 梯形法
②复杂、
y •改进欧拉方法
大型的 ③ 图形解
•龙格-库塔法
微分方
程。
o
t
3
上一页 下一页
主页
返回
微分方程数值解百度文库
数学实验
1、欧拉法 2、龙格—库塔法
dyf(x,y), dx
y(x0)y0
数值求解思想:(变量离散化)
引入自变量点列{xn} → {yn},
在x0x1x2…xn…上求y(xn)的近似 值yn.通常取等步长 h,即xn = x0+ n×h,或
3)向后欧拉法:
yn+1 = yn + h(- yn +1+xn +1+1)
转化 yn+1 = (yn + h xn+1+ h )/(1+h) 8
上一页 下一页
主页
1、欧拉方法
数学实验
x1(1)=0;y1(1)=1;y2(1)=1;h=0.1;(died.m)
for k=1:10
x1(k+1)=x1(k)+h;
9
上一页 下一页
主页
数学实验
计算结果 (1)步长h=0.1的数值解比较表
x
精确解 向前欧拉 向后欧拉
0
1
1
1
0.1
1.0048
1
1.0091
0.2
1.0187
1.01
1.0264
0.3
1.0408 1.029 1.0513
0.4
1.0703 1.0561 1.0830
0.5
1.1065 1.0905 1.1209
0.5
1
x
12
上一页 下一页
主页
返回
数学实验
梯形公式
yn1ynh 2[f(xn,yn)f(xn1,yn1)]
n0,1,2,...
yn + hf(xn,yn)
改进欧拉公式
y
n
1
yn
h 2
(k1
k2)
k1 f (xn , yn )
k
2
f ( x n 1 , y n hk 1 )
13
上一页 下一页
y1(k+1)=(1-h)*y1(k)+h*x1(k)+h;
y2(k+1)=(y2(k)+h*x1(k+1)+h)/(1+h);
end
x1,y1,y2,(y1——向前欧拉解,y2——向后欧拉解)
x=0:0.1:1;
y=x+exp(-x)(解析解)
plot(x,y,x1,y1,'k:',x1,y2,'r--')
yn+1 yn + h f(xn, yn) (近似式)
特点:f(x,y)取值于区间[xn, xn+1]的左端点.
5
上一页 下一页
主页
1、欧拉方法
数学实验
2) 向后欧拉公式
yn+1 = yn + h f(xn, yn)
yn+1 yn + h f(xn +1, yn +1) 特点:① f(x,y)取值于区间[xn, xn+1]的右端点.
0
1
1
1
0.1
1.0048 1.0044 1.0053
0.2
1.0187 1.0179 1.0195
0.3
1.0408 1.0397 1.0419
0.4
1.0703 1.0690 1.0717
0.5
1.1065 1.1050 1.1080
0.6
1.1488 1.1472 1.1504
0.7
1.1966 1.1948 1.1983
相关文档
最新文档