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个小程序示例
共60个文件
m:60个
5星 · 超过95%的资源 需积分: 33 214 下载量 67 浏览量
2015-01-03
18:01:31
上传
评论 18
收藏 29KB ZIP 举报
温馨提示
该资源包括了60个matlab的小程序,容易理解,由易到难,对于初学者是一份很好的资料。
资源推荐
资源详情
资源评论
收起资源包目录
60smallcode Matlab for beginners.zip (60个子文件)
自学Matlab必备的60个小程序代码
Matlab
xycf.m 1KB
dNeville.m 94B
fitfun.m 1KB
Neville插值.m 241B
nihe.m 333B
zjf.m 1KB
poisson.m 3KB
平方根法.m 727B
hermite.m 583B
diedai.m 204B
erfen.m 441B
LR.m 750B
dNewton.m 56B
RK.m 434B
改进平方根法.m 759B
Untitled9.m 322B
hothch.m 349B
CN.m 681B
qgauss.m 919B
lbg.m 429B
tranBB.m 357B
fg.m 35B
sc.m 468B
seidel.m 187B
jacobi.m 175B
ytiao.m 397B
dEuler.m 78B
Langrange.m 423B
fun1.m 52B
sanci2.m 865B
fh.m 27B
euler.m 361B
sp.m 212B
jtf.m 365B
fitpt.m 2KB
fx.m 430B
追赶法求解三对角方程.m 350B
fc.m 52B
trisys.m 210B
stguass.m 884B
trapr1.m 139B
newton.m 153B
wavequ.m 701B
Taylor解常微分方程.m 415B
sanci.m 813B
nihe1.m 347B
df.m 34B
Euler解常微分方程.m 652B
gauss.m 1KB
ft.m 30B
Newton插值.m 340B
poiss.m 3KB
cgls.m 663B
Euler1.m 653B
yangtiao.m 425B
fun.m 52B
Untitled.m 2KB
gexian.m 202B
hotqch.m 490B
giassl.m 786B
共 60 条
- 1
资源评论
- CAPTIAN船长2019-12-10为了方便同学们下载,请关注公众号: 木石说 mushiwords 回复“matlab”免积分下载其他更多matlab源码
- gypdajie6672017-12-28还可以 不错的资源
huweiqing612
- 粉丝: 2
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功