二阶椭圆偏微分方程实例求解附matlab代码

二阶椭圆偏微分方程实例求解附matlab代码

ID:47056314

大小:230.38 KB

页数:19页

时间:2019-07-11

二阶椭圆偏微分方程实例求解附matlab代码_第1页
二阶椭圆偏微分方程实例求解附matlab代码_第2页
二阶椭圆偏微分方程实例求解附matlab代码_第3页
二阶椭圆偏微分方程实例求解附matlab代码_第4页
二阶椭圆偏微分方程实例求解附matlab代码_第5页
资源描述:

《二阶椭圆偏微分方程实例求解附matlab代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文档《微分方程数值解法》期中作业实验报告二阶椭圆偏微分方程第一边值问题姓名:学号:班级:实用文案标准文档2013年11月19日实用文案标准文档二阶椭圆偏微分方程第一边值问题摘要对于解二阶椭圆偏微分方程第一边值问题,课本上已经给出了相应的差分方程。而留给我的难题就是把差分方程组表示成系数矩阵的形式,以及对系数进行赋值。解决完这个问题之后,我在利用matlab解线性方程组时,又出现“outofmemory”的问题。因为99*99阶的矩阵太大,超出了分配给matlab的使用内存。退而求其次,当n=10

2、,h=1/10或n=70,h=1/70时,我都得出了很好的计算结果。然而在解线性方程组时,无论是LU分解法或高斯消去法,还是gauseidel迭代法,都能达到很高的精度。关键字:二阶椭圆偏微分方程差分方程outofmemoryLU分解高斯消去法gauseidel迭代法一、题目重述解微分方程:已知边界:求数值解,把区域分成,n=100注:老师你给的题F好像写错了,应该把改成。二、问题分析与模型建立2.1微分方程上的符号说明实用文案标准文档Ax,y=eyBx,y=exCx,y=x+yDx,y=x-yEx

3、,y=1Fx,y=2.2课本上差分方程的缺陷课本上的差分方程为:aijuij-ai-1,jui-1,j+ai,j-1ui,j-1+ai+1,jui+1,j+ai,j+1ui,j+1=Fijai-1,j=h-2Ai-1/2,j+hCij2ai,j-1=h-2Bi,j-1/2+hDij2ai+1,j=h-2Ai+1/2,j-hCij2ai,j+1=h-2Bi,j+1/2-hDij2aij=h-2Ai+1/2,j+Ai-1/2,j+Bi,j-1/2+Bi,j+1/2+Eij举一个例子:当i=2,j=3时,

4、aij=a23;当i=3,j=3时,ai-1,j=a23。但是,显然这两个a23不是同一个数,其大小也不相等。2.3差分方程的重新定义因此,为了避免2.2中赋值重复而产生的错误,我在利用matlab编程时,对这些系数变量进行了重新定义:bij=aij,cij=ai,j+1,dij=ai,j-1,gij=ai+1,j,kij=ai-1,j.2.4模型建立这里的模型建立就是把差分方程组改写成系数矩阵的形式。经过研究,我觉得写成如下的系数矩阵不仅看起来简单明了,而且在matlab编程时比较方便。系数矩阵为

5、:Pu=f实用文案标准文档其中P是(n-1)2阶方阵,具体如下:b11c110d12b12⋱0⋱⋱00⋱c1,n-2d1,n-1b1,n-1g11g12g13⋱g1,n-1k21k22k2,3⋱k2,n-1b21c210d22b22⋱0⋱⋱00⋱c2,n-2d1,n-1b2,n-100⋱gn-2,1gn-2,2gn-23⋱gn-2,,n-1kn-1,1kn-1,2kn-1,3⋱kn-1,n-1bn-1,1cn-1,10dn-1,2bn-1,2⋱0⋱⋱00⋱cn-1,n-2dn-1,n-1bn-1,n

6、-1而u是(n-1)2维的列向量,具体如下:u=u11u12⋮u1,n-1u21⋮⋮un-1,n-1而f是(n-1)2维的列向量,具体如下:f=f11f12⋮f1,n-1f21⋮⋮fn-1,n-1三、求解过程实用文案标准文档3.1对系数矩阵的分析对上述模型的求解就是对线性方程组的求解。通过观察,我发现P是一个对角占优的矩阵,这不仅确定了解的唯一性,还保证了迭代法的收敛性。此外,还可以确定进行LU分解,若使用高斯消去法还可以省去选主元的工作。3.2matlab编程因为矩阵阶数过大,所以此题的编程难点为

7、构造系数矩阵,即对线性方程组的赋值。我采用的方法是分块赋值。对于P的赋值,过程如下:第一步:bcdi=bi1-ci10-di2bi2⋱0⋱⋱00⋱-ci,n-2-di,n-1bi,n-1,gi=gi1gi2⋮gi,n-1,ki=ki1ki2⋮ki,n-1第二步:BCD=bcd1bcd200⋱bcdi,G=g1g2⋮gn-2,K=k2k3⋮kn-1第三步:P=BCD-diag(G,99)-diag(K,99).P和f的具体构造见附录6.1主代码3.3编程求解过程中的问题3.3.1问题产生实用文案标准文

8、档当按照老师要求,n=100,h=1/100时,运行编好的matlab程序时,会出现如图3.1的错误提示。图3.13.3.2问题分析在matlab的命令窗口输入“memory”,出现如图3.2的内存使用情况,可以得出:MemoryusedbyMATLAB:454MB(4.760e+008bytes)。,若不用稀疏矩阵定义P,经过粗略计算,我发现矩阵P就要占800MB左右的内存,加上其他数据,内存消耗至少在1G以上。但是我电脑上分配给matlab的内存只有:454MB,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。