对下面的一阶对流扩散方程()对求解区间Matlab程序functionu=yingfeng(a,dt,n,minx,maxx,M)%方程中的常数:a%时间步长:dt%空间节点个数:n%求解区间的左端:minx%求解区间的右端:naxx%时间步的个数:M%求解区间上的数值解:uformatlong;h=(maxx-minx)/(n-1);ifa>0forj=1:(n+M)u0(j)=IniU(minx+(j-M-1)*h);endelse forj=1:(n+M)u0(j)=IniU(minx+(j-1)*h);endend u1=u0;fork=1:Mifa>0fori=(k+1):n+Mu1(i)=-dt*a*(u0(i)-u0(i-1))/h+u0(i);endelsefori=1:n+M-ku1(i)=-dt*a*(u0(i+1)-u0(i))/h+u0(i);endendu0=u1;endifa>0u=u1((M+1):M+n);elseu=u1(1:n);endformatlong;functionux=IniU(x)formatlong;ifx<=0ifx>=-=10*(x+);elseux=0;endelseifx<==-10*(x-);elseux=0;endendend在保持其他量不变的情况下,通过改变dt的值来改变来分析时间步长dt和空间步长h的取值关系事实上令则有;u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);>>plot(u)u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);plot(u)u=yingfeng(1,,101,0,1,100);plot(u)>>u=yingfeng(1,,101,0,1,100);>>plot(u)
时间步长与空间步长对稳定性影响 来自淘豆网m.daumloan.com转载请标明出处.