Maths en C++ (Dev cpp)

sokpassy85 Messages postés 64 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 25 novembre 2014 - 20 juil. 2010 à 16:51
sokpassy85 Messages postés 64 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 25 novembre 2014 - 21 juil. 2010 à 15:17
Bonjour,

Je suis confronté depuis hier à un problème pour manipuler des expressions mathématiques.

J'obtiens un résultat erroné quand j'exécute mon programme. Dans cette expression ci-dessous seule la t1(n'est pas initialisée donc elle n'est pas affectée à aucune valeur), qui est une variable inconnue. Je m'attendais à obtenir un résultat pour "L'expression de H1(f): NA" à la place j'obtiens une valeur numérique.

Savez vous pourquoi? Je travaille sous Dev cpp.


x1 = (-2)/(b*b)*((t1-(1+(-2)*2*g)*fsupv))*((t1-(1+(-2)*2*g)*fsupv));

std::cout <<" L'expression de H1(f) : " << exp(x1) << std::endl;

6 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
20 juil. 2010 à 21:31
Une valeur non initialisée prend la valeur de l'espace mémoire ou elle se trouve. Une valeur non initialisée à donc une valeur indéterminée (Pour vulgariser, elle vaut "aléatoire").

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
sokpassy85 Messages postés 64 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 25 novembre 2014
20 juil. 2010 à 22:35
Salut,

D'abord merci. Au faite je ne veux pas l'initialiser. Cette même variable (t1) est utilisée par une autre expression (E(f)). Je dois calculer l'intégrale du produit E(f).H1(f). Je voudrais que ces fonctions gardent leur formes littéraires pour que je puisse calculer l'intégrale.

Comment je dois la déclarer pour éviter ces genres problèmes ou bien c'est impossible?

Merci d'avance.
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
21 juil. 2010 à 10:05
Je n'ai pas tout compris.

Tout ce que je peux te dire, c'est qu'une variable doit forcément être initialisé avant son utilisation, sinon le comportement de ton programme sera indéterminé.

Si tu souhaites ne calculer qu'une partie, alors tu n'as pas le choix, il te faut passer par ce que l'on appelle un foncteur.
Tu commences par remplir toutes tes variables: (b, g et fsupv). Une fois enregistré, il ne te reste qu'a donner t1.

Je te donne un exemple:
#include 

class Integral
{
public:
  Integral(double b, double g, double fsupv)
    : _b(b), _g(g), _fsupv(fsupv)
  {
  }

  double operator()(double t1)
  {
    return (-2) / (_b * _b) *
      ((t1 - (1 + (-2) * 2 * _g) * _fsupv)) *
      ((t1 - (1 + (-2) * 2 * _g) * _fsupv));
  }
private:
  const double	_b;
  const double	_g;
  const double	_fsupv;
};

int main()
{
  Integral integral(5, 78, 45);

  double x1 = integral(8);
  std::cout << x1 << std::endl;

  std::cout << integral(10) << std::endl;
  std::cout << integral(789) << std::endl;

  return 0;
}


________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
sokpassy85 Messages postés 64 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 25 novembre 2014
21 juil. 2010 à 13:14
Bonjour,

Au faite j'ai deux expressions: H(f) et E(f).

H(f) = exp((-2)/(b*b)*((t1-(1+(-2)*2*g)*fsupv))*((t1-(1+(-2)*2*g)*fsupv)))

E(f) = exp((-2)/(b1*b1)*(t1-fsupv)).

Je veux calculer l'intégral du produit de ces deux fonctions avec t1 comme variable. Les valeurs des variables b, b1 et fsupv sont connues. J'ai fait un changement de variables:
x1 = (-2)/(b*b)*((t1-(1+(-2)*2*g)*fsupv))*((t1-(1+(-2)*2*g)*fsupv))
z = (-2)/(b1*b1)*(t1-fsupv) par ce que je n'arrive pas à les écrire comme ci dessus. J'ai pensé à faire un développement limité de la fonction exponentielle ensuite faire le produit et ensuite calculer la primitive. Je vais perdre de l'information en faisant ainsi. Donc je souhaiterai utiliser les fonctions comme ci dessus.

Merci,

Ibrahima
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
21 juil. 2010 à 14:32
Je ne comprends absolument pas ce que tu veux. Il faut que tu sois plus clair.

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
sokpassy85 Messages postés 64 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 25 novembre 2014
21 juil. 2010 à 15:17
Salut,


J'ai deux fonctions exponentielles (voir sur post précédent) qui utilisent la même variable t1. Je souhaite calculer l'intégral du produit de ces deux fonctions. Je crois je vais y arriver. J'ai décidé de faire le calcul manuellement(produit de deux exponentielles ensuite je calcule la primitive). Je crois ça va marcher. Je te tiendrais courant.

Merci,

Ibrahima.
0
Rejoignez-nous