
function [P]=ajouter_dipole(A,na,nb,Y)
  P=A
  P(na,na)=P(na,na)+Y
  P(na,nb)=P(na,nb)-Y
  P(nb,nb)=P(nb,nb)+Y
  P(nb,na)=P(nb,na)-Y
endfunction                
                
function [P]=ajouter_resistance(A,na,nb,R)
  P=ajouter_dipole(A,na,nb,1/R)
endfunction

function [P]=ajouter_capacite(A,na,nb,C)
  P=ajouter_dipole(A,na,nb,poly(0,'s')*C)
endfunction

function [P]=ajouter_inductance(A,na,nb,L)
  P=ajouter_dipole(A,na,nb,1/(poly(0,'s')*L))
endfunction
                
function [P,Q]=ajouter_source_tension_continue(A,B,na,nb,U)
  P=A
  Q=B
  N=size(P,'c')
  P(na,:)=zeros(1,N)
  P(nb,:)=zeros(1,N)
  P(na,na)=1
  P(na,nb)=-1
  Q(na)=-U
  P(nb,nb)=-1
  P(nb,na)=1
  Q(nb)=-U
endfunction
                
function [P,Q]=ajouter_source_STCT(A,B,na,nb,nca,ncb,g)
  P=A
  Q=B
  N=size(P,'c')
  P(na,:)=zeros(1,N)
  P(nb,:)=zeros(1,N)
  P(na,na)=1
  P(na,nb)=-1
  P(na,nca)=-g
  P(na,ncb)=g
  Q(na)=0
  P(nb,nb)=-1
  P(nb,na)=1
  P(nb,nca)=-g
  P(nb,ncb)=g
  Q(nb)=0
endfunction
                
function [P,Q]=ajouter_masse(A,B,n0)
  P=A
  Q=B
  P(n0,:)=zeros(1,size(P,'c'))
  P(n0,n0)=1
  Q(n0)=0
endfunction
                
function [P,Q]=definir_entree(A,B,ne)
  P=A
  Q=B
  N=size(P,'c')
  P(ne,:)=zeros(1,N)
  P(ne,ne)=1
  Q(ne)=-1
endfunction
                
function [w,db,phi]=reponse(A,B,noeud,lgmin,lgmax,np)
  w=logspace(lgmin,lgmax,np)
  H=w
  for i=1:np,
    M=horner(A,%i*w(i))
    [x0,ker]=linsolve(M,B)
    H(i)=x0(noeud)
  end;
  [db,phi]=dbphi(H)
endfunction
                    