Télécharger jacob4.eso

Retour à la liste

Numérotation des lignes :

jacob4
  1. C JACOB4 SOURCE GOUNAND 25/10/27 21:15:02 12387
  2. subroutine jacob4(a,idim,d,x)
  3. C======================================================================
  4. C OBJET
  5. C -----
  6. C DIAGONALISATION D UNE MATRICE 3*3 SYMETRIQUE
  7. C
  8. C ENTREES
  9. C -------
  10. C A(3,3) = MATRICE SYMETRIQUE
  11. C IDIM = 2 OU 3 SI 2 ON NE S OCCUPE QUE DE A(2,2)
  12. C SI 3 DE A(3,3)
  13. C SORTIES
  14. C -------
  15. C D(3) = VALEURS PROPRES ORDONNEES D(1)>D(2)>D(3)
  16. C
  17. C S(3,3) = VECTEURS PROPRES ( S(IP,2) EST LE VECTEUR
  18. C ASSOCIE A D(2) )
  19. C
  20. C Gounand 2025/10 On renvoie sur jacob3.eso plus robuste et precise
  21. C===============================================================
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8 (A-H,O-Z)
  24. dimension a(3,3),d(3),x(3,3)
  25. call jacob3(a,idim,d,x)
  26. return
  27. * Old source
  28. if (idim.ne.3) then
  29. call jacob2(a,d,x)
  30. return
  31. endif
  32. c2=-a(1,1)-a(2,2)-a(3,3)
  33. c1= (a(1,1)*a(2,2)+a(2,2)*a(3,3)+a(3,3)*a(1,1))
  34. & - a(1,3)**2 - a(1,2)**2 - a(2,3)**2
  35. c0=-2.*a(1,2)*a(1,3)*a(2,3) + a(1,1)*a(2,3)**2
  36. & + a(2,2)*a(1,3)**2 + a(3,3)*a(1,2)**2
  37. & - a(1,1)*a(2,2)*a(3,3)
  38. call degre3(c0,c1,c2,d1,XI1,d2,XI2,d3,XI3)
  39. d(1)=max(d1,d2,d3)
  40. d(3)=min(d1,d2,d3)
  41. d(2)=d1+d2+d3-d(1)-d(3)
  42. deps=d(1)*1.e-4
  43. if (d(1)-d(2).le.deps) then
  44. * valeur propre double
  45. if (d(2)-d(3).le.deps) then
  46. * valeur propre triple
  47. call vectp(a,d(1),x(1,1),3)
  48. else
  49. call vectp(a,d(1),x(1,1),2)
  50. call vectp(a,d(3),x(1,3),1)
  51. endif
  52. else
  53. deps=d(2)*1.e-4
  54. if (d(2)-d(3).le.deps) then
  55. * valeur propre double
  56. call vectp(a,d(1),x(1,1),1)
  57. call vectp(a,d(2),x(1,2),2)
  58. else
  59. * cas normal
  60. call vectp(a,d(1),x(1,1),1)
  61. call vectp(a,d(2),x(1,2),1)
  62. call vectp(a,d(3),x(1,3),1)
  63. endif
  64. endif
  65. end
  66. *
  67.  
  68.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales