




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
设定N=100,a=3,b=40,T0=8,s=20x-4T Matlab源程序代码: length=2; N=100;iterN=0;eps=1.0e-4;deltQ=2; T2=(1:N); T2(1)=8;T2(N)=1; dx=length/(N-2); while(deltQ>=eps&&iterN<50) T=T2; fori=1:N k(i)=3*T(i)^3; sc(i)=20*(i-1)/N; sp(i)=4; end k(N/2+1:N)=40*T(N/2+1:N).^3; fori=2:N-1 ifi==2 a(i-1)=-2*k(i)/dx; c(i-1)=-2*k(i)*k(i+1)/dx/(k(i)+k(i+1)); b(i-1)=-a(i-1)-c(i-1)-sp(i)*dx; d(i-1)=sc(i)*dx-a(i-1)*T(i-1); else ifi==N-1; a(i-1)=-2*k(i)*k(i-1)/dx/(k(i)+k(i-1)); c(i-1)=-2*k(i+1)/dx; b(i-1)=-a(i-1)-c(i-1)-sp(i)*dx; d(i-1)=sc(i)*dx-c(i-1); else a(i-1)=-2*k(i)*k(i-1)/dx/(k(i)+k(i-1)); c(i-1)=-2*k(i)*k(i+1)/dx/(k(i)+k(i+1)); b(i-1)=-a(i-1)-c(i-1)-sp(i)*dx; d(i-1)=sc(i-1)*dx; end end end ifabs(b(1))<=abs(c(1))||abs(b(N-2)<=abs(c(N-2))) warndla('²»Âú×ã×·¸Ï·¨Ìõ¼þ','¾¯¸æ£¡'); end fori=1:N-2 ifabs(b(i))<abs(c(i)+abs(a(i))) warndla('²»Âú×ã×·¸Ï·¨Ìõ¼þ','¾¯¸æ£¡'); end end fori=1:N-2 ifi==1 u(1)=b(1); else l(i)=a(i)/u(i-1); u(i)=b(i)-l(i)*c(i-1); end end fori=1:N-2 ifi==1 y(1)=d(1); else y(i)=d(i)-l(i)*y(i-1); end end forj=N-2:-1:1 ifj==N-2 x(N-2)=y(N-2)/u(N-2); else x(j)=(y(j)-c(j)*x(j+1))/u(j); end end iterN=iterN+1; T2(2:N-1)=x(1:N-2); deltQ=max(abs(T2-T)); end fori=1:10 Q(i,1:10)=T2((1+(i-1)*10):i*10); end disp(Q); 上面程序有乱码,附截图一份:

王子****青蛙
实名认证
内容提供者


最近下载