⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 peparabwegimp.m

📁 这个是matlab经典教程的一个关于 偏微分方程的数值解法的原代码
💻 M
字号:
function u = peParabWegImp(c,sita,dt,n,minx,maxx,lbu,rbu,M)
format long;
h = (maxx-minx)/(n-1);
u0(1) = lbu;
u0(n) = rbu;
for j=2:n-1
    u0(j) = PrIniU(minx+(j-1)*h);
end 
u1 = u0;

for k=1:M
    A = zeros(n-2,n-2);
    cb =  zeros(n-2,1);
    cb(1) = -u0(2) -(1 - sita)*(u0(3)-2*u0(2)+u0(1))*dt*c*lbu/h/h/2 ...
        - sita*dt*c*lbu/h/h;
    cb(n-2) = -u0(n-1) -(1 - sita)*(u0(n)-2*u0(n-1)+u0(n-2))*dt*c*lbu/h/h/2 ...
        - sita*dt*c*rbu/h/h;
    for i=2:n-3
        cb(i) = -u0(i+1) -(1 - sita)*(u0(i+2)-2*u0(i+1)+u0(i))*dt*c*lbu/h/h;
    end
    A(1,1) = -2*sita*dt*c/h/h -1;
    A(1,2) = sita*dt*c/h/h ;
    for i=2:n-3
        A(i,i-1) = sita*dt*c/h/h ;
        A(i,i) = - 2*sita*dt*c/h/h -1 ;
        A(i,i+1) = sita*dt*c/h/h  ;
    end
    A(n-2,n-2) = - 2*sita*dt*c/h/h -1;
    A(n-2,n-3) = sita*dt*c/h/h;
    u1(2:(n-1)) = A\cb;
    u0 = u1;
end

u = u1;
format short;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -