用matlab求解抛物型方程,用最简隐格式(向后差分格式)求解抛物型方程要用matlab求解,但是不能用里面的求微分方程的工具来求解,就是自己编程序,要有图示的啊,并与最后的精确值2exp[(-(pi)t/4
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 02:35:45
用matlab求解抛物型方程,用最简隐格式(向后差分格式)求解抛物型方程要用matlab求解,但是不能用里面的求微分方程的工具来求解,就是自己编程序,要有图示的啊,并与最后的精确值2exp[(-(pi)t/4
用matlab求解抛物型方程,用最简隐格式(向后差分格式)求解抛物型方程
要用matlab求解,但是不能用里面的求微分方程的工具来求解,就是自己编程序,要有图示的啊,并与最后的精确值2exp[(-(pi)t/4)sin2(pi)x]验证,
用matlab求解抛物型方程,用最简隐格式(向后差分格式)求解抛物型方程要用matlab求解,但是不能用里面的求微分方程的工具来求解,就是自己编程序,要有图示的啊,并与最后的精确值2exp[(-(pi)t/4
你的精确定绝对有问题.
你自己将精确解代入那个泛定方程,或者初值都不符的.
%一维热传导方程的差分格式
k=1/16;
xleft=0;
xright=1;
tend=0.2;%时间终值
dx=0.1;
dt=0.05;
n=(xright-xleft)/dx;
x=xleft:dx:xright;
beta=k*dt/dx/dx;
A=diag((1+2*beta*ones(n+1,1)))+diag(-beta*ones(n,1),1)+diag(-beta*ones(n,1),-1);
Q=dt/gou/c*ones(n+1,1);
%边界条件
A(1,1)=1;
A(1,2)=0;
A(end,end)=1;
A(end,end-1)=0;
T0=25*log(2*pi*x(:));
Tseriers=T0;
leg_info{1}='t=0';
T=T0;
i=1;
for t=0:dt:tend
i=i+1;
right=T+Q;
%边界条件
right(1)=0;
right(end)=0;
T=A\right;
Tseriers=[Tseriers,T];
leg_info{i}=['t=',num2str(t)];
end
%plot(x,Tseriers)
%legend(leg_info)
plot(x,T,x,2*exp(-pi*tend/4)*sin(2*pi*x),'r*')
legend({['T=',num2str(tend)],'精确解'})