|
|
能否帮我看一下如下解偏微分方程的代码,这是采用的什么数值解法,有限差分?但看着公式不像
NN=20;
hk=1/NN;
RT=[(1-1/sqrt(3))/2 (1+1/sqrt(3))/2]';
H=[(1-RT).^2.*(1+2*RT) RT.*(1-RT).^2 RT.^2.*(3-2*RT) RT.^2.*(RT-1)];
A=[6*RT.*(RT-1) (1-RT).*(1-3*RT) -6*RT.*(RT-1) RT.*(3*RT-2)];
B=[12*RT-6 6*RT-4 6-12*RT 6*RT-2];
E=diag([1,hk,1,hk]);
H=H*E; A=A*E; B=B*E;
MatrixM=zeros(2*NN,2*NN);
MatrixH=zeros(2*NN+2,2*NN+2);
MatrixA=zeros(2*NN+2,2*NN+2);
MatrixB=zeros(2*NN+2,2*NN+2);
for i=1:NN
MatrixM(2*i-1:2*i,2*i-1:2*i+2)=H(:, ;
MatrixH(2*i:2*i+1,2*i-1:2*i+2)=H(:, ;
MatrixA(2*i:2*i+1,2*i-1:2*i+2)=A(:, ;
MatrixB(2*i:2*i+1,2*i-1:2*i+2)=B(:, ;
end
%MatrixH(2*NN+1:2*NN+2,2*NN:2*NN+2)=H(:,[1 2 3]);
%MatrixA(2*NN+1:2*NN+2,2*NN:2*NN+2)=A(:,[1 2 3]);
%MatrixB(2*NN+1:2*NN+2,2*NN:2*NN+2)=B(:,[1 2 3]);
MatrixH(1,1)=1;
MatrixH(1,2)=-1/Peclet; %Peclet就是一个具体数
MatrixH(2*NN+2,2*NN+2)=1;
MatrixH;
MatrixA;
MatrixB;
%--------------------------------------------------------------------------
A=MatrixA/hk; |
|