barre_compar.m 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. function barre_compar(U)
  2. % comparaison de la solution numerique et analytique pour
  3. % une colonne soumise à son poids propre
  4. % H.Oudin
  5. global nddln nelt nnode
  6. global Coord Connec Nprop Prop
  7. fa1=@(x) -(6*x/1000).*(1-x/1200); % solution analytique
  8. fa2=@(x) -6*(1-x/600);
  9. taille = get(0,'ScreenSize');
  10. figure('Name','comparaison avec la solution analytique',...
  11. 'Position',[taille(3)/2.01 taille(4)/2.4 taille(3)/2 taille(4)/2])
  12. %----- solution analytique pour l'exemple du chapitre II_3 du cours
  13. subplot(2,1,1), title('deplacement u'), hold on,
  14. fplot(fa1,[0 600],'r')
  15. for iel=1:nelt %----- boucle sur les elements solution numerique
  16. loce=[]; for i=1:nnode loce=[loce,(Connec(iel,i)-1)*nddln+[1:nddln]]; end
  17. Ue=U(loce);
  18. X = Coord(Connec(iel,:)); x2 = X(2); x1=X(1); L = abs(x2-x1);
  19. x=x1:(x2-x1)/5: x2; y=Ue(1)+(Ue(2)-Ue(1))*(x-x1)/L;
  20. plot(x,y,'b')
  21. end
  22. grid
  23. subplot(2,1,2), title('effort normal N'), hold on
  24. fplot(fa2,[0 600],'r') ,
  25. for iel=1:nelt %----- boucle sur les elements solution numerique
  26. loce=[]; for i=1:nnode loce=[loce,(Connec(iel,i)-1)*nddln+[1:nddln]];end
  27. Ue=U(loce);
  28. X = Coord(Connec(iel,:)); x2 = X(2); x1=X(1); L = abs(x2-x1);
  29. ES=Prop(Nprop(iel),1); Ne=(ES/L)*(Ue(2)-Ue(1));
  30. x=[x1:(x2-x1)/5:x2];
  31. y=Ne*ones(1,length(x));
  32. plot(x,y,'b')
  33. end
  34. return