matlab1234 发表于 2011-4-17 22:56:43

差分程序分享

QQ:1759553924
function =tuoyuan1(jingqueu1,f1,phi1,phi2,phi3,phi4,a,b,c,d,m,n,epsilon)
%此程序用于求解差分方程-=f(x,y)的解
%u(a,y)=phi1,u(b,y)=phi2,u(x,c)=phi3,u(x,d)=phi4
%差分剖分x方向m等分,差分剖分y方向n等分
h1=(b-a)/m;
h2=(d-c)/n;
h=2*;
x=a:h1:b;
y=c:h2:d;
%u为迭代初始矩阵
u=ones(m+1,n+1);U=zeros(m+1,n+1);
u(1,1:1:n+1)=feval(phi1,y);   U(1,1:1:n+1)=feval(phi1,y);
u(1+m,1:1:n+1)=feval(phi2,y); U(1+m,1:1:n+1)=feval(phi2,y);
u(1:m+1,1)=';U(1:m+1,1)=';
u(1:m+1,n+1)=';U(1:m+1,n+1)=';
fanshu=1;
while (fanshu>epsilon)
for i=2:m
    j=2:n;
    U(i,j)=/h;
end
fanshu=norm(u-U,inf);
u=U;
end
for i=1:m+1
    j=1:n+1;
    Ujingque(i,j)=feval(jingqueu1,a+(i-1)*h1,y);
end
err=abs(U-Ujingque);
zuidaERR=max(max(err));
zuidaERR=vpa(zuidaERR,4);
%U=;
%U=vpa(U,7);
%ERR=;
%ERR=vpa(ERR,4);
页: [1]
查看完整版本: 差分程序分享