Fonctions
Résolu/Fermé
claire
-
18 janv. 2013 à 11:15
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 19 janv. 2013 à 12:44
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 19 janv. 2013 à 12:44
A voir également:
- Fonctions
- Ces codes secrets vous donnent accès aux fonctions cachées de votre smartphone Android - Accueil - Android
- Codes secrets Android : accéder aux fonctions cachées - Guide
- Les fonctions excel en anglais - Guide
- Fonctions de base excel - Guide
- Les fonctions logiques excel - Guide
1 réponse
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
18 janv. 2013 à 20:32
18 janv. 2013 à 20:32
La manière la plus simple c'est simplement d'utiliser la fonction log fournie par la librairie mathématique (attention à bien linker ton programme avec la librairie mathématique) :
Exemple : Voici à quoi ça ressemble pour compiler (ici sous linux) :
Maintenant si j'ai bien compris tu veux recoder le développement limité de ln(1+x). Dans ce cas il faut deux paramètres :
- la valeur de x
- la valeur de n
Ensuite il faut écrire une boucle qui permet de calculer la valeur en ajoutant les termes successifs du développement limité.
Du coup, à moins que tu décommentes les deux lignes en gras,tu n'as plus besoin de linker avec la libm :
Bonne chance
#include <math.h> #include <stdio.h> int main() { double x = 0.03; printf("ln(1 + %lf) = %lf\n", x, log(x + 1)); return 0; }
Exemple : Voici à quoi ça ressemble pour compiler (ici sous linux) :
(mando@silk) (~) $ gcc -W -Wall toto.c -lm && ./a.out log(1 + 0.030000) = 0.029559
Maintenant si j'ai bien compris tu veux recoder le développement limité de ln(1+x). Dans ce cas il faut deux paramètres :
- la valeur de x
- la valeur de n
Ensuite il faut écrire une boucle qui permet de calculer la valeur en ajoutant les termes successifs du développement limité.
//#include <math.h> #include <stdio.h> double ln_vois_1(double x, unsigned n) { unsigned i; double res = 0; double x_i = 1; int sign_i = -1; for(i = 1; i < n; ++i) { x_i *= x; sign_i *= -1; res += sign_i * x_i / i; } return res; } int main() { double x = 0.03; unsigned n = 20; printf("log(1 + %lf) = %lf\n", x, ln_vois_1(x, n)); //printf("log(1 + %lf) = %lf\n", x, log(1 + x)); return 0; }
Du coup, à moins que tu décommentes les deux lignes en gras,tu n'as plus besoin de linker avec la libm :
(mando@silk) (~) $ gcc -W -Wall toto.c && ./a.out log(1 + 0.030000) = 0.029559
Bonne chance
18 janv. 2013 à 20:58
Dans les printf, il est préférable de mettre %f pour les double.
19 janv. 2013 à 12:37
19 janv. 2013 à 12:41
19 janv. 2013 à 12:44