begin process at 2010 02 10 09:34:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

approximation cos sin tan ...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

approximation cos sin tan ...

mercredi 5 novembre 2003 à 19:46:14 | approximation cos sin tan ...

mat74

salut je cherche des algorithmes pr calculer cos , sin , tan et leur inverse . Si vous en connaissez simple ou compliqués tt m'interesse.
si vs avez 1 algo pr calculer les puissance decimal comme 2^2.5 ou 5^8.05 .

merci
jeudi 6 novembre 2003 à 12:41:54 | Re : approximation cos sin tan ...

leptidev


Utilise les développements limités :

sin x = x + x^3 / 3! ....

cos x = 1 + x^2/2! ....

tan x = sin x / cos x

Pour les puissances :

ln (2^2.5) = 2.5 * ln (2)
et 2^2.5 = exp (ln(2^2.5))

Essaye ça pour voir, merci les cours de math spé !
jeudi 6 novembre 2003 à 16:41:28 | Re : approximation cos sin tan ...

garslouche

1) Les cours de maths de sup suffisent amplement, je crois même que ça se fait à la fac en 1ère année....

2) tu m'expliques comment tu te retrouves avec cos(x) > 1 ???
le DL de cos(x) en 0 est:
1 - x^2/2! + x^4/4! - ...

3) Les dévelopements limités se font en 1 point.....
Pour les fonctions cos ou sin c'est effectivement ce qu'il faut faire mais ça n'est pas tout.
Par exemple pour cos:

tu te fixes une limite de précision par exemple 0.0001
si ton argument est + grand tu utilise la trigo : cos(2x) = 2*cos²(x) - 1
Pour calculer cos(x) :

fonction cos(x)
{
....si x<0
........retourne cos(-x)
....sinon
....{
........si x<0.0001
............retourne 1-x^2/2 + x^4/24
........sinon
............retourne 2*cos(x/2) -1
....}
}

Avec ça tu as un cosinus super précis (une trentaine de chiffres après la virgule) et sit uveux + précis tu réduis .0001 et tu fais un DL plus loin.
Pour le sinus c'est le même principe : tu ne travail que sur le nombres positifs puis tu utilises la trigo pour diviser ton argument par 2 tant qu'il est trop grand, et quand il est suffisament petit tu fais un développement limité en 0.
vendredi 7 novembre 2003 à 00:30:47 | Re : approximation cos sin tan ...

GoldenEye

On ne parle pas de DL mais de séries entières c pas tt à fait la meme chose...
Optimiser, c'est bien, déboguer c'est mieux
vendredi 7 novembre 2003 à 00:38:03 | Re : approximation cos sin tan ...

garslouche


Petit rigolo va, les séries entières c'est grosso-modo un DL à l'infini...depuis quand l'infini est une notion informatisable ???
vendredi 7 novembre 2003 à 22:46:04 | Re : approximation cos sin tan ...

BruNews

Administrateur CodeS-SourceS
garslouche, ton post aurait ete mieux sans la partie precedent la virgule.
Courtoisiiiiiiiiiiiiiiiiiiiiie, svp.
BruNews, ciao...
samedi 8 novembre 2003 à 01:21:48 | Re : approximation cos sin tan ...

garslouche

Ok autant pour moi, c'est vrai que ça pouvais être mal pris. C'était plus dans le sens de petit canaillou ou qqc comme ça.

Toutes mes excuses à GoldenEye si ça l'a blessé.

PS : dans l'algo que j'ai mis au dessus j'ai écrit

retourner 2*cos(x/2)-1

au lieu de

c = cos(x/2)
retourner 2*c*c-1
dimanche 8 janvier 2006 à 12:23:17 | Re : approximation cos sin tan ...

vinc1008881

                                                                              
Je suppose que l'on peut faire la mm chose pour exp(x) :

exp(x) = exp (x/2)² pour tt x€R
exp(x/2)=exp(x/4)²
............................
exp(x)=exp(X/(2^n))^n avec -0.00...1<X<0.00...1 par exemple et n entier naturel paire ?
Comme x/2^n ---->0 car x<10^308, on peut dire que x/2^n------>0 et appliquer Developpement Limité d'ordre m en 0 de exp(x) = 1 + x/1! + x^2/2! + x^3/3!
(+... o(x^m).)


ln (x) = 2ln (x/2), pour tt x€R+*
ln (x) = 4ln (x/4)
ln (n) = nln (x/n) avec n paire ? et x/n------>0 d'ou on peut appliquer le DL(0) ln(x).

Voilà +


lundi 9 janvier 2006 à 11:27:05 | Re : approximation cos sin tan ...

garslouche

Oui c'est le même principe. (par contre le développement limité de ln se fait en 1 pas en 0)
Tu peux trouver toutes ces fonctions dans mes sources (Les fonctions de MATH.H reprogrammées)

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
vendredi 13 janvier 2006 à 19:11:54 | Re : approximation cos sin tan ...

vinc1008881

oui exact, je suis en train de bosser mes DLn(0) en spé dc j'était pas tt a fait au point...ln (1+x) = x-x²/2+.........x^n*Epsilon(x) où Epsillon(x)----->0
                                                                           x--->0

Vraiment cool ta source Garslouche !


Cette discussion est classée dans : sin, pr, tan, cos, approximation


Répondre à ce message

Sujets en rapport avec ce message

Je voudrais savoir comment me servir de tan-1, cos-1 et sin-1 en c++. Est-ce-que quelqu'un peut m'aider? SVP [ par ndubien ] Bonjour, Je voudrais savoir comment me servir de tan-1, cos-1 et sin-1 en c++. Est-ce-que quelqu'un peut m'aider?SVPMerci, d'avance.<str probleme de rotation avec les matrices [ par Mick7 ] bon voila j'ai voulu refaire une partie de mon code proprement, donc j'ai pompé sur le site que vous connaissez tous http://membres.lycos.fr/javamus/a texturer une sphere [ par aymardhb9 ] Bonjour !!je suis debutant en openGL et j'essaie de mettre une texture sur une sphere que j'ai dessiné avec le code ci-dessous . J'aimerais que vous m fonctions de <math.h> inconnues par visual 2005 [ par nesgba ] bonjour a tous, voila ca fait maintenant quelques semaines que je suis passé a visual 2005 (la version complete) avant cela j'avais visual 6 (le fame Tourner un Point. [ par D0X ] Salut a tout le monde! Je dois tourner un Point. J'ai une ligne qui passe pour le centre d'un cercle et les points sont: CX, CY (centre du cercle), X, cos et sin [ par unionx ] désolé pour le sendage ici onClipEvent (enterFrame) { incrementation+= 0.1; x = this._x+(Math.cos( incrementation)*15); y = this._y+(Math.s Trigonometrie...... sin cos et tan [ par Xs ] bijour, comment traduire en c++ la fonction :sin (alpha) = AB/BCou Alpha est donné ou alors, seconde solution, on fait AB / BC. Mais AB ou BC est inco jeu de go [ par mastergc ] je suis en train de réaliser un projet de jeu de go en C ms jai qqes pblèmes pr la réalisation alors si jamais qq'un pouvait me donner des tuyaux ou d prob de fichiers [ par man26 ] voila mon probcomment vs feriez pr ka chake kigne dun .txt y te prenne ke les 10 premieres lettres et pr chak ligne il execute une commande preablemen probleme de tableau avec Dev c++ [ par D4rkRe4per ] Hello tlm!g un leger probleme de tableau avec Dev c++ 4.Dans mon fichier source j'ecris : const char pr[] = {"A", "Acca", "Agla", "Agra", "An", "Anc(


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales