Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class EDO1Systeme {
- protected:
- int D,N;
- Vecteur yf; // Valeurs de y(xf) stockees ici par rk4()
- double *xtab;
- Vecteur *ytab, *yptab;
- void stocke(int i,double x, Vecteur y, Vecteur yp);
- public:
- EDO1Systeme(int Di, int Ni); // <--- Constructeur complet, avec allocation
- // des tableaux, defini dans le .cpp
- ~EDO1Systeme(); // Destructeur
- // La methode evalyp(x, y) qui donne y' (et definit donc le probleme)
- // est ici virtuelle pure, on fera deriver une classe de EDO1Systeme
- // pour chaque probleme a resoudre
- virtual Vecteur evalyp(double x, Vecteur y)=0;
- Vecteur rk2(double x0, Vecteur y0, double xf);
- double getyf(int i) { return yf(i); }
- // Methodes pour ecrire le resultat de l'integration dans un fichier
- void ecrirexyz(const char * nom_fichier);
- void ecrirexyzROOT(const char * nom_fichier, int G);
- };
- class EDO2 : public EDO1Systeme {
- private:
- public:
- // Quand on fait deriver une classe B d'une classe A, on recycle le constructeur
- // de A pour fixer les attributs de A
- EDO2(int Ni) : EDO1Systeme(4,Ni) {}
- // evalyp est redefinie pour obtenir le systeme d'ordre 1
- // equivalent a l'equation d'ordre 2...
- Vecteur evalyp(double x, Vecteur y)
- {
- Vecteur v(4);
- v(1)=y(2);
- v(2)=evalys(x, y);
- v(3)=y(4);
- v(4)=evalyss(x, y);
- return v;
- }
- // ...definie par evalys() qui donne y'' = f(x, y').
- double evalys(double x, Vecteur y);
- double evalyss(double x, Vecteur y);
- // On "renomme" aussi la methode "get" qui permet de recuperer
- // y'(xf) = z(xf). getyf() est definie dans EDO2
- double getypf() { return getyf(2); }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement