电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

偏微分各差分格式MATLAB编程

偏微分各差分格式MATLAB编程_第1页
1/5
偏微分各差分格式MATLAB编程_第2页
2/5
偏微分各差分格式MATLAB编程_第3页
3/5
(1)迎风格式function u = peHypbYF(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);if a>0 for j=1:(n+M) u0(j) = IniU(minx+(j-M-1)*h); endelse for j=1:(n+M) u0(j) = IniU(minx+(j-1)*h); endend u1 = u0; for k=1:M if a>0 for i=(k+1):n+M u1(i) = -(dt/h)*a*(u0(i)-u0(i-1))+u0(i); end else for i=1:n+M-k u1(i) = -(dt/h)*a*(u0(i+1)-u0(i))+u0(i); end end u0 = u1;endx=0.01:0.01:n/100; u = u1((M+1):(M+n));plot(x,u,'r');axis([0 1 -0.5 1.5]);hold ony=1.*(x<=0.5)+0.*(x>0.5);plot(x,y,'g')title('Ó·ç¸ñʽ')format short;运行结果>> u=peHypbYF(1,0.005,101,0,1,100)(2)Lax-Fridrichs 格式function u = LaxFridrichs(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M) u0(j) = IniU(minx+(j-M-1)*h);end u1 = u0; for k=1:M for i=k+1:n+2*M-k u1(i) = -(dt/h)*a*(u0(i+1)-u0(i-1))/2+(u0(i+1)+u0(i-1))/2; end u0 = u1;end x=0.01:0.01:n/100; u = u1((M+1):(M+n));plot(x,u,'r'); axis([0 1 -0.5 1.5]);hold ony=1.*(x<=0.5)+0.*(x>0.5);plot(x,y,'g')title('Lax-Fridrichs¸ñʽ')format short;运行结果>> u = LaxFridrichs(1,0.005,101,0,1,100)(3)Lax-Wendroff 格式function u = LaxWendroff(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M) u0(j) = IniU(minx+(j-M-1)*h);end u1 = u0; for k=1:M for i=k+1:n+2*M-k u1(i) = (dt/h)^2*a*a*(u0(i+1)-2*u0(i)+u0(i-1))/2- ... (dt/h)*a*(u0(i+1)-u0(i-1))/2+u0(i); end u0 = u1;endx=0.01:0.01:n/100; u = u1((M+1):(M+n));plot(x,u,'r'); axis([0 1 -0.5 1.5]);hold ony=1.*(x<=0.5)+0.*(x>0.5);plot(x,y,'g')title('Lax-Wendroff¸ñʽ')format short运行结果>> u= LaxWendroff(1,0.005,101,0,1,100)(4)Beam-Warming 格式function u =BeamWarming(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M) u0(j) = IniU(minx+(j-M-1)*h);end u1 = u0; for k=1:M for i=k+2:n+2*M-k u1(i) = -a*(dt/h)*(u0(i)-u0(i-1))-a*(dt/h)*(1-a*(dt/h))*(u0(i)-2*u0(i-1)+u0(i-2))/2+u0(i); end u0 = u1;end x=0.01:0.01:n/100; u = u1((M+1):(M+n));plot(x,u,'r'); axis([0 1 -0.5 1.5]);hold ony=1.*(x<=0.5)+0.*(x>0.5);plot(x,y,'g')title('Beam-Warming¸ñʽ')format short;运行结果>> u= BeamWarming(1,0.005,101,0,1,100)

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

偏微分各差分格式MATLAB编程

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部