内容发布更新时间 : 2024/12/22 19:28:39星期一 下面是文章的全部内容请认真阅读。
2008信息与计算科学专业计算方法习题参考解答 江世宏编
第六章 常微分方程数值解
姓名 学号 班级
习题主要考察点:欧拉方法的构造,单步法的收敛性和稳定性的讨论,线性多步法中亚当姆斯方法的构造和讨论。
1 用改进的欧拉公式,求以下微分方程
2x???y?y?y??y(0)?1?x?[0,1]
的数值解(取步长h?0.2),并与精确解作比较。(改进的尤拉公式的应用)
dzy2?2z??2x 解:原方程可转化为 yy??y?2x,令z?,有dx22解此一阶线性微分方程,可得 y?利用以下公式
2x?1。
2xi?y?y?0.2?(y?)ii?pyi??2xi)(i?0,1,2,3,4)?yc?yi?0.2?(yp? yp??1?yi?1?(yp?yc)2?求在节点xi?0.2?i(i?1,2,3,4,5)处的数值解yi,其中,初值为x0?0,y0?1。
MATLAB程序如下:
x(1)=0;%初值节点 y(1)=1;%初值
fprintf('x(%d)=%f,y(%d)=%f,yy(%d)=%f\\n',1,x(1),1,y(1),1,y(1)); for i=1:5
yp=y(i)+0.2*(y(i)-2*x(i)/y(i));%预报值 yc=y(i)+0.2*(yp-2*x(i)/yp);%校正值 y(i+1)=(yp+yc)/2;%改进值 x(i+1)=x(i)+0.2;%节点值
yy(i+1)=sqrt(2*x(i+1)+1);%精确解
fprintf('x(%d)=%f,y(%d)=%f,yy(%d)=%f\\n',i+1,x(i+1),i+1,y(i+1),i+1,yy(i+1)); end
程序运行的结果如下:
x(1)=0.000000, y(1)=1.000000, yy(1)=1.000000 x(2)=0.200000, y(2)=1.220000, yy(2)=1.183216 x(3)=0.400000, y(3)=1.420452, yy(3)=1.341641 x(4)=0.600000, y(4)=1.615113, yy(4)=1.483240 x(5)=0.800000, y(5)=1.814224, yy(5)=1.612452 x(6)=1.000000, y(6)=2.027550, yy(6)=1.732051
25
2008信息与计算科学专业计算方法习题参考解答 江世宏编
2用四阶龙格-库塔法求解初值问题??y??y?1,取h?0.2, 求x?0.2,0.4时的数值解.
?y(0)?0要求写出由h,xn,yn直接计算yn?1的迭代公式,计算过程保留3位小数。(龙格-库塔方法的应用)
解:四阶龙格-库塔经典公式为
hyn?1?yn?(k1?2k2?2k3?k4)
6k1?f(xn,yn)
11k2?f(xn?h,yn?hk1)
2211k3?f(xn?h,yn?hk2)
22k4?f(xn?h,yn?hk3)
由于f(x,y)?1?y,在各点的斜率预报值分别为:
k1?1?yn
k2?1?(yn?hhhk1)?1?yn?(1?yn)?(1?yn)(1?) 222hhhhhk3?1?(yn?k2)?1?yn?(1?yn)(1?)?(1?yn)[1?(1?)]
22222hhhhk4?1?(yn?hk3)?1?yn?h(1?yn)[1?(1?)]?(1?yn)[1?h(1?(1?))]
2222四阶经典公式可改写成以下直接的形式:
yn?1hh32?yn?(1?yn)(6?3h?h?)
64在x?x1?0.2处,有
0.2(0.2)32y1?0?(1?0)(6?3?0.2?(0.2)?)?0.1813
64在x?x2?0.4处,有
0.2(0.2)32y2?0.1813?(1?0.1813)(6?3?0.2?(0.2)?)?0.3297
64注:这两个近似值与精确解y?1?e3 用梯形方法解初值问题
?x在这两点的精确值十分接近。
26
2008信息与计算科学专业计算方法习题参考解答 江世宏编
?y??y?0 ??y(0)?1证明其近似解为
n?2?h?yn???
?2?h?并证明当h?0时,它收敛于原初值问题的准确解y?e?x。 解:显然,y?e?x是原初值问题的准确解。 求解一般微分方程初值问题的梯形公式的形式为
hyn?1?yn?[f(xn,yn)?f(xn?1,yn?1)]
2对于该初值问题,其梯形公式的具体形式为
yn?1?yn?于是:
hhh2?h(?yn?yn?1),(1?)yn?1?(1?)yn,yn?1?()yn
2222?h)yn?12?h?2?h??2?h??()yn??y????n?1??2?h)?2?h??2?h?n2n?1?2?h?y0????2?h?n?1
?2?h?亦即:yn???
2?h??注意到:xn?0?nh?nh,n?xnhxnxn?t2xn2h111,令t??,???有
2?hht2h2h??yn??1???2?h??(1?t)?xnt??(1?t)?xn2?xnt(1?t)?xn2
从而 limyn?lim(1?t)h?0t?0?lim(1?t)t?0?e?xn
?xn即:当h?0时,yn收敛于原初值问题的准确解y(xn)?e。
?y???10y4对于初值问题?,证明当h?0.2时,欧拉公式绝对稳定。(显式和隐式欧拉公
?y(0)?1式的稳定性讨论)
证明:显式的欧拉公式为yn?1?yn?hf(xn,yn)?(1?10h)yn
从而en?1?(1?10h)en,由于0?h?0.2,?1?1?10h?1,en?1?en
27
2008信息与计算科学专业计算方法习题参考解答 江世宏编
因此,显式欧拉公式绝对稳定。
隐式的欧拉公式为yn?1?yn?hf(xn?1,yn?1)?yn?10hyn?1
yn?1?ynen,en?1?
1?10h1?10h1?1,en?1?en
1?10h由于0?h,0?因此,隐式的欧拉公式也是绝对稳定的。 5证明:梯形公式yn?1?yn?性讨论)
解:对于微分方程初值问题
h[f(xn,yn)?f(xn?1,yn?1)]无条件稳定。(梯形公式的稳定2?y?????y(??0) ??y(0)?1其隐式的梯形公式的具体形式可表示为
2??hh?h?h)yn yn?1?yn?[??yn??yn?1],(1?)yn?1?(1?)yn,yn?1?(2??h2222??h)en 从而en?1?(2??h2??h)?en?en,故隐式的梯形公式无条件稳定。 由h?0,??0可知,en?1?(2??h?y??f(x,y)6设有常微分方程的初值问题?,试用泰勒展开法,构造线性两步法数值计算
y(x)?y00?公式yn?1??(yn?yn?1)?h(?0fn??1fn?1),使其具有二阶精度,并推导其局部截断误差主项。(局部截断误差和主项的计算)
解:假设yn?y(xn),yn?1?y(xn?1),利用泰勒展式,有
yn?1?y(xn?1)?y(xn)?y?(xn)h?y??(xn)2y???(xn)3h?h?? 26fn?f(xn,yn)?f(xn,y(xn))?y?(xn)
fn?1?f(xn?1,yn?1)?f(xn?1,y(xn?1))?y?(xn?1)?y?(xn)?y??(xn)h?y???(xn)2h?? 2)y???(xn)h3??
yn?1?2?y(xn)?(?0??1??)y?(xn)h?(?2??1)y??(xn)h2?(?6??12 28