Maths en C++ (Dev cpp)

Signaler
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
-
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
-
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

Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
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
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014

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.
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
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
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014

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
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
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
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014

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.