% OCW Universidad de Cantabria
% Cálculo Simbólico y Numérico en Ecuaciones Diferenciales
% © Cursos 2001-2014,  M. Eugenia Pérez, UC
%
function y= galerkinnbc(n)
%lee n el número de elementos de la base 
% 
syms t  
A=ones(n,n); 
f=ones(n,1);
for i=1:n
   f(i)=-double(int(sin((2*i-1)*pi*t/2)*t^2,0,1));
   for j=1:n
      if i==j
         A(i,j)=double(int((((2*i-1)*pi/2)*cos((2*i-1)*pi*t/2))^2,0,1)+int((sin((2*i-1)*pi*t/2))^2,0,1));
               else
         A(i,j)=double(int(((2*i-1)*pi/2)*cos((2*i-1)*pi*t/2)*((2*j+1)*pi/2)*cos((2*j-1)*pi*t/2),0,1)+ int(sin((2*i-1)*pi*t/2)*sin((2*j-1)*pi*t/2),0,1));
       end
      end
   end
 % 
matriz_sistema=A
termino_independiente=f
% 
% 
% 
c=A\f;
coeficientes_solucion=c
% 
% 
% 
u=0;
for i=1:n
   u=u+c(i)*sin((2*i-1)*pi*t/2);
end
% 
solu_aproximada=vpa(u,4) 
% 
% 
v=dsolve('D2y-y=t^2','y(0)=0','Dy(1)=0');
% 
solu_exacta=v  
% 
% 
dt=0:0.05:1;
du=subs(u,t,dt);
ddu=double(du);
plot(dt,ddu,'-- r') 
% 
hold on  
%
ezplot(v,[0,1])
% 
hold off
% 
%   
% 
