《偏微分实验报告1.doc》由会员分享,可在线阅读,更多相关《偏微分实验报告1.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、,青岛农业大学微分方程数值解法实验报告姓 名: 学 院: 专 业: 班 级: 学 号: 完成时间: 2012年 11 月 4 日微分方程数值解法实验课:实验一实验题目利用五点差分格式求解椭圆型方程Dirichlet边值问题实验目的掌握五点差分格式的建立及其求法实验地点及时间机房245 2012年10月23日实验内容:利用五点差分格式求解椭圆型方程Dirichlet边值问题实验习题用五点差分格式求解椭圆型方程边值问题该问题的精确解为 要求:1、写出数值求解格式;2、给出所用程序代码;function varargout=hu(varargin)a=0;b=2;c=0;d=1;h1=1/10;h2
2、=1/20;f=inline(pi2-1)*exp(x)*sin(pi*y),x,y);g1x=inline(0);g2x=inline(0);g1y=inline(sin(pi*y);g2y=inline(exp(2)*sin(pi*y);X,Y,Z=chfenmethed(f,g1x,g2x,g1y,g2y,a,b,c,d,h1,h2);function X,Y,Z=chfenmethed(f,g1x,g2x,g1y,g2y,a,b,c,d,h1,h2)N=10000;x=a:h1:by=c:h2:dm=length(x);n=length(y);ee=0.0001;Y,X=meshgri
3、d(y,x);Z=zeros(m,n);U=zeros(m,n);for i=2:m-1U(i,1)=feval(g1x,x(i);U(i,n)=feval(g2x,x(i);endfor j=1:nU(1,j)=feval(g1y,y(j);U(m,j)=feval(g2y,y(j);endfor i=2:m-1 for j=2:n-1 qu=f0(x(i),y(j); Z(i,j)=abs(qu-U(i,j); endendfunction z=f0(x,y) z=exp(x)*sin(pi*y)3、 给出实验结果。x = 0 0.1000 0.2000 0.3000 0.4000 0.5
4、000 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000y = 0 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000z = 0.1729 0.3415 0.5017 0.6496 0.7815 0.8941 0
5、.9847 1.0511 1.0916 1.1052 1.0916 实验总结:通过本次实验,我学会了运用五点差分法解决椭圆型方程Dirichlet边值问题,并且学会了运用Matlab进行程序的编写并且调试。实验成绩评阅时间评阅教师微分方程数值解法实验课:实验二实验题目利用Crank-Nicolson差分格式计算抛物型方程定解问题实验目的掌握Crank-Nicolson差分格式的建立及其求法实验地点及时间机房127 2012年10月31日实验内容:利用Crank-Nicolson差分格式计算抛物型方程定解问题实验习题:用Crank-Nicolson差分格式求解抛物型方程定解问题:该问题的精确解为
6、:要求:1、 写出数值求解格式;2、给出所用程序代码;function varargout=liu(varargin)T=1;a=1;h=1/20;k=1/10;f=inline(0,x,t);fx=inline(exp(x);ft1=inline(exp(t);ft2=inline(exp(1+t);X,T,Z=chfenmethed(f,fx,ft1,ft2,a,T,h,k);function X,T,Z=chfenmethed(f,fx,ft1,ft2,a,T,h,k)x=0:h:at=0:k:Tm=length(x);n=length(t);r=a*k/h2;T,X=meshgrid(
7、t,x);Z=zeros(m,n);U=zeros(m,n);for i=1:mU(i,1)=feval(fx,x(i);endfor j=2:nU(1,j)=feval(ft1,t(j);U(m,j)=feval(ft2,t(j);endA=-r/2*ones(1,m-2);B=(1+r)*ones(1,m-2);C=A;UU=zeros(1,m-2);f1=UU;for j=2:n tk1=0.5*(t(j-1)+t(j); for i=2:m-1 UU(i-1)=f0(x(i),t(j); f1(i-1)=r/2*U(i-1,j-1)+(1-r)*U(i,j-1)+r/2*U(i+1,j
8、-1)+k*feval(f,x(i),tk1); end f1(1)=f1(1)+r/2*U(1,j); f1(m-2)=f1(m-2)+r/2*U(m,j); U(2:m-1,j)=zgf(A,B,C,f1); Z(2:m-1,j)=abs(U(2:m-1,j)-UU);endfunction x=zgf(A,B,C,f)n=length(B);B1=zeros(1,n-1);Y=zeros(1,n);x1=zeros(1,n);B1(1)=C(1)/B(1);for i=2:n-1 B1(i)=C(i)/(B(i)-A(i)*B1(i-1);endY(1)=f(1)/B(1);for i=
9、2:n Y(i)=(f(i)-A(i)*Y(i-1)/(B(i)-A(i)*B1(i-1);endx1(n)=Y(n);for i=n-1:-1:1 x1(i)=Y(i)-B1(i)*x1(i+1); endx=x1;function z=f0(x,t)z=exp(x+t)3、给出实验结果。x t z0 0 0.21560.0625 0.0500 1.11910.1250 0.1000 1.19120.1875 0.1500 1.26810.2500 0.2000 1.34990.3125 0.2500 1.43690.3750 0.3000 1.52960.4375 0.3500 1.628
10、20.5000 0.4000 1.73330.5625 0.4500 1.8450 实验总结:本次实验我学会了利用Crank-Nicolson差分格式计算抛物型方程定解问题,掌握了用Matlab为其编写程序。实验成绩评阅时间评阅教师微分方程数值解法实验课:实验三实验题目利用显式差分格式计算二阶双曲型方程定解问题实验目的掌握双曲型方程显式差分格式的建立及其求法实验地点及时间机房245 2012年11月2日实验内容:利用显式差分格式计算二阶双曲型方程定解问题实验习题:用显式差分格式求解双曲型方程定解问题 该问题的精确解为:要求:1写出数值求解格式;2给出所用程序代码;function vararg
11、out=wang(varargin)a=1;T=1;b=0.5;h=1/5;k=1/20;f=inline(0,x,t);fx1=inline(exp(x);fx2=inline(exp(x);ft1=inline(exp(t);ft2=inline(exp(1+t);X,Y,Z=chfenmethed(f,fx1,fx2,ft1,ft2,a,T,h,k);function X,T,Z=chfenmethed(f,fx1,fx2,ft1,ft2,a,T,h,k)x=0:h:at=0:k:Tm=length(x);n=length(t);s=a*k/h;X,T=meshgrid(x,t);Z=z
12、eros(n,m);U=zeros(n,m);for i=2:m-1U(1,i)=feval(fx1,x(i);U(2,i)=U(1,i)+k*feval(fx2,x(i)+k2/2*(a2/h2*.(feval(fx1,x(i+1)-2*feval(fx1,x(i)+feval(fx1,x(i-1)+feval(f,x(i),0);endfor j=1:nU(j,1)=feval(ft1,t(j);U(j,m)=feval(ft2,t(j);endUU=f0(X,T);for i=2:n-1 for j=2:m-1 U(i+1,j)=s2*U(i,j-1)+2*(1-s2)*U(i,j)+s
13、2*U(i,j+1)-U(i-1,j)+k2*feval(f,x(j),t(i); Z(i+1,j)=abs(U(i+1,j)-f0(x(j),t(i+1); endendfunction z=f0(x,t)z=exp(x+t) 3给出实验结果。x = 0 0.2000 0.4000 0.6000 0.8000 1.0000t = Columns 1 through 18 0 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 Columns 19 through 21 0.9000 0.9500 1.0000z = 1.0000 1.2214 1.4918 1.8221 2.2255 2.7183 1.0513 1.2840 1.5683 1.9155 2.3396 实验总结:本次实验我学会了利用显式差分格式计算二阶双曲型方程定解问题,掌握双曲型方程显式差分格式的建立及其求法,学会了其对应的Matlab语言的编写。实验成绩评阅时间评阅教师