function fx=WENO_5(f,N,A,dx)
ep=10^(-6);
for j=4:N-1
p=2;
C1=1/10; C2=6/10; C3=3/10;
IS11(j)=1/4*(f(j-2)-4*f(j-1)+3*f(j)).^2+13/12*(f(j-2)-2*f(j-1)+f(j)).^2; %j+1/2
IS12(j)=1/4*(f(j-3)-4*f(j-2)+3*f(j-1)).^2+13/12*(f(j-3)-2*f(j-2)+f(j-1)).^2;%j-1/2
a11(j)=C1./((ep+IS11(j)).^p); %j+1/2
a12(j)=C1./((ep+IS12(j)).^p); %j-1/2
q11p(j)=1/3*f(j-2)-7/6*f(j-1)+11/6*f(j); %j+1/2
q12p(j)=1/3*f(j-3)-7/6*f(j-2)+11/6*f(j-1);%j-1/2
IS21(j)=1/4*(f(j-1)-f(j+1)).^2+13/12*(f(j-1)-2*f(j)+f(j+1)).^2; %j+1/2
IS22(j)=1/4*(f(j-2)-f(j)).^2+13/12*(f(j-2)-2*f(j-1)+f(j)).^2;%j-1/2
a21(j)=C2./((ep+IS21(j)).^p); %j+1/2
a22(j)=C2./((ep+IS22(j)).^p); %j-1/2
q21p(j)=-1/6*f(j-1)+5/6*f(j)+1/3*f(j+1); %j+1/2
q22p(j)=-1/6*f(j-2)+5/6*f(j-1)+1/3*f(j); %j-1/2
IS31(j)=1/4*(3*f(j)-4*f(j+1)+f(j+2)).^2+13/12*(f(j)-2*f(j+1)+f(j+2)).^2; %j+1/2
IS32(j)=1/4*(3*f(j-1)-4*f(j)+f(j+1)).^2+13/12*(f(j-1)-2*f(j)+f(j+1)).^2; %j-1/2
a31(j)=C3./((ep+IS31(j)).^p); %j+1/2
a32(j)=C3./((ep+IS32(j)).^p); %j-1/2
q31p(j)=1/3*f(j)+5/6*f(j+1)-1/6*f(j+2); %j+1/2
q32p(j)=1/3*f(j-1)+5/6*f(j)-1/6*f(j+1); %j-1/2
w11=a11./(a11+a21+a31); %j+1/2
w12=a12./(a12+a22+a32); %j-1/2
w21=a21./(a11+a21+a31); %j+1/2
w22=a22./(a12+a22+a32); %j-1/2
w31=a31./(a11+a21+a31); %j+1/2
w32=a32./(a12+a22+a32); %j-1/2
qxp=A*((w11.*q11p-w12.*q12p)+(w21.*q21p-w22.*q22p)+(w31.*q31p-w32.*q32p));
fx=qxp./dx;
end
%边界点处理
fx(1)=fx(4);
fx(2)=fx(4);
fx(3)=fx(4);
fx(N)=fx(N-1);
fx(N+1)=fx(N-1);
end
评论0