12 2012 档案
摘要:针对于 利用matlab的PDE工具箱求解Neumann边界的Poisson方程之2 出现的问题,后面察觉是由于 对法向导数理解的误解。首先明白:Poisson方程的第二边值问题:n是外法线方向向量.例如:对于下图所示下边界时条件为 对于左边边界为 在左边边界设定的时候,前面添加一负号。 原方程在PDE工具箱中的设置上边界与下边界 sin(3*pi*x+pi/4)*sin(pi/4)(注意:此处不能为'x',后同)左边界 -3*pi*sin(2*pi*y+pi/4)*cos(pi/4)右边界 -3*pi*sin(2*pi*y+pi/4)*cos(pi/4)方程设置:13*pi*
阅读全文
摘要:对于表达式u=sin(3*pi*x+pi/4)*sin(2*pi*y+pi/4),用Matlab将其图像画出来;具体实现的代码如下:View Code [x,y]=meshgrid(0:0.025:1);u=sin(3*pi*x+pi/4).*sin(2*pi*y+pi/4);mesh(x,y,u);出来的图像为其X-Y平面图为方程为上一篇博文的方程,利用Matlab的PDE工具箱 得出的数值结果为:X-Y平面图:如果全部为第一类边界条件数值解的图像如下:其X-Y平面图(云图)为或者显示为从上面几幅图可以看出,第一类边界条件下的解与精确解吻合比较好。而第二类边界条件下的解与精确解差别很大。
阅读全文
摘要:我们求解的问题是上述问题的精确解为 u=sin(3*pi*x+pi/4)*sin(2*pi*y+pi/4);接下来用Matlab工具箱求解首先打开matlab,命令窗口处输入:pdetool将看到如下界面:显示栅格:Options->Grid选择求解区域:Draw (这个地方我们的求解区域为[0 1]X[0 1])->Rectange/square 在面板上随意拖动,双击出现的区域,输入如下数值进入边界条件设置:上边界与下边界 sin(3*pi*x+pi/4)*sin(pi/4)(注意:此处不能为'x',后同)左边界 3*pi*sin(2*pi*y+pi/4)*co
阅读全文
摘要:相关链接:http://wenku.baidu.com/view/f17e57e8856a561252d36f5e.html问题描述:求解泊松方程 -Δu=1 求解区域为单位圆盘,边界条件为在圆盘边界上u=0 下面求它的数值解,编写程序如下:%(1)问题定义 g='circleg'; %单位圆 b='circleb1'; %边界上为零条件 c=1;a=0;f=1; %(2)产生初始的三角形网格 [p,e,t]=initmesh(g); %(3)迭代直至得到误差允许范围内的合格解 error=[]; err=1; while e...
阅读全文
摘要:求解的方法:有限差分法(FDM)求解第二类边界条件的Poisson方程,其方程如下:上述的k为一常数。为了保证解的唯一性,在此令k为一个小量或者微量。上述方程的精确解为利用c/C++来实现,暂时还没有用到线性方程组求解器,只是测试系数矩阵和右端向量是否正确。代码在VS2008平台上来操作。包含以下几个文件:GMRES.hmatvec.cppmatvec.hsolpoisson.htestposmain.cpp共5个。GMRES.hView Code #include "matvec.h"void gmres(SparseMtx<double> a,Vcr<
阅读全文
摘要:E0=[2 -1/2 0 0;-1/2 4 -1/2 0;0 -1/2 4 -1/2;0 0 -1/2 4];E1=[7/2 -1/2 0 0;-1/2 8 -1/2 0;0 -1/2 8 -1/2;0 0 -1/2 8];K=[-3/2 0 0 0;0 -3 0 0;0 0 -3 0;0 0 0 -3];Z=zeros(4);EE=[E0 K Z Z Z;K 2*E0 K Z Z;Z K 2*E0 K Z;Z Z K 2*E0 K;Z Z Z K E0];mE0=[-50 25 0 0 0 0;25 -100 25 0 0 0;0 25 -100 25 0 0;0 0 25 -100 25
阅读全文
摘要:在设计算法时,必须充分注意舍入误差对计算结果的影响。对于同一个计算问题,不同的算法,由于舍入误差的积累不同,其计算结果可能大不相同,即使一个非常良态的问题,由于使用的方法不当,也可使计算结果完全失真,而变得毫无用处。【例】考虑线性方程组Ax=b,其中 A=[1e-11 1;1+1e-11 1];b=[1 2]容易验证这是一个十分良态的矩阵计算问题 现在假设我们是在十位十进制浮点数下求解这一方程组。若按自然顺序有第二个方程减去第一个方程两边乘以1e11消去x1来求解,则得x1=0,x2=1;而若用第一个方程减去第二个方程消去x2来求解,则得x1=1,x2=1,这个与方程的精确解x1=1,x2=.
阅读全文
摘要:参考文献:MATLAB函数库查询辞典 徐东艳 孟晓刚编著[函数描述]X=gmres(A,b)视图求解线性方程组A*x=b的解x。nXn的稀疏矩阵A必须是方程且应是大型稀疏矩阵。列向量b的长度必须为n。参数A可以是一个函数afun以使得afun(x)返回A*x,对于这一语法格式,gmres并不重新启动,迭代的最大次数为min(n,10)。 如果gmres收敛,则显示这一结果的信息。如果gmres在最大迭代步后没有收敛或者由于某种原因而停止,则打印警告信息,显示相对残差范数norm(b-A*x)/norm(b)并且显示该方法停止或者失效时的迭代步数。Gmres(A,b,restart)在每一次重新
阅读全文

浙公网安备 33010602011771号