資源描述:
《導(dǎo)熱方程求解matlab.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、使用差分方法求解下面的熱傳導(dǎo)方程初值條件:邊值條件:使用差分公式上面兩式帶入原熱傳導(dǎo)方程令,化簡(jiǎn)上式的編程MATLAB程序,運(yùn)行結(jié)果如下functionmypdesolutionc=1;xspan=[01];tspan=[00.2];ngrid=[10010];f=@(x)4*x-4*x.^2;g1=@(t)0;g2=@(t)0;[T,x,t]=rechuandao(c,f,g1,g2,xspan,tspan,ngrid);[x,t]=meshgrid(x,t);mesh(x,t,T);xlabel('x')ylabel(
2、't')zlabel('T')function[U,x,t]=rechuandao(c,f,g1,g2,xspan,tspan,ngrid)%熱傳導(dǎo)方程:%Ut(x,t)=c^2*Uxx(x,t)a3、網(wǎng)格點(diǎn)數(shù)量%U:方程的數(shù)值解%x,t:x和t的網(wǎng)格點(diǎn)n=ngrid(1);m=ngrid(2);h=range(xspan)/(m-1);x=linspace(xspan(1),xspan(2),m);k=range(tspan)/(n-1);t=linspace(tspan(1),tspan(2),n);r=c^2*k/h^2;ifr>0.5error('為了保證算法的收斂,請(qǐng)?jiān)龃蟛介L(zhǎng)h或減小步長(zhǎng)k!')ends=1-2*r;U=zeros(ngrid);%邊界條件U(:,1)=g1(t);U(:,m)=g2(t);%初
4、值條件U(1,:)=f(x);%差分計(jì)算forj=2:nfori=2:m-1U(j,i)=s*U(j-1,i)+r*(U(j-1,i-1)+U(j-1,i+1));endend