function Equation_diff1(n) ################################################# # Fonction permettant la resolution de l'equation differentielle: # u"(x)+3xu'(x)+7u(x)=cos(2x); u(0)=1 et u(pi)=0 # Arguments d'entree: # n=nombre d'elements # # ################################################# # Auteur: Ambroise BROU # Fev. 2007 ################################################# x=[0:pi/n:pi]'; # vecteur contenant les coordonnees des differents noeuds K=zeros(n+1); # initialisation de la matrice de raideur K: n+1 lignes et n+1 colonnes F=zeros(n+1,1); # initialisation de F: vecteur a n+1 lignes for i=1:n # initialisation du compteur de boucle j=i+1; # t=[i,j]; # matrice de connectivite x1=x(i); # coordonnees i de l'element x2=x(j); # coordonnees j de l'element [Ke,Fe]=Calcul_Mat_element(x1,x2); # calcul de la matrice et du vecteur de charge elementaire K(t,t)=K(t,t)+Ke; # assemblage de la matrice de raideur F(t)=F(t)+Fe; # assemblage du vecteur de charge endfor; # fin de boucle ##################################### Application des conditions aux limites F=F-1*K(:,1); # prise en compte de la valeur u(0)=1 K(n+1,:)=[]; # suppression de la n+1 ieme ligne de K K(:,n+1)=[]; # suppression de la n+1 ieme colonne de K K(1,:)=[]; # suppression de ligne 1 de K K(:,1)=[]; # suppression de colonne 1 de K F(n+1)=[]; # suppression de la n+1 ieme ligne de F F(1)=[]; # suppression de la ligne 1 de K ##################################### U=K\F; # calcul de U U=[1;U;0]; # ajout des valeurs initiales et finales plot(x,U); # tracee de U en fonction de x endfunction