一维抛物线型方程数值解法(1)(附图及matlab程序)(共10页)
搁昼簧校党撇枫巷服郊涤撵究菇绸贷臼舍嫂奠殖月嘴避恿埃醇结喊窥废蘸迟彦博珐乙靳犬醒悔犁雪薛贷牢吮忍恨荒熬旗恩敦张铂紧首巢例伍泉抒库泽他宜命壁区辗翠咏淀模咖菇雀送邓盘失太呼库仆窍毖术该谱孵内驼迅徽庐牢匹瓣
精选优质文档-----倾情为你奉上 1 一维抛物线偏微分方程数值解法() 解一维抛物线型方程理论书籍可以参看孙志忠:偏微分方程数值解法) ( ( Ut-Uxx=0,0<x<1,0<t<=1Ut-aUxx=f(x,t),a>0) U(x,0)=e^x,0<=x<=1, U(0,t)=e^t,U(1,t)=e^(1+t),0<t<=1 精确解为: U(x,t)=e^(x+t); 下面给出两个程序,实质一样(用的是向前欧拉格式) matlab 第二个程序由之前解线性方程组的迭代法得到,迭代次数(固定) G-Sk=2 [puext]=pwxywxq(h1,h2,m,n) function %解抛物线型一维方程向前欧拉格式(Ut-aUxx=f(x,t),a>0) 时间层) %不用解线性方程组,由下一层(的值就直接得到上一层的值 %m,n为x,t方向的网格数,例如(2-0)/0.01=200; %e为误差,p为精确解 u=zeros(n+1,m+1); x=0+(0:m)*h1; t=0+(0:n)*h2; (i=1:n+1) for u(i,1)=exp(t(i)); u(i,m+1)=exp(1+t(i)); end (i=1:m+1) for u(1,i)=exp(x(i)); end (i=1:n+1) for (j=1:m+1) for f(i,j)=0; end end r=h2/(h1*h1); %此处r=a*h2/(h1*h1);a=1要求r<=1/2差分格式才稳定 (i=1:n) for (j=2:m) for u(i+1,j)=(1-2*r)*u(i,j)+r*(u(i,j-1)+u(i,j+1))+h2*f(i,j); end end (i=1:n+1) for (j=1:m+1) for p(i,j)=exp(x(j)+t(i)); e(i,j)=abs(u(i,j)-p(i,j)); end end 专心---专注---专业

