计算物理--解偏微分方程编程问题(共9页).doc
《计算物理--解偏微分方程编程问题(共9页).doc》由会员分享,可在线阅读,更多相关《计算物理--解偏微分方程编程问题(共9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上%例1:有限长细杆的热传导的定解问题x=0:20; t=0:0.01:1; a2=10;r=a2*0.01;u=zeros(21,101);u(10:11,1)=1;for j=1:100u(2:20,j+1)=(1-2*r)*u(2:20,j)+r*( u(1:19,j)+ u(3:21,j);plot(u(:,j); axis(0 21 0 1); pause(0.1)endmeshz(u)%例2:非齐次方程的定解问题的解析解a2=50;b=5;L=1;x,t=meshgrid(0:0.01:1,0:0.:0.0005); Anfun=inline(2/L*(x-
2、L/2).2.*exp(-b*x./2/a2).*sin(n*pi*x/L),x,n,L,b,a2); %定义内联函数u=0;for n=1:30 An=quad(Anfun,0,1,n,L,b,a2); %inline函数中定义x为向量,其它为标量 un=An*exp(-(n*n*pi*pi*a2/L/L+b*b/4/a2/a2).*t).*exp(b/2/a2.*x).*sin(n*pi*x/L); u=u+un; size(u);end mesh(x,t,u) %x,t,u都为501行101列的矩阵figuresubplot(2,1,1)plot(u(1,:)subplot(2,1,2)
3、plot(u(end,:)%例3:非齐次方程的定解问题的数值解dx=0.01;dt=0.;a2=50;b=5;c=a2*dt/dx/dx;x=linspace(0,1,100); %将变量设成列向量uu(1:100,1)=(x-0.5).2; %初温度为零figuresubplot(1,2,1) %初始状态plot(x,uu(:,1),linewidth,1);axis(0,1,0,0.25);subplot(1,2,2) %演化图h=plot(x,uu(:,1),linewidth,1);set(h,EraseMode,xor)for j=2:200uu(2:99,2)=(1-2*c)*uu
4、(2:99,1)+c*(uu(1:98,1)+ uu(3:100,1)-. b*dt/dx*(uu(3:100,1)-uu(2:99,1);uu(1,2)=0;uu(100,2)=0; %边界条件uu(:,1)=uu(:,2);uu(:,1)set(h,YData,uu(:,1);drawnow;pause(0.01)end%此列还可以不用图形句柄,直接用plot画图dx=0.01;dt=0.;a2=50;b=5;c=a2*dt/dx/dx;x=linspace(0,1,100); %将变量设成列向量uu(1:100,1)=(x-0.5).2; %初温度为零figuresubplot(1,2,
5、1) %初始状态plot(x,uu(:,1),linewidth,1);axis(0,1,0,0.25);subplot(1,2,2) %演化图for j=2:200uu(2:99,2)=(1-2*c)*uu(2:99,1)+c*(uu(1:98,1)+ uu(3:100,1)-. b*dt/dx*(uu(3:100,1)-uu(2:99,1);uu(1,2)=0;uu(100,2)=0; %边界条件uu(:,1)=uu(:,2);uu(:,1)plot(x,uu(:,1),linewidth,1);axis(0,1,0,0.25);pause(0.01)end%例4:运用Crank-Nico
6、lson公式解一维运动粒子贯穿势垒的薛定谔方程time=130;x=1:220; v(x)=0;v(105:115)=0.18; %势垒函数k0=0.5;d=10;x0=40; %波包的参数:平均动量,宽度和中心 B0=exp(k0*i*x).*exp(-(x-x0).2./(2*d.2); %初始的高斯波包B(:,1)=B0.;A=diag(-2+2i+v)+diag(ones(219,1),1)+diag(ones(219,1),-1);for t=1:timeC(:,t+1)=4i*(AB(:,t);B(:,t+1)=C(:,t+1)-B(:,t);plot(x,abs(B(:,t).2
7、/norm(B(:,t).2,x,v/2); %画归一化后的概率密度和位势axis(0,300,0,0.1);pause(0.1)end%此列可采用实时动画播放time=130;x=1:220; v(x)=0;v(105:115)=0.18; %势垒函数k0=0.5;d=10;x0=40; %波包的参数:平均动量,宽度和中心 B0=exp(k0*i*x).*exp(-(x-x0).2./(2*d.2); %初始的高斯波包B(:,1)=B0.;A=diag(-2+2i+v)+diag(ones(219,1),1)+diag(ones(219,1),-1);for t=1:timeC(:,t+1)
8、=4i*(AB(:,t);B(:,t+1)=C(:,t+1)-B(:,t);endmo=moviein(time); %实时动画播放for j=1:timeplot(x,abs(B(:,j).2/norm(B(:,j).2,x,v/2);mo(:,j)=getframe;endmovie(mo)%例5:(书上例题1)两端固定的弦,初速为零,初位移不为零。clear alla=2;dt=0.05;dx=0.1;c=4*dt2/dx2;x=0:dx:1; %弦长u1(1:11)=0; u2(1:11)=0; u3(1:11)=0; %预设三个矩阵 u1(2:6)=-x(2:6);u1(7:10)=
9、-1.5+1.5*x(7:10); %初始条件plot(x,u1);axis(0,1,-1,1);pause(0.3)u2(2:10)=u1(2:10)+c/2*(u1(3:11)-2*u1(2:10)+u1(1:9); %初始速度plot(x,u2);axis(0,1,-1,1);pause(0.3)for k=2:20 %求解方程u3(2:10)=2*u2(2:10)-u1(2:10)+c*(u2(3:11)-2*u2(2:10)+u2(1:9);u1=u2; u2=u3;plot(x,u3);axis(0,1,-1,1);pause(0.3)end%例6:(书上例题2)两端固定的弦,初速
10、为零,初位移不为零。clear allN=4010;dx=0.0024;dt=0.0005;c=dt*dt/dx/dx;x=linspace(0,1,420); %弦长u(1:420,1)=0; %边界条件 u(181:240,1)=0.05*sin(pi*x(181:240)*7); %初始位移u(2:419,2)=u(2:419,1)+c/2*(u(3:420,1)-2*u(2:419,1)+u(1:418,1);h=plot(x,u(:,1),linewidth,3);axis(0,1,-0.05,0.05);set(h,EraseMode,xor,MarkerSize,18)for k
11、=2:Nset(h,XData,x,YData,u(:,2) ;drawnow;u(2:419,3)=2*u(2:419,2)-u(2:419,1)+c*(u(3:420,2)-2*u(2:419,2)+u(1:418,2);u(2:419,1)=u(2:419,2); u(2:419,2)=u(2:419,3);end%例7:(书上例题3)弦自由振动的解析解function jxjclear;clc;N=50;t=0:0.005:2.0;x=0:0.001:1;ww=wfun(N,0);ymax=max(abs(ww);h= plot(x,ww,linewidth,3);axis( 0, 1
12、, -ymax, ymax)sy= ;for n=2:length(t)ww=wfun(N,t(n);set(h,ydata,ww);drawnow;sy=sy,sum(ww);endfunction wtx=wfun(N,t)x=0:0.001:1; a=1; wtx=0;for I=1:Nif I=7wtx=wtx+0.05*( (sin(pi*(7-I)*4/7)-sin(pi*(7-I)*3/7). /(7-I)/pi-(sin(pi*(7+I)*4/7)-sin(pi*. (7+I)*3/7)/(7+I)/pi )*cos(I*pi*a*t).*sin(I*pi*x);elsewtx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 物理 微分方程 编程 问题
限制150内