人人终身学习知识网~是各类综合知识资源信息分享,提升综合素质与提高知识技能的终身学习网络平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

【偏微分方程∂^2*u/∂x^2+∂^2*u/∂y^2=2(x^2+y^2)的数值解法..定解条件u(0,y)=u(x,0)=0;u(1,y)=y^2;u(x,1)=x^2;我知道精确解是u(x,y)=(xy)^2。。。但是我想知道该方程的数值解法,和迭代方法】

[复制链接]

问题:【偏微分方程∂^2*u/∂x^2+∂^2*u/∂y^2=2(x^2+y^2)的数值解法..定解条件u(0,y)=u(x,0)=0;u(1,y)=y^2;u(x,1)=x^2;我知道精确解是u(x,y)=(xy)^2。。。但是我想知道该方程的数值解法,和迭代方法】

答案:↓↓↓

网友采纳  源程序:  function[u,x,y]=Helmholtz(f,g,bx0,bxf,by0,byf,D,Mx,My,MinErr,MaxIter)  %解方程:u_xx+u_yy+g(x,y)u=f(x,y)  %自变量取值区域D=[x0,xf,y0,yf]={(x,y)|x0<=x<=xf,y0<=y<=yf}  %边界条件  %u(x0,y)=bx0(y),u(xf,y)=bxf(y)  %u(x,y0)=by0(x),u(x,yf)=byf(x)  %x轴均分为Mx段  %y轴均分为My段  %tol误差因子  %MaxIter:最大迭代次数  %[u,x,y]:方程u(x,y)在(x,y)点的函数值  x0=D(1);xf=D(2);y0=D(3);yf=D(4);  dx=(xf-x0)/Mx;x=x0+[0:Mx]*dx;%构造内点数组  dy=(yf-y0)/My;y=y0+[0:My]'*dy;  Mx1=Mx+1;My1=My+1;  %边界条件  form=1:My1   u([1Mx1],m)=[bx0(y(m))bxf(y(m))];%左右边界  end  forn=1:Mx1   u(n,[1My1])=[by0(x(n));byf(x(n))];%上下边界  end  %边界平均值作迭代初值  sum_of_bv=sum(sum([u([1Mx1],2:My)u(2:Mx,[1My1])']));  u(2:Mx,2:My)=sum_of_bv/(2*(Mx+My-2));  fori=1:Mx   forj=1:My   F(i,j)=f(x(i),y(j));G(i,j)=g(x(i),y(j));   end  end  dx2=dx*dx;dy2=dy*dy;dxy2=2*(dx2+dy2);  rx=dx2/dxy2;ry=dy2/dxy2;rxy=rx*dy2;  foritr=1:MaxIter   fori=2:Mx   forj=2:My   u(i,j)=ry*(u(i+1,j)+u(i-1,j))+rx*(u(i,j+1)+u(i,j-1))+rxy*(G(i,j)*u(i,j)-F(i,j));%迭代公式   end   end   ifitr>1&max(max(abs(u-u0)))
回复

使用道具 举报

小黑屋/人人终身学习知识网~是各类综合知识资源信息分享,提升综合素质与提高知识技能的终身学习网络平台

Powered by 5wangxiao

© 2007-2021 5wangxiao.Com Inc.

快速回复 返回顶部 返回列表