ÈÈ´«µ¼·½³ÌÏòǰ²î·Ö¸ñʽµÄMATLAB³ÌÐò

Ïòǰ²î·Ö¸ñʽMATLAB±à³Ì£º clear;clc;

format short e

a=input('ÇëÊäÈëϵÊýaµÄÖµ'); l=input('ÇëÊäÈ볤¶ÈlµÄÖµ');

M=input('ÇëÊäÈë½«Çø¼ä[0,1]µÈ·ÖµÄ¸öÊýM '); ot=input('ÇëÊäÈëʱ¼äÔöÁ¿otµÄÖµ'); n=input('ÇëÊäÈëÔËÐдÎÊýnµÄÖµ'); ox=1/M;

x0=zeros(M+1,1) for ii=1:M

x0(ii+1)=ii*ox; end

u=sin(pi*x0/l); r=a*ot/(ox)^2; for ii=1:n

%Êý¾ÝµÄÊäÈë B=zeros(M-1,1); A=zeros(M-2,1); C=zeros(M-2,1); S=zeros(M-1,1); for ii=1:M-2

B(ii)=1+2*r;A(ii)=-r;C(ii)=-r; S(ii)=u(ii+1,1); end

B(M-1,1)=1+2*r;S(M-1,1)=u(M,1);u(1,2)=0;u(M+1,2)=0; S(1,1)=S(1,1)+r*u(1,2);S(M-1,1)=S(M-1,1)+r*u(M+1,2); %×·¸Ï·¨

S(1)=S(1)/B(1);T=B(1);k=2; while k~=M

B(k-1)=C(k-1)/T;

T=B(k)-A(k-1)*B(k-1);

S(k)=(S(k)-A(k-1)*S(k-1))/T; k=k+1 end k=1;

while k~=M-1

S(M-1-k)=S(M-1-k)-B(M-1-k)*S(M-k); k=k+1;

end

D=(1-2*r)*eye(M-1);

temp=r*linspace(1,1,M-2);

D=D+diag(temp,1)+diag(temp,-1); S=D*S

u(2:M,2)=S; u(:,1)=u(:,2); end

%¼ÆË㾫ȷ½â for x=0:M

u(x+1,2)=exp(-(pi*a/l)^2*n*ot)*sin(pi*x*ox/l); end

fprintf('×îºóʱ¿ÌÊýÖµ½âÓ뾫ȷ½â·Ö±ðΪ');disp(u);

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@) ËÕICP±¸20003344ºÅ-4