%
% risolve il laplaciano misto con i p1p1
%
% [x,s,u]=p1p1(a,b,n)
%
function [x,s,u]=p1p1(a,b,n)
h=(b-a)/n;
x=(a:h:b)';
%
% costruzione di A
%
A=zeros(n+1,n+1);
A=1/6*h*diag(ones(1,n),-1)+2/3*h*diag(ones(1,n+1))+1/6*h*diag(ones(1,n),1);
A(1,1)=1/3*h; A(n+1,n+1)=1/3*h;
%
% costruzione di B
%
B=zeros(n+1,n+1);
B=-1/2*diag(ones(1,n),-1)+1/2*diag(ones(1,n),1);
B(1,1)=-1/2; B(n+1,n+1)=1/2;
%
% filtriamo il modo spurio
%
C=zeros(1,n+1+n+1);
C(1,n+1+1)=1;
C(1,n+1+n+1)=4*(n/2-ceil(n/2))+1;
%
% la matrice M
%
M=[[A B';B zeros(n+1,n+1)] C';C 0];
%
% il termine noto
%
F=zeros(n+1+n+1+1,1);
F(n+1+1:n+1+n+1)=-g(x)*h;
%
% il calcolo della soluzione
%
X=M\F;
s=X(1:n+1);
u=X(n+2:2*n+2);
