当前位置:首页 > 偏微分中心差分格式实验报告(含matlab程序)
二阶常微分方程的中心差分求解
学校:中国石油大学(华东)理学院 姓名:张道德
一、 实验目的
1、 构造二阶常微分边值问题:
?d2u?Lu??2?qu?f,a?x?bdx?
??u(a)??,u(b)??,其中q,f为[a,b]上的连续函数,q?0;?,?为给定常数的中心差分格式;
2、 根据中心差分格式求解出特定例题的数值解,并与该
例题的精确解进行比较。
二、 中心差分格式的构造
将区间[a,b]分成N等分,分点为: xi?a?ihi?0,1,2,?,N
h?(b?a)/N。于是我们得到区间的一个网络剖分。称为网
格的节点称为步长。 得中心差分格式为:
ui?1?2ui?ui?1?Lu???qu?hiii?fi,i?1,2,?,N?1,2h?
??u0??,uN??.其中式中qi?q(xi),fi?f(xi)。
三、 差分格式求解
根据中心差分格式可以构造出:
1?20??h2?q1?h2?21??1?q??222?h2hh?12?0?2?q3?2?hh??00????100???h2???u1??f1?0??????????u2??f2?0??????????????u3???f3??????????1???2???????h??????????2?qN?1????f?2uh??N?1??N?1?
可以看出系数矩阵为三对角矩阵,而对于系数矩阵为三对角矩阵的方程组可以用“追赶法”求解,则可以得出二阶常微分方程问题的数值解。 四、 举例求解
我们选取的二阶常微分方程边值问题为:
?d2u2x2?Lu??2?4xu??2e,0?x?1dx?
??u(0)?1,u(1)?e, 其精确解为:u?ex2。则我们具体求解出的解如下:
1、 当N?10时,数值解与精确解为: (1) 表1、N?10时,数值解与精确解统计表
x的值 u的数值解 u的精确解 两者之差 x的值 u的数值解 u的精确解 两者之差
0.1
1.011069 1.01005 0.001019 0.6
1.437443 1.433329 0.004114
0.2
1.042744 1.040811 0.001934 0.7
1.636363 1.632316 0.004046
0.3
1.096904 1.094174 0.002729 0.8
1.900001 1.896481 0.00352
0.4
1.176896 1.173511 0.003385 0.9
2.250209 2.247908 0.002301
0.5 1.28789 1.284025 0.003864
将两者绘于同一图中如下:
图1、N=10时,数值解与精确解图像2.5数值解精确解 u的数值解与精确解21.51 0.10.20.30.40.5x的值0.60.70.80.9
(2)结论:可以看出数值解与精确解之间的误差很小, 在 10?2这样一个数量级上。我们也可以求出的
|数值解-精确解|范数 来,如下:
Norm1(|数值解-精确解|)=0.0269; Norm2(|数值解-精确解|)=0.0095; Normoo(|数值解-精确解|)=0.0041;
所以,可以得出中心差分格式求解该方程效果挺好。 2、当N?20时,将数值解与精确解绘于同一图像中,如下:
图2、当N=100时,u的数值解与精确解2.82.62.4数值解精确解 u的数值解与精确解2.221.81.61.41.21 00.10.20.30.40.5x的值0.60.70.80.91
(2)结论:可以看出数值解与精确解之间的误差很小,
?4在 10这样一个数量级上。我们也可以求出的
|数值解-精确解|范数 来,如下:
Norm1(|数值解-精确解|)=0.0027; Norm2(|数值解-精确解|)=3.0188?10; Normoo(|数值解-精确解|)=4.1669?10?5;
所以,可以得出中心差分格式求解该方程效果挺好。 五、 程序 程序1
?4
共分享92篇相关文档