Advertisement
Guest User

Untitled

a guest
May 26th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. class EDO1Systeme {
  2. protected:
  3. int D,N;
  4. Vecteur yf; // Valeurs de y(xf) stockees ici par rk4()
  5. double *xtab;
  6. Vecteur *ytab, *yptab;
  7. void stocke(int i,double x, Vecteur y, Vecteur yp);
  8. public:
  9. EDO1Systeme(int Di, int Ni); // <--- Constructeur complet, avec allocation
  10. // des tableaux, defini dans le .cpp
  11. ~EDO1Systeme(); // Destructeur
  12.  
  13.  
  14.  
  15. // La methode evalyp(x, y) qui donne y' (et definit donc le probleme)
  16. // est ici virtuelle pure, on fera deriver une classe de EDO1Systeme
  17. // pour chaque probleme a resoudre
  18. virtual Vecteur evalyp(double x, Vecteur y)=0;
  19.  
  20. Vecteur rk2(double x0, Vecteur y0, double xf);
  21. double getyf(int i) { return yf(i); }
  22. // Methodes pour ecrire le resultat de l'integration dans un fichier
  23. void ecrirexyz(const char * nom_fichier);
  24. void ecrirexyzROOT(const char * nom_fichier, int G);
  25. };
  26.  
  27. class EDO2 : public EDO1Systeme {
  28. private:
  29. public:
  30. // Quand on fait deriver une classe B d'une classe A, on recycle le constructeur
  31. // de A pour fixer les attributs de A
  32. EDO2(int Ni) : EDO1Systeme(4,Ni) {}
  33. // evalyp est redefinie pour obtenir le systeme d'ordre 1
  34. // equivalent a l'equation d'ordre 2...
  35. Vecteur evalyp(double x, Vecteur y)
  36. {
  37. Vecteur v(4);
  38. v(1)=y(2);
  39. v(2)=evalys(x, y);
  40. v(3)=y(4);
  41. v(4)=evalyss(x, y);
  42. return v;
  43. }
  44. // ...definie par evalys() qui donne y'' = f(x, y').
  45.  
  46. double evalys(double x, Vecteur y);
  47.  
  48.  
  49. double evalyss(double x, Vecteur y);
  50.  
  51.  
  52.  
  53. // On "renomme" aussi la methode "get" qui permet de recuperer
  54. // y'(xf) = z(xf). getyf() est definie dans EDO2
  55. double getypf() { return getyf(2); }
  56. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement