• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: 差分法  

资源简介

本程序是用五点差分格式解拉普拉斯方程,采用MATLAB作为开发环境,拉普拉斯方程有广泛的应用,五点差分格式的精度高

资源截图

代码片段和文件信息

function u = peEllip5(nxminxmaxxnyminymaxy)
format long;
hx = (maxx-minx)/(nx-1);
hy = (maxy-miny)/(ny-1);
u0 = zeros(nxny);
for j=1:ny
    u0(j1) = EllIni2Uxl(minxminy+(j-1)*hy);
    u0(jnx) = EllIni2Uxr(maxxminy+(j-1)*hy);
end
for j=1:nx
    u0(1j) = EllIni2Uyl(minx+(j-1)*hxminy);
    u0(nyj) = EllIni2Uyr(minx+(j-1)*hxmaxy);
end 

A = -4*eye((nx-2)*(ny-2)(nx-2)*(ny-2));
b = zeros((nx-2)*(ny-2)1);
for i=1:(nx-2)*(ny-2)
    if mod(inx-2) == 1
        if i==1
            A(12) = 1;
            A(1nx-1) = 1;
            b(1) = - u0(12) - u0(21);
        else
            if i == (ny-3)*(nx-2)+1
                A(ii+1) = 1;
                A(ii-nx+2) = 1;
                b(i) = - u0(ny-11) - u0(ny2);
            else
                A(ii+1) = 1;
                A(ii-nx+2) = 1;
                A(ii+nx-2) = 1;
                b(i) = - u0(floor(i/(nx-2))+21);
            end
        end
    else
        if mod(inx-2) == 0
            if i == nx-2
                A(ii-1) = 1;
                A(ii+nx-2) = 1;
                b(i) = - u0(1nx-1) - u0(2nx);
            else
     

评论

共有 条评论