Calcul fonction trigonométriques par développement limité
cslcsi
Messages postés8Date d'inscriptionvendredi 21 avril 2006StatutMembreDernière intervention17 novembre 2011
-
7 nov. 2011 à 21:23
cs_Tigrou66
Messages postés11Date d'inscriptionsamedi 17 décembre 2011StatutMembreDernière intervention24 décembre 2011
-
24 déc. 2011 à 09:00
Bonsoir,
Je désire programmer les fonction trigo (sin et cos) en restant en integer voire même
en char me suffirait (pour prog sur un micro).
On sait que, par exemple sin (x) = x - x^3/3! + x^5/5! + Eps(x)
mais ceci uniquement au voisinage de 0
Or il semble que cette formule soit vraie pour tout x entre -pi/2 et pi/2
(vérification rapide sous Excel)
Ma question est :
1) Le DL de sin(x) ci dessus est il vrai pour TOUT x entre -pi/2 et pi/2 ?
2) Si oui, qu'est ce qui permet de dire cela ? (idée de démonstration)
NHenry
Messages postés15118Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention11 mai 2024159 7 nov. 2011 à 22:07
Bonjour,
Quel est le problème exacte ?
"pour prog sur un micro"
Tu vas développer en VB6 pour un microcontroleur ?
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
cslcsi
Messages postés8Date d'inscriptionvendredi 21 avril 2006StatutMembreDernière intervention17 novembre 2011 7 nov. 2011 à 22:14
Bonsoir,
D'abord je veux le simuler en vb6, à priori ma formule
est exacte pour tout x mais je n'en suis pas sur
et si elle est exacte, je désirerais savoir pourquoi.
Ensuite codage en C
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 nov. 2011 à 00:23
Salut
C'est le genre de recherche mathématique qui dépasse le cadre du développement. La programmation te donnera les moyens de vérifier ta fonction point à point, mais ne saura t'expliquer pourquoi.
Perso, "Eps", je ne vois pas trop quelle fonction cela représente.
<Site à visiter>
"[i]mais ceci uniquement au voisinage de 0
Or il semble que cette formule soit vraie pour tout x entre -pi/2 pi/2/i"
Y a quelque chose qui cloche dans ces deux phrases. Entre -Pi/2 et +Pi/2, il y a Pi radians : ça fait une grande étendue et bien loin du 0.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cslcsi
Messages postés8Date d'inscriptionvendredi 21 avril 2006StatutMembreDernière intervention17 novembre 2011 8 nov. 2011 à 21:00
J'ai trouvé exactement la réponse : la formule est vraie pour tout x.
C'est le développement en série entière :
(voir dans le milieu du document la démonstration)
cs_Tigrou66
Messages postés11Date d'inscriptionsamedi 17 décembre 2011StatutMembreDernière intervention24 décembre 2011 24 déc. 2011 à 09:00
Salut ,
sin (x) = x - x^3/3! + x^5/5! + Eps(x) mais en fait Eps(x) lui même de la forme Eps(x)=x^5*eps(x) avec eps(x) tendant vers 0 quand x tend vers 0.
L'erreur que tu commets en remplaçant sin(x) par x - x^3/3! + x^5/5! est donc x^5*eps(x) ; le rapport entre l'erreur commise et x lui même est donc égal à
x^4*eps(x) c'est à dire quelque chose qui tend vers 0 plus vite que x^4 !
Exploitable au voisinage de 0 seulement mais avec un ordre 5 ça n'est pas si mauvais sur l'intervalle dont tu parles et même excellent sur [-1;1]
(il faut faire une étude de la majoration de l'erreur).