1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
clear all; close all; kw=10; Nvec=32:2:76;
L2_Err=[]; Max_Err=[];
for N=Nvec [xv,wv]=jags(N+1,-1/2,-1/2); Cm=japolym(N,-1/2,-1/2,xv)./japolym(N,-1/2,-1/2,1); u=sin(kw*pi*xv); f=kw*kw*pi^2*sin(kw*pi*xv)+sin(kw*pi*xv); S=zeros(N-1); for k=1:N-1 for j=1:N-1 if k==j S(k,j)=2*pi*k*(k+1); elseif (k<j && mod(j-k,2)==0) S(k,j)=4*pi*k; else S(k,j)=0; end end end M=diag([3/2*pi, pi*ones(1,N-2)])+diag(-pi/2*ones(1,N-3),2)... +diag(-pi/2*ones(1,N-3),-2); A=S+M; Pm=Cm(1:end-2,:)-Cm(3:end,:); b=Pm*diag(wv)*f; uh=A\b; un=Pm'*uh; L2_err=sqrt(((un-u).^2)'*wv); Max_err=norm(abs(un-u),inf); L2_Err=[L2_Err;L2_err]; Max_Err=[Max_Err;Max_err]; end
plot(Nvec,log10(L2_Err),'bo-','MarkerFaceColor','w','LineWidth',1) hold on plot(Nvec,log10(Max_Err),'rd-','MarkerFaceColor','w','LineWidth',1) grid on legend('L^2 error','L^{\infty} error','location','NorthEast')
set(gca,'fontsize',12) xlabel('N','fontsize', 14), ylabel('log_{10}Error','fontsize',14)
xticks(30:10:80) yticks(-14:2:0) xlim([30 80]) ylim([-14 0])
|