%-------------------------------------------
% This function creates the Toeplitz matriz in sparse format
%-------------------------------------------
function K  =  MyToeplitzSparse(n)
   
RowIndex     =  zeros(3*(n-2) + 4,1);  % Inicializamos Fila index
ColumnIndex  =  zeros(3*(n-2) + 4,1);  % Inicializamos Columna index
Data         =  zeros(3*(n-2) + 4,1);  % Inicializamos vector de datos
  
RowIndex(1:2)                         =  [1;1]; % Introducimos Fila index para 
                                                % los dos primeros términos 
ColumnIndex(1:2)                      =  [1;2]; % Introducimos Columna indexpara 
                                                % los dos primeros términos
RowIndex(2+3*(n-2)+1:2+3*(n-2)+2)     =  [n;n]; % Introducimos Fila index para 
                                                % los dos últimos términos
ColumnIndex(2+3*(n-2)+1:2+3*(n-2)+2)  =  [n-1;n];% Introducimos Columna indexpara 
                                                % los dos últimos términos
Data(1:2)                             =  [2;-1]; % Introducimos datos para 
                                                 % los dos primeros términos
Data(2+3*(n-2)+1:2+3*(n-2)+2)         =  [-1;2]; % Introducimos datos para 
                                                % los dos últimos términos
for inode=2:n-1
  RowIndex(2+3*(inode-2)+1)  =  inode;
  RowIndex(2+3*(inode-2)+2)  =  inode;
  RowIndex(2+3*(inode-2)+3)  =  inode;

  ColumnIndex(2+3*(inode-2)+1)  =  inode-1;
  ColumnIndex(2+3*(inode-2)+2)  =  inode;
  ColumnIndex(2+3*(inode-2)+3)  =  inode+1;
  
  Data(2+3*(inode-2)+1)    =  -1;
  Data(2+3*(inode-2)+2)    =  2;
  Data(2+3*(inode-2)+3)    =  -1;  
end

K  =  sparse(RowIndex,ColumnIndex,Data,n,n); 
end