跪求MATLAB解抛物型偏微分方程的程序 1,不一定有效果,因为pdetool具体编程是不知道的,如果解决小问题两者的结果一样说明不了什麽问题,尤其对于偏微分方程。2有限元的边界必须固定,从数理方程上讲静态有限元问题就是边值问题,如果边界变化的话,初始一下别的专业有限元软件,比如anasys,adima等。
求解二维抛物线型偏微分方程matlab程序 function[u,x,y,t]=TDE(A,D,T,ixy0,bxyt,Mx,My,N)解方程 u_t=c(u_xx+u_yy)for D(1)(2),D(3)(4),0初值:u(x,y,0)=ixy0(x,y)边界条件:u(x,y,t)=bxyt(x,y,t)for(x,y)cBMx/My:x轴和y轴的等分段数N:t 轴的等分段数dx=(D(2)-D(1))/Mx;x=D(1)+[0:Mx]*dx;dy=(D(4)-D(3))/My;y=D(3)+[0:My]'*dy;dt=T/N;t=[0:N]*dt;初始化ufor i=1:Mx+1for j=1:My+1u(i,j)=ixy0(x(i),y(j));endendrx=A*dt/(dx*dx);rx1=1+2*rx;rx2=1-2*rx;ry=A*dt/(dy*dy);ry1=1+2*ry;ry2=1-2*ry;for i=1:Mx-1%(11.2.21a)P(i,i)=ry1;if i>;1P(i-1,i)=-ry;P(i,i-1)=-ry;endendfor j=1:My-1%(11.2.21b)Q(j,j)=rx1;if j>;1Q(j-1,j)=-rx;Q(j,j-1)=-rx;endendfor k=1:Nu_1=u;t=k*dt;for i=1:Mx+1%边界条件u(i,1)=feval(bxyt,x(i),y(1),t);u(i,My+1)=feval(bxyt,x(i),y(My+1),t);endfor j=1:My+1u(1,j)=feval(bxyt,x(1),y(j),t);u(Mx+1,j)=feval(bxyt,x(Mx+1),y(j),t);endif mod(k,2)=0for i=2:Mxj=2:My;bx=[ry*u(i,1)zeros(1,Mx-3)ry*u(i,My+1)]+rx*(u_1(i-1,j)+u_1(i+1,j))+rx2*u_1(i,j);u(i,j)=linsolve(P,bx');(11.2.21a)endelsefor j=2:Myi=2:Mx;by=[rx*u(1,j);zeros(My-3,1);rx*u。
求解抛物线型偏微分方程matlab程序 MATLAB提供两种解决PDE问题:pdepe()函数求2113解般5261PDEs据用较通用性支持命令4102行形式调用二PDE工具箱求解特殊PDE问题1653PDEtool较局限性比能求解二阶PDE问题并且能解决偏微程组提供GUI界面繁杂编程解脱同通File->;Save As直接M代码MATLAB语言提供pdepe()函数直接求解般偏微程(组)调用格式sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t)【输入参数】pdefun:PDE问题描述函数必须换面标准形式PDE编写面入口函数[c,f,s]=pdefun(x,t,u,du)m,x,t应于(式1)相关参数duu阶导数由给定输入变量即表示c,f,s三函数pdebc:PDE边界条件描述函数必须先化面形式于边值条件编写面函数描述[pa,qa,pb,qb]=pdebc(x,t,u,du)其a表示边界b表示边界pdeic:PDE初值条件必须化面形式股我使用面简单函数描述u0=pdeic(x)m,x,t:应于(式1)相关参数【输参数】sol:三维数组sol(:,:,i)表示ui解换句说uk应x(i)t(j)解sol(i,j,k)通sol我使用pdeval()直接计算某点函数值