二维椭圆边值问题的差分格式.docx
《二维椭圆边值问题的差分格式.docx》由会员分享,可在线阅读,更多相关《二维椭圆边值问题的差分格式.docx(31页珍藏版)》请在冰豆网上搜索。
二维椭圆边值问题的差分格式
二维椭圆边值问题的差分格式
一.问题介绍
考虑Poisson方程:
(1)
G是xy平面上一有界区域,其边界
为分段光滑曲线。
在
上u满足下列边值条件之一:
(2)
(第一边值条件),
(3)
(第二边值条件),
(4)
(第三边值条件),
及
都是连续函数,k
。
本节讨论逼近方程
(1)及相应边值条件的差分格式。
二.区域剖分
取定沿x轴和y轴方向的步长
和
,
。
作两族与坐标轴平行的直线:
两族直线的交点
称为网点或节点,记为
或(i,j)。
说两个节点
和
是相邻的,如果
或
。
以
表示所有属于G内部的节点集合,并称如此的节点为内点。
以
表示网线
或
与
的交点集合,并称如此的点为界点。
令
,则
就是代替域
的网点集合。
若内点
的四个相邻点都属于
,就称为正则内点;否则称为非正则内点。
三.离散格式
1.五点差分格式
假定
为正则内点。
沿x,y方向分别用二阶中心差商代替
和
,则有差分方程:
[
+
]=
,
式中
表示节点(i,j)上的函数值。
2.九点差分格式
利用Taylor展式,将
和
在
处展开,然后相加化简就得到逼近Poisson方程的九点差分格式:
四.格式稳定性
1.五点差分格式的收敛阶为
2.九点差分格式的收敛阶为
五.数值例子
例1令u(x,y)=sin(
x)sin(
y),区间[0,1]。
程序结果如下:
输入划分区间的点数n(输入0结束程序):
5
输入划分区间的点数m(输入0结束程序):
5
xiyj准确值u(x,y)近似值u[i][j]误差err[i]
0.1666670.1666670.2500000.2557910.005791
0.1666670.3333330.4330130.4430430.010030
0.1666670.5000000.5000000.5115810.011581
0.1666670.6666670.4330130.4430430.010030
0.1666670.8333330.2500000.2557910.005791
0.3333330.1666670.4330130.4430430.010030
0.3333330.3333330.7500000.7673720.017372
0.3333330.5000000.8660250.8860850.020060
0.3333330.6666670.7500000.7673720.017372
0.3333330.8333330.4330130.4430430.010030
0.5000000.1666670.5000000.5115810.011581
0.5000000.3333330.8660250.8860850.020060
0.5000000.5000001.0000001.0231630.023163
0.5000000.6666670.8660250.8860850.020060
0.5000000.8333330.5000000.5115810.011581
0.6666670.1666670.4330130.4430430.010030
0.6666670.3333330.7500000.7673720.017372
0.6666670.5000000.8660250.8860850.020060
0.6666670.6666670.7500000.7673720.017372
0.6666670.8333330.4330130.4430430.010030
0.8333330.1666670.2500000.2557910.005791
0.8333330.3333330.4330130.4430430.010030
0.8333330.5000000.5000000.5115810.011581
0.8333330.6666670.4330130.4430430.010030
0.8333330.8333330.2500000.2557910.005791
误差与步长的2-范数e[0]:
0.000805
n为5和m为5时其最大误差:
0.023163
输入划分区间的点数n(输入0结束程序):
10
输入划分区间的点数m(输入0结束程序):
10
xiyj准确值u(x,y)近似值u[i][j]误差err[i]
0.0909090.0909090.0793730.0799150.000542
0.0909090.1818180.1523160.1533560.001040
0.0909090.2727270.2129190.2143720.001453
0.0909090.3636360.2562730.2580220.001749
0.0909090.4545450.2788650.2807680.001903
0.0909090.5454550.2788650.2807680.001903
0.0909090.6363640.2562730.2580220.001749
0.0909090.7272730.2129190.2143720.001453
0.0909090.8181820.1523160.1533560.001040
0.0909090.9090910.0793730.0799150.000542
0.1818180.0909090.1523160.1533560.001040
0.1818180.1818180.2922920.2942870.001995
0.1818180.2727270.4085890.4113780.002789
0.1818180.3636360.4917840.4951410.003356
0.1818180.4545450.5351380.5387900.003652
0.1818180.5454550.5351380.5387900.003652
0.1818180.6363640.4917840.4951410.003356
0.1818180.7272730.4085890.4113780.002789
0.1818180.8181820.2922930.2942870.001995
0.1818180.9090910.1523160.1533560.001040
0.2727270.0909090.2129190.2143720.001453
0.2727270.1818180.4085890.4113780.002789
0.2727270.2727270.5711570.5750560.003898
0.2727270.3636360.6874540.6921460.004692
0.2727270.4545450.7480570.7531630.005106
0.2727270.5454550.7480570.7531630.005106
0.2727270.6363640.6874540.6921460.004692
0.2727270.7272730.5711570.5750560.003898
0.2727270.8181820.4085890.4113780.002789
0.2727270.9090910.2129190.2143720.001453
0.3636360.0909090.2562730.2580220.001749
0.3636360.1818180.4917840.4951410.003356
0.3636360.2727270.6874540.6921460.004692
0.3636360.3636360.8274300.8330780.005647
0.3636360.4545450.9003730.9065180.006145
0.3636360.5454550.9003730.9065180.006145
0.3636360.6363640.8274300.8330780.005647
0.3636360.7272730.6874540.6921460.004692
0.3636360.8181820.4917840.4951410.003356
0.3636360.9090910.2562730.2580220.001749
0.4545450.0909090.2788650.2807680.001903
0.4545450.1818180.5351380.5387900.003652
0.4545450.2727270.7480570.7531630.005106
0.4545450.3636360.9003730.9065180.006145
0.4545450.4545450.9797460.9864330.006687
0.4545450.5454550.9797460.9864330.006687
0.4545450.6363640.9003730.9065180.006145
0.4545450.7272730.7480570.7531630.005106
0.4545450.8181820.5351380.5387900.003652
0.4545450.9090910.2788650.2807680.001903
0.5454550.0909090.2788650.2807680.001903
0.5454550.1818180.5351380.5387900.003652
0.5454550.2727270.7480570.7531630.005106
0.5454550.3636360.9003730.9065180.006145
0.5454550.4545450.9797460.9864330.006687
0.5454550.5454550.9797460.9864330.006687
0.5454550.6363640.9003730.9065180.006145
0.5454550.7272730.7480570.7531630.005106
0.5454550.8181820.5351380.5387900.003652
0.5454550.9090910.2788650.2807680.001903
0.6363640.0909090.2562730.2580220.001749
0.6363640.1818180.4917840.4951410.003356
0.6363640.2727270.6874540.6921460.004692
0.6363640.3636360.8274300.8330780.005647
0.6363640.4545450.9003730.9065180.006145
0.6363640.5454550.9003730.9065180.006145
0.6363640.6363640.8274300.8330780.005647
0.6363640.7272730.6874540.6921460.004692
0.6363640.8181820.4917840.4951410.003356
0.6363640.9090910.2562730.2580220.001749
0.7272730.0909090.2129190.2143720.001453
0.7272730.1818180.4085890.4113780.002789
0.7272730.2727270.5711570.5750560.003898
0.7272730.3636360.6874540.6921460.004692
0.7272730.4545450.7480570.7531630.005106
0.7272730.5454550.7480570.7531630.005106
0.7272730.6363640.6874540.6921460.004692
0.7272730.7272730.5711570.5750560.003898
0.7272730.8181820.4085890.4113780.002789
0.7272730.9090910.2129190.2143720.001453
0.8181820.0909090.1523160.1533560.001040
0.8181820.1818180.2922930.2942870.001995
0.8181820.2727270.4085890.4113780.002789
0.8181820.3636360.4917840.4951410.003356
0.8181820.4545450.5351380.5387900.003652
0.8181820.5454550.5351380.5387900.003652
0.8181820.6363640.4917840.4951410.003356
0.8181820.7272730.4085890.4113780.002789
0.8181820.8181820.2922930.2942870.001995
0.8181820.9090910.1523160.1533560.001040
0.9090910.0909090.0793730.0799150.000542
0.9090910.1818180.1523160.1533560.001040
0.9090910.2727270.2129190.2143720.001453
0.9090910.3636360.2562730.2580220.001749
0.9090910.4545450.2788650.2807680.001903
0.9090910.5454550.2788650.2807680.001903
0.9090910.6363640.2562730.2580220.001749
0.9090910.7272730.2129190.2143720.001453
0.9090910.8181820.1523160.1533560.001040
0.9090910.9090910.0793730.0799150.000542
误差与步长的2-范数e[1]:
0.000128
那么log(e[1]/e[0])的值是:
1.837767
n为10和m为10时其最大误差:
0.006687
以上数值结果是通过五点差分格式用C++工具求得的;
下面采用九点差分格式用C++工具求数值结果。
输入划分区间的点数n(输入0结束程序):
5
输入划分区间的点数m(输入0结束程序):
5
xiyj准确值u(x,y)近似值u[i][j]误差err[i]
0.1666670.1666670.2500000.2496780.000322
0.1666670.3333330.4330130.4324550.000558
0.1666670.5000000.5000000.4993560.000644
0.1666670.6666670.4330130.4324550.000558
0.1666670.8333330.2500000.2496780.000322
0.3333330.1666670.4330130.4324550.000558
0.3333330.3333330.7500000.7490340.000966
0.3333330.5000000.8660250.8649100.001115
0.3333330.6666670.7500000.7490340.000966
0.3333330.8333330.4330130.4324550.000558
0.5000000.1666670.5000000.4993560.000644
0.5000000.3333330.8660250.8649100.001115
0.5000000.5000001.0000000.9987120.001288
0.5000000.6666670.8660250.8649100.001115
0.5000000.8333330.5000000.4993560.000644
0.6666670.1666670.4330130.4324550.000558
0.6666670.3333330.7500000.7490340.000966
0.6666670.5000000.8660250.8649100.001115
0.6666670.6666670.7500000.7490340.000966
0.6666670.8333330.4330130.4324550.000558
0.8333330.1666670.2500000.2496780.000322
0.8333330.3333330.4330130.4324550.000558
0.8333330.5000000.5000000.4993560.000644
0.8333330.6666670.4330130.4324550.000558
0.8333330.8333330.2500000.2496780.000322
误差与步长的2-范数e[0]:
0.000002
n为5和m为5时其最大误差:
0.001288
输入划分区间的点数n(输入0结束程序):
10
输入划分区间的点数m(输入0结束程序):
10
xiyj准确值u(x,y)近似值u[i][j]误差err[i]
0.0909090.0909090.0793730.0793640.000009
0.0909090.1818180.1523160.1522990.000017
0.0909090.2727270.2129190.2128950.000024
0.0909090.3636360.2562730.2562440.000029
0.0909090.4545450.2788650.2788340.000031
0.0909090.5454550.2788650.2788340.000031
0.0909090.6363640.2562730.2562440.000029
0.0909090.7272730.2129190.2128950.000024
0.0909090.8181820.1523160.1522990.000017
0.0909090.9090910.0793730.0793640.000009
0.1818180.0909090.1523160.1522990.000017
0.1818180.1818180.2922920.2922600.000033
0.1818180.2727270.4085890.4085430.000046
0.1818180.3636360.4917840.4917290.000055
0.1818180.4545450.5351380.5350780.000060
0.1818180.5454550.5351380.5350780.000060
0.1818180.6363640.4917840.4917290.000055
0.1818180.7272730.4085890.4085430.000046
0.1818180.8181820.2922930.2922600.000033
0.1818180.9090910.1523160.1522990.000017
0.2727270.0909090.2129190.2128950.000024
0.2727270.1818180.4085890.4085430.000046
0.2727270.2727270.5711570.5710940.000064
0.2727270.3636360.6874540.6873770.000077
0.2727270.4545450.7480570.7479730.000084
0.2727270.5454550.7480570.7479730.000084
0.2727270.6363640.6874540.6873770.000077
0.2727270.7272730.5711570.5710940.000064
0.2727270.8181820.4085890.4085430.000046
0.2727270.9090910.2129190.2128950.000024
0.3636360.0909090.2562730.2562440.000029
0.3636360.1818180.4917840.4917290.000055
0.3636360.2727270.6874540.6873770.000077
0.3636360.3636360.8274300.8273380.000093
0.3636360.4545450.9003730.9002730.000101
0.3636360.5454550.9003730.9002730.000101
0.3636360.6363640.8274300.8273380.000093
0.3636360.7272730.6874540.6873770.000077
0.3636360.8181820.4917840.4917290.000055
0.3636360.