资源描述:
《偏微分实验报告1.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、青岛农业大学微分方程数值解法实验报告姓名:学院:专业:班级:学号:完成时间:2012年11月4日微分方程数值解法实验课:实验一实验题目利用五点差分格式求解椭圆型方程Dirichlet边值问题实验目的掌握五点差分格式的建立及其求法实验地点及时间机房2452012年10月23日实验内容:利用五点差分格式求解椭圆型方程Dirichlet边值问题实验习题用五点差分格式求解椭圆型方程边值问题该问题的精确解为要求:1、写出数值求解格式;2、给出所用程序代码;functionvarargout=hu(varargi
2、n)a=0;b=2;c=0;d=1;h1=1/10;h2=1/20;f=inline('(pi^2-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
3、,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]=meshgrid(y,x);Z=zeros(m,n);U=zeros(m,n);fori=2:m-1U(i,1)=feval(g1x,x(i));U(i,n)=feval(g2x,x(i));endforj=1:nU(1,j)=feval(g1y,y(j));U(m,j)=feval(g2y,y(j));endfori=2
4、:m-1forj=2:n-1qu=f0(x(i),y(j));Z(i,j)=abs(qu-U(i,j));endendfunctionz=f0(x,y)z=exp(x)*sin(pi*y)3、给出实验结果。x=00.10000.20000.30000.40000.50000.60000.70000.80000.90001.00001.10001.20001.30001.40001.50001.60001.70001.80001.90002.0000y=00.05000.10000.15000.2000
5、0.25000.30000.35000.40000.45000.50000.55000.60000.65000.70000.75000.80000.85000.90000.95001.0000z=0.17290.34150.50170.64960.78150.89410.98471.05111.09161.10521.0916………实验总结:通过本次实验,我学会了运用五点差分法解决椭圆型方程Dirichlet边值问题,并且学会了运用Matlab进行程序的编写并且调试。实验成绩评阅时间评阅教师微分方程数
6、值解法实验课:实验二实验题目利用Crank-Nicolson差分格式计算抛物型方程定解问题实验目的掌握Crank-Nicolson差分格式的建立及其求法实验地点及时间机房1272012年10月31日实验内容:利用Crank-Nicolson差分格式计算抛物型方程定解问题实验习题:用Crank-Nicolson差分格式求解抛物型方程定解问题:该问题的精确解为:要求:1、写出数值求解格式;2、给出所用程序代码;functionvarargout=liu(varargin)T=1;a=1;h=1/20;k=
7、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/h^2;[T,X]=meshgrid(t,x);Z=z
8、eros(m,n);U=zeros(m,n);fori=1:mU(i,1)=feval(fx,x(i));endforj=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;forj=2:ntk1=0.5*(t(j-1)+t(j));fori=2:m-1UU(i-1)=f0(