function [U x t]=PDEParabolicClassicalImplicit(ux,uT,phi,psi1,psi2,M,N,C)
%古典隐式格式求解抛物型偏微分方程
%计算步长
dx=ux/M;%x的步长
dt=uT/N;%t的步长
x=(0:M)*dx;
t=(0:N)*dt;
r=C*dt/dx/dx;%步长比
Diag=zeros(1,M-1);%矩阵的对角线元素
Low=zeros(1,M-2);%矩阵的下对角线元素
Up=zeros(1,M-2);%矩阵的上对角线元素
for i=1:M-2
Diag(i)=1+2*r;
Low(i)=-r;
Up(i)=-r;
end
Diag(M-1)=1+2*r;
%计算初值和边值
U=zeros(M+1,N+1);
for i=1:M+1
U(i,1)=phi(x(i));
end
for j=1:N+1
U(1,j)=psi1(t(j));
U(M+1,j)=psi2(t(j));
end
%逐层求解,需要使用追赶法(调用函数EqtsForwardAndBackward)
for j=1:N
b1=zeros(M-1,1);
b1(1)=r*U(1,j+1);
b1(M-1)=r*U(M+1,j+1);
for i=2:M
b=U(i,j)+b1+dt*(x(i)^2-2*t(j+1)-2);
U(2:M,j+1)=EqtsForwardAndBackward(Low,Diag,Up,b);
end
end
U=U';
return;