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

📄 diedai.m

📁 在matlab环境下对偏微分方程的Jacobi迭代解法的算法实现
💻 M
字号:
function [u,u0]=diedai(f,m,n,h1,h2,u,x,y)
for i=1:m-1
    A(i,i)=2/(h1*h1);
end
for i=2:m-2
    A(i,i+1)=-1/(h1*h1);
    A(i,i-1)=-1/(h1*h1);
end
A(1,2)=-1/(h1*h1);
A(m-1,m-2)=-1/(h1*h1);
for j=2:n
d(1)=f(x(2),y(j))+u(1,j)/(h1*h1)+(u(2,j-1)-2*u(2,j)+u(2,j+1))/(h2*h2);
d(m-1)=f(x(m),y(j))+u(m+1,j)/(h1*h1)+(u(m,j-1)-2*u(m,j)+u(m,j+1))/(h2*h2);
for i=2:m-2
    d(i)=f(x(i+1),y(j))+(u(i+1,j-1)-2*u(i+1,j)+u(i+1,j+1))/(h2*h2);
end
r=chase(A,d,m-2);
for i=2:m
    v(i,j)=r(i-1);
end
v(1,j)=u(1,j);
v(m+1,j)=u(m+1,j);
end
for i=1:m+1
    v(i,1)=exp(x(i));
    v(i,n+1)=exp(x(i))*(sin(1)+cos(1));
end
for i=1:n-1
    B(i,i)=2/(h2*h2);
end
for i=2:n-2 
    B(i,i+1)=-1/(h2*h2);
    B(i,i-1)=-1/(h2*h2);
end
B(1,2)=-1/(h2*h2);
B(n-1,n-2)=-1/(h2*h2);
for i=2:m
l(1)=f(x(i),y(2))+v(i,1)/(h2*h2)+(u(i-1,2)-2*u(i,2)+u(i+1,2))/(h1*h1);
l(n-1)=f(x(i),y(n))+v(i,n+1)/(h2*h2)+(u(i-1,n)-2*u(i,n)+u(i+1,n))/(h1*h1);
for j=2:n-2
    l(i)=f(x(i),y(j+1))+(u(i-1,j+1)-2*u(i,j+1)+u(i+1,j+1))/(h1*h1);
end
r=chase(B,l,n-2);
for j=2:n
    u0(i,j)=r(j-1);
end
u0(i,1)=v(i,1);
u0(i,n+1)=v(i,n+1);
end
for j=1:n+1
    u0(1,j)=sin(y(j))+cos(y(j));
    u0(m+1,j)=exp(1)*(sin(y(j))+cos(y(j)));
end

⌨️ 快捷键说明

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