matlab编程解Laplace偏微分方程(五点差分法)

更新时间:2023-06-08 22:30:42 阅读: 评论:0

function爱国的名言警句 u=Laplace(D1,bx0,bxf,by0,byf,nx,ny,M,delta)
minx=D1(1);maxx=D1(2);miny=D1(3);maxy=D1(4);
hx=(maxx-minx)/(nx-1);hy=(maxy-miny)/(ny-1); 
x=minx:hx:maxx;y=miny:hy:maxy;
for j=1:nx
    u0(1,j)=by0(x(j));                                                                                                                                                                                                                 
    u0(ny,j)=byf(x(j));
end
for i=2:(ny-1)
    u0(i,1)=bx0(y(i));
    u0(i,nx)=bxf(y(i));
end
怎得梅花扑鼻香for i=1:nx
    sum=u0(1,nx)+u0(ny,nx);
end
for j=2:ny-1
    sum=u0(j,1)+u0(j,nx);
end
for i=2:nx-1
    for j=2:ny-1
        u0(j,i)=sum/(2*(nx+ny-2));
    end
程颢程颐end
u1=u0;
k=0;
for m=1:M
    for j=2:(nx-1)
        for i=2:(ny-1)
            u0(i,j)=1.7*(u0(i-1,j)+u0(i,j-1)+u1(i+1,j)+u1(i,j+1)-4*u1(i,j))/4+u1(i,j);
        end 
    end
    if max(max(abs(u0-u1)))<delta
不是英语怎么说        break;
    el
        u1=u0;
    end
    k=k+1;
end
u0;
sprintf('迭代次数: k=%d',k)
subplot(2,2,1)
mesh(x,y,u0)
subplot(2,2,2)
surf(x,y,u0)
shading interp
xlabel('x')
ylabel('y')
zlabel('u0')
过目成诵的意思subplot(2,2,3)
[c,h]=contour3(x,y,u0);
clabel(c,h)
subplot(2,2,4)
[m,n]=contour(x,y,u0);
clabel(m,n)
while(1) 
      disp('是否求某点函数值 是 请输入 1 否 请输入 0 ')
      a=input('a=');
      if a==1
        disp('输入坐标:')
        x=input('x= ');
        y=input('y= ');
宪法委员会
        if x<minx | x>maxx | y<miny | y>maxy
            disp('超出坐标范围')
        el
            p=round(1+x/hx);
            q=round(1+y/hy);
            sprintf('u(x,y)=%f'无机纤维,u0(q,p))
        end
      el
          disp('bye-bye')
          break;
      end
end
      程序中的边界条件详见程序代码 ex1401Laplace方程边界条件
   
 

本文发布于:2023-06-08 22:30:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1027031.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图