close all;
clear all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%具体实例%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a=-1;b=1;c=-1;d=1;
n=6;m=5;TOL=1e-10;
ITMAX=500;
%f=inline('x*exp(y)','x','y');
%ga=inline('0','x','y');gb=inline('2*exp(y)','x','y');
%gc=inline('x','x','y');gd=inline('exp(1)*x','x','y');
f=inline('2*pi^2*sin(pi*x)*sin(pi*y)','x','y');
ga=inline('0','x','y');gb=inline('0','x','y');
gc=inline('0','x','y');gd=inline('0','x','y');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%程序部分%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h=(b-a)/n;
k=(d-c)/m;
x=linspace(a,b,n+1);
x=x(2:n);
y=linspace(c,d,m+1);
y=y(2:m);
u=zeros(n-1,m-1);
lmd=h^2/k^2;
mu=2*(1+lmd);
xx=[];
yy=[];
uu=[];
ture=[];
l=1;
while (l<=ITMAX)
z=(-h*h*f(x(1),y(m-1))+ga(a,y(m-1))+lmd*gd(x(1),d)+...
lmd*u(1,m-2)+u(2,m-1))/mu;
NORM=abs(z-u(1,m-1));
u(1,m-1)=z;
for i=2:n-2
z=(-h*h*f(x(i),y(m-1))+lmd*gd(x(i),d)+u(i-1,m-1)+...
u(i+1,m-1)+lmd*u(i,m-2))/mu;
if(abs(u(i,m-1)-z)>NORM)
NORM=abs(u(i,m-1)-z);
end
u(i,m-1)=z;
end
z=(-h*h*f(x(n-1),y(m-1))+gb(b,y(m-1))+...
lmd*gd(x(n-1),d)+u(n-2,m-1)+lmd*u(n-1,m-2))/mu;
if(abs(u(n-1,m-1)-z)>NORM)
NORM=abs(u(n-1,m-1)-z);
end
u(n-1,m-1)=z;
for j=m-2:-1:2
z=(-h*h*f(x(1),y(i))+ga(a,y(j))+lmd*u(1,j+1)+...
lmd*u(1,j-1)+u(2,j))/mu;
if(abs(u(1,j)-z)>NORM)
NORM=abs(u(1,j)-z);
end
u(1,j)=z;
for i=2:n-2
z=(-h*h*f(x(i),y(j))+u(i-1,j)+lmd*u(i,j+1)+...
u(i+1,j)+lmd*u(i,j-1))/mu;
if( abs(u(i,j)-z)>NORM)
NORM=abs(u(i,j)-z);
end
u(i,j)=z;
end
z=(-h*h*f(x(n-1),y(j))+gb(b,y(j))+u(n-2,j)+...
lmd*u(n-1,j+1)+lmd*u(n-1,j-1))/mu;
if(abs(u(n-1,j)-z)>NORM)
NORM=abs(u(n-1,j)-z);
end
u(n-1,j)=z;
end
z=(-h*h*f(x(1),y(1))+ga(a,y(1))+lmd*gc(x(1),c)+...
lmd*u(1,2)+u(2,1))/mu;
if(abs(u(1,1)-z)>NORM)
NORM=abs(u(1,1)-z);
end
u(1,1)=z;
for i=2:n-2
z=(-h*h*f(x(i),y(1))+lmd*gc(x(i),c)+...
u(i-1,1)+lmd*u(i,2)+u(i+1,1))/mu;
if(abs(u(i,1)-z)>NORM)
NORM=abs(u(i,1)-z);
end
u(i,1)=z;
end
z=(-h*h*f(x(n-1),y(1))+gb(b,y(1))+lmd*gc(x(n-1),c)+...
u(n-2,1)+lmd*u(n-1,2))/mu;
if(abs(u(n-1,1)-z)>NORM)
NORM=abs(u(n-1,1)-z);
end
u(n-1,1)=z;
if(NORM<=TOL)
for i=1:n-1
for j=1:m-1
xx=[xx,x(i)];
yy=[yy,y(j)];
uu=[uu,u(i,j)];
%tur(i,j)=x(i)*exp(y(j));
tur(i,j)=-sin(pi*x(i))*sin(pi*y(j));
ture=[ture,tur(i,j)];
end
end
break;
end
l=l+1;
end
re=[xx' yy' uu' ture']
%%%%%%%%%%%%%%%%%%%%%%%问题%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[Y,X]=meshgrid(y,x);
mesh(X,Y,u)
没有合适的资源?快使用搜索试试~ 我知道了~
自学Matlab必备的60个小程序代码.zip
共60个文件
m:60个
0 下载量 62 浏览量
2023-07-28
18:06:21
上传
评论
收藏 24KB ZIP 举报
温馨提示
自学Matlab必备的60个小程序代码.zip
资源推荐
资源详情
资源评论
收起资源包目录
自学Matlab必备的60个小程序代码.zip (60个子文件)
Neville插值.m 241B
平方根法.m 727B
Taylor解常微分方程.m 415B
Euler解常微分方程.m 652B
fitpt.m 2KB
dNewton.m 56B
fitfun.m 1KB
nihe1.m 347B
CN.m 681B
gexian.m 202B
改进平方根法.m 759B
ft.m 30B
trapr1.m 139B
wavequ.m 701B
dNeville.m 94B
hothch.m 349B
gauss.m 1KB
poiss.m 3KB
Newton插值.m 340B
sc.m 468B
Untitled.m 2KB
tranBB.m 357B
zjf.m 1KB
df.m 34B
fc.m 52B
yangtiao.m 425B
sanci.m 813B
seidel.m 187B
hotqch.m 490B
nihe.m 333B
giassl.m 786B
hermite.m 583B
erfen.m 441B
poisson.m 3KB
追赶法求解三对角方程.m 350B
stguass.m 884B
dEuler.m 78B
fun1.m 52B
Euler1.m 653B
LR.m 750B
lbg.m 429B
ytiao.m 397B
Langrange.m 423B
fg.m 35B
jacobi.m 175B
fh.m 27B
fx.m 430B
fun.m 52B
trisys.m 210B
qgauss.m 919B
diedai.m 204B
RK.m 434B
euler.m 361B
sp.m 212B
cgls.m 663B
sanci2.m 865B
Untitled9.m 322B
jtf.m 365B
newton.m 153B
xycf.m 1KB
共 60 条
- 1
资源评论
小嗷犬
- 粉丝: 2w+
- 资源: 1334
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功