% OCW Universidad de Cantabria
% Cálculo Simbólico y Numérico en Ecuaciones Diferenciales
% © Cursos 2001-2014,  M. Eugenia Pérez, UC
%
function y = elementosfinitosexg1(n)
 %
h=1/(n+1);
x=ones(n+2,1);
for i=1:n+2
   x(i)=(i-1)*h;
end
% 
% 
syms t;   
q=-t^3; 
r=exp(t^2); 
R=ones(n,1); 
S=ones(n,1);
Q=ones(n,1);
f=ones(n,1);
a1=ones(n,1);
amenos1=ones((n-1),1);
mas1=ones((n-1),1);
% 
for i=1:n
   R(i)=double(int(q*(t-x(i+2))^2,x(i+1),x(i+2)));
   Q(i)= double(int(q*(t-x(i))^2,x(i),x(i+1)));
   S(i)=double(int(q*(t-x(i))*(t-x(i+1)),x(i),x(i+1)));
   f(i)=double((1/h)*int(r*(t-x(i)),x(i),x(i+1))+(1/h)*int(r*(-t+x(i+2)),x(i+1),x(i+2)));
end
%
S1menos=S(2:n);
%  
a1= (1/h^2)*(-2*h*ones(n,1)+Q+R);  
% 
amenos1=(1/h^2)*(h*ones((n-1),1)-S1menos);  
% 
amas1=amenos1;   
% 
A=diag(a1)+diag(amas1,1)+diag(amenos1,-1); % matriz tridiagonal A
% 
matriz_sistema=A
termino_independiente=f
% 
c=A\f;
coeficientes_solucion=c
% 
Nodo_y_Aproximacionsolucion=[x,[0;c;0]]
%  
plot(x,[0;c;0],'--')

