📄 diedai.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 + -