資源描述:
《向后 Euler法求解拋物線方程的matlab程序.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、向后Euler法求解拋物線方程的matlab程序2010-04-1921:55functionvarargout=liu(varargin)T=1;a=1;h=1/10;k=1/400;f=inline('0','x','t');fx=inline('exp(x)');ft1=inline('exp(t)');ft2=inline('exp(1+t)');[X,Y,Z]=chfenmethed(f,fx,ft1,ft2,a,T,h,k);mesh(X,Y,Z);shadingflat;xlabel('X','FontSize',14);ylabel('t','FontSize',
2、14);zlabel('error','FontSize',14);title('誤差圖');function[X,T,Z]=chfenmethed(f,fx,ft1,ft2,a,T,h,k)%求解下問題%u_t-a*u_xx=f(x,t)03、);fori=1:mU(1,i)=feval(fx,x(i));endforj=2:nU(j,1)=feval(ft1,t(j));U(j,m)=feval(ft2,t(j));endA=-r*ones(1,m-2);B=(1+2*r)*ones(1,m-2);C=A;UU=zeros(1,m-2);f1=UU;fori=2:n?????forj=2:m-1???UU(j-1)=f0(x(j),t(i));???f1(j-1)=U(i-1,j)+k*feval(f,x(j),t(i));??end??f1(1)=f1(1)+r*U(i,1);??f1(m-2)=f1(m-2)+r
4、*U(i,m);??U(i,2:m-1)=zgf(A,B,C,f1);??Z(i,2:m-1)=abs(U(i,2:m-1)-UU);endfunctionx=zgf(A,B,C,f)%解[b1c1%????a2b2c2%??????..??.???????*x=f%?????????????????%???????????????anbn]n=length(B);B1=zeros(1,n-1);Y=zeros(1,n);x1=zeros(1,n);B1(1)=C(1)/B(1);fori=2:n-1????B1(i)=C(i)/(B(i)-A(i)*B1(i-1));endY(
5、1)=f(1)/B(1);fori=2:n????Y(i)=(f(i)-A(i)*Y(i-1))/(B(i)-A(i)*B1(i-1));endx1(n)=Y(n);fori=n-1:-1:1????x1(i)=Y(i)-B1(i)*x1(i+1);???endx=x1;functionz=f0(x,t)%精確解函數(shù)z=exp(x+t);