Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1038 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Sinus, cosinus et autres fonctionstrigo

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sinus, cosinus et autres fonctionstrigo

n°467794
Joel F
Real men use unique_ptr
Posté le 25-07-2003 à 15:35:23  profilanswer
 

Voila, je cherche un algo de calcul simple et non récursif pour obtenir une approximation à une précision arbitraire des fonctions : sin,cos,tan,acos,asin,atan et leur version hyperbolique sachant que je dispose seulement des fonctions : a+b,a-b,a*b,1/a,1/sqrt(a) , c-a*b et a*b+c.
 
j'ai cherché le forum et google mais je trouve que les developpements limités :/ et si je les utilisa à un ordre tres grand ben l'approx est merdique.
 
Merci d'avance
 
<<OOOOPS j'avais pas vu le post un + plus bas ...>>>
apparement c à coup de série entiére donc ? qqs précisions ?


Message édité par Joel F le 25-07-2003 à 15:37:29
mood
Publicité
Posté le 25-07-2003 à 15:35:23  profilanswer
 

n°467795
LetoII
Le dormeur doit se réveiller
Posté le 25-07-2003 à 15:37:03  profilanswer
 

Qu'est ce que t'entant par ordre très grand?
 
T'as essayé l'approx par polynome de lagrange?


Message édité par LetoII le 25-07-2003 à 15:37:29

---------------
Le Tyran
n°467797
Joel F
Real men use unique_ptr
Posté le 25-07-2003 à 15:38:46  profilanswer
 

LetoII a écrit :

Qu'est ce que t'entant par ordre très grand?
 
T'as essayé l'approx par polynome de lagrange?


 
Ben pour la précision dont j'ai besoin je dois allez à l'ordre 6/7 ou + ... et ca me prend trop de temps.
 
Lagrange c polynomial donc en x puissance y ... je peut pas me le permettre trop couteux.

n°467800
skeye
Posté le 25-07-2003 à 15:41:36  profilanswer
 

Joel F a écrit :


 
Ben pour la précision dont j'ai besoin je dois allez à l'ordre 6/7 ou + ... et ca me prend trop de temps.
 
Lagrange c polynomial donc en x puissance y ... je peut pas me le permettre trop couteux.


Demande à Harko de te le coder en assembleur magique qui va plus vite que tout!:o
Plus sérieusement je vois pas trop...

n°467801
LetoII
Le dormeur doit se réveiller
Posté le 25-07-2003 à 15:42:00  profilanswer
 

Joel F a écrit :


 
Ben pour la précision dont j'ai besoin je dois allez à l'ordre 6/7 ou + ... et ca me prend trop de temps.
 
Lagrange c polynomial donc en x puissance y ... je peut pas me le permettre trop couteux.


 
 
Je crois que t'as de bonnes approx avec des poly d'orde inferrieur à 5 mais je suis pas sur.
 

skeye a écrit :


Demande à Harko de te le coder en assembleur magique qui va plus vite que tout!:o
Plus sérieusement je vois pas trop...


C déjà ce qu'il fait ;)


Message édité par LetoII le 25-07-2003 à 15:43:15

---------------
Le Tyran
n°467812
skeye
Posté le 25-07-2003 à 15:46:47  profilanswer
 

LetoII a écrit :


 
 
Je crois que t'as de bonnes approx avec des poly d'orde inferrieur à 5 mais je suis pas sur.
 
 
C déjà ce qu'il fait ;)


ah euh oui ca explique les restrictions dans l'énoncé... :sweat:

n°468009
Joel F
Real men use unique_ptr
Posté le 25-07-2003 à 17:47:11  profilanswer
 

Bon le DL 3 pour les fonctions hyperboliques semblent suffire ....
me retse les normales et les inverses :/

n°472798
LetoII
Le dormeur doit se réveiller
Posté le 31-07-2003 à 09:43:13  profilanswer
 

T'as essayé les série entières?
 
Ca sera sasn doute pas très différents des dl mais bon  [:spamafote]


---------------
Le Tyran
n°472802
Joel F
Real men use unique_ptr
Posté le 31-07-2003 à 09:45:43  profilanswer
 

faut que je retrouve les formule mais si je m'abuse, y a des x^n qui traienent non ? Si oui, I'm doomed car les exponentiation me coutent la peau des baloches :/

n°472804
skeye
Posté le 31-07-2003 à 09:48:29  profilanswer
 

Joel F a écrit :

faut que je retrouve les formule mais si je m'abuse, y a des x^n qui traienent non ? Si oui, I'm doomed car les exponentiation me coutent la peau des baloches :/


Pas grave avec ton nouveau compilo qui optimise 2 fois plus... [:ddr555]

mood
Publicité
Posté le 31-07-2003 à 09:48:29  profilanswer
 

n°472810
LetoII
Le dormeur doit se réveiller
Posté le 31-07-2003 à 09:53:43  profilanswer
 

Joel F a écrit :

faut que je retrouve les formule mais si je m'abuse, y a des x^n qui traienent non ? Si oui, I'm doomed car les exponentiation me coutent la peau des baloches :/


 
 x^3 ca coute plus ou moin cher que de faire x*x*x, ou c ce que ça fait derriere?


---------------
Le Tyran
n°472814
Taz
bisounours-codeur
Posté le 31-07-2003 à 09:56:17  profilanswer
 

D.L. ?

n°472816
LetoII
Le dormeur doit se réveiller
Posté le 31-07-2003 à 09:57:00  profilanswer
 


Développement limité


---------------
Le Tyran
n°472819
Taz
bisounours-codeur
Posté le 31-07-2003 à 09:58:35  profilanswer
 

LetoII a écrit :


Développement limité

marde, j'avaispas ouvert mon oeil gauche, je proposais en fait, j'avais po vu

n°472823
LetoII
Le dormeur doit se réveiller
Posté le 31-07-2003 à 10:00:51  profilanswer
 

Taz a écrit :

marde, j'avaispas ouvert mon oeil gauche, je proposais en fait, j'avais po vu


 
ha ok


---------------
Le Tyran
n°472832
LeGreg
Posté le 31-07-2003 à 10:11:26  profilanswer
 

LetoII a écrit :


 
 x^3 ca coute plus ou moin cher que de faire x*x*x, ou c ce que ça fait derriere?


 
x^3 mon compilateur ne connait pas..
 
C'est en quel langage ?
 
LeGreg
edit: je ne parle évidemment pas du exclusive or..


Message édité par LeGreg le 31-07-2003 à 10:12:50
n°472834
LetoII
Le dormeur doit se réveiller
Posté le 31-07-2003 à 10:12:37  profilanswer
 

legreg a écrit :


 
x^3 mon compilateur ne connait pas..
 
C'est en quel langage ?
 
LeGreg


 
 
Ct un racourcis pour désigner la fonction qui mettrait à la puissance n  :sarcastic:


---------------
Le Tyran
n°472836
LeGreg
Posté le 31-07-2003 à 10:13:39  profilanswer
 

LetoII a écrit :


Ct un racourcis pour désigner la fonction qui mettrait à la puissance n  :sarcastic:  


 
oui mais si on ne connait pas cette fonction c'est un peu dur de repondre a ta question..
 
LeGreg

n°472837
LetoII
Le dormeur doit se réveiller
Posté le 31-07-2003 à 10:14:46  profilanswer
 

legreg a écrit :


 
oui mais si on ne connait pas cette fonction c'est un peu dur de repondre a ta question..
 
LeGreg


 
Ben si joel il la connait puisqu'il travaille avec  [:spamafote]
 
EDIT: moi je peux pas inventer un nom de fonctino que je connais pas  [:spamafote]


Message édité par LetoII le 31-07-2003 à 10:15:35

---------------
Le Tyran
n°472841
LeGreg
Posté le 31-07-2003 à 10:17:01  profilanswer
 

LetoII a écrit :


 
Ben si joel il la connait puisqu'il travaille avec  [:spamafote]
 
EDIT: moi je peux pas inventer un nom de fonctino que je connais pas  [:spamafote]  


 
D'apres son post il ne connait que l'addition et la multiplication..
Ca m'etonnerait qu'il puisse faire un cube autrement et de maniere plus efficace qu'en faisant x*x*x.
 
LeGreg

n°472842
LetoII
Le dormeur doit se réveiller
Posté le 31-07-2003 à 10:18:13  profilanswer
 

legreg a écrit :


 
D'apres son post il ne connait que l'addition et la multiplication..
Ca m'etonnerait qu'il puisse faire un cube autrement et de maniere plus efficace qu'en faisant x*x*x.
 
LeGreg


 
Ca fait presque une semeine j'avais oublié moi  [:ddr555]


---------------
Le Tyran
n°472843
Taz
bisounours-codeur
Posté le 31-07-2003 à 10:19:22  profilanswer
 

c'est quoi le problème avec les D.L., je fais le boolay là, mais je comprends pas trop pourquoi t'es pas satisfait? et puis si je me souviens, les séries entières admettent des DL, donc, ça change rien.
 
sinon tu te tapes une tapes une table, à l'ancienne

n°472852
LeGreg
Posté le 31-07-2003 à 10:23:29  profilanswer
 

Joel, tu as droit au branchements ?
 
LeGreg

n°472885
Joel F
Real men use unique_ptr
Posté le 31-07-2003 à 10:50:27  profilanswer
 

Bon je recentre :
je bosse en altivec donc pas de branchement, tout inliné.
j'ai à ma disposition un cretain nombre de fonctions ultra-rapides précablés :
 
a+b
a*b+c
a-b
1/a
1/racine(a)
 
maintenant je dois évalué sin(x) (x quelconque) avec un mix de ces fonctions
sans sauts ni boucles.
 
J'ai implementé le sin avec les séries entiéres mais le pb ce que les x*x*x c trop lent :/
 
 
EDIT :
 
j'ai trouvé ca :
 
sin(x) = (-0.352173719 + 1.845955302*x - 0.005761952*x*x)/100
pour x <= 45
 
pour x > 45 degrees:
sin(x)  = sqrt(10000-100*sin(90-x))
 
ca a l'air correct ...


Message édité par Joel F le 31-07-2003 à 10:57:42
n°472895
chrisbk
-
Posté le 31-07-2003 à 10:58:06  profilanswer
 

taylor expansion ?
 
a mince si x est quelconque ben pouf (dommage que tu ne puisse pas le restreindre


Message édité par chrisbk le 31-07-2003 à 10:59:38
n°472907
LeGreg
Posté le 31-07-2003 à 11:04:37  profilanswer
 

Joel F a écrit :


j'ai trouvé ca :
 
sin(x) = (-0.352173719 + 1.845955302*x - 0.005761952*x*x)/100
pour x <= 45
 
pour x > 45 degrees:
sin(x)  = sqrt(10000-100*sin(90-x))
 
ca a l'air correct ...
 


 
ben quand je disais branchement je pensais a un truc comme ca: tirer parti des symetries du probleme..
 
LeGreg

n°472957
Joel F
Real men use unique_ptr
Posté le 31-07-2003 à 11:22:49  profilanswer
 

Put1 merde g pas fait gaffe :/
ca me force a faire un if a chaque fois :(
 
Bon back to the drawing board ...

n°472974
Taz
bisounours-codeur
Posté le 31-07-2003 à 11:29:02  profilanswer
 

Joel F a écrit :

Put1 merde g pas fait gaffe :/
ca me force a faire un if a chaque fois :(
 
Bon back to the drawing board ...

c'est si lent que ça les fonctions de bases?

n°473013
Joel F
Real men use unique_ptr
Posté le 31-07-2003 à 11:45:10  profilanswer
 

les fonctions de bases sont pas lentes. Seules la multiplication répété de la même donnée pose probleme. Mon but est d'effectuer cette approche avec un minimum d'opérations (en evitant les exponentiation sauvage) et d emanière linéaire (cad sans if ou while)

n°473083
duchzeworl​d
Posté le 31-07-2003 à 13:16:00  profilanswer
 


Juste une petite remarque sur le calcul des polygones :
 
((((-0.005761952*x) + 1.845955302) * x) - 0.352173719) /100
 
ca donne la même chose que ce qui suit  
 
(-0.352173719 + 1.845955302*x - 0.005761952*x*x)/100  
 
et ça enlève une multiplication.

n°473099
Joel F
Real men use unique_ptr
Posté le 31-07-2003 à 13:42:25  profilanswer
 

OUI !!
j'y avais pas pensez !
Merci :D
 
/me va tester ;)

n°474108
LeGreg
Posté le 01-08-2003 à 05:19:38  profilanswer
 

Me stupid mais c'est quoi un altivec
 
on dirait le nom d'un de ces dinosaures de l'info
(quand tous ces macro ordinateurs s'appelaient eniac, univac )
 
Quoique le jeu d'instructions me fait penser
aux combiner de ma Geforce..
 
Alors c'est une machine differentielle on chip ?
 
LeGreg

n°474113
skeye
Posté le 01-08-2003 à 07:36:54  profilanswer
 

legreg a écrit :

Me stupid mais c'est quoi un altivec
 
on dirait le nom d'un de ces dinosaures de l'info
(quand tous ces macro ordinateurs s'appelaient eniac, univac )
 
Quoique le jeu d'instructions me fait penser
aux combiner de ma Geforce..
 
Alors c'est une machine differentielle on chip ?
 
LeGreg


SIMD pour G4

n°474188
Joel F
Real men use unique_ptr
Posté le 01-08-2003 à 09:51:10  profilanswer
 

AltiVec est une extension SIMD pour les processuers G4,G5 de Apple/Motoroal/IBM. du MMx en beaucoup mieux quoi :D

n°474193
Joel F
Real men use unique_ptr
Posté le 01-08-2003 à 09:54:54  profilanswer
 

Bon si je déroule les DL de maniére à ls transformées en a+b*c ca a l'aire de marcher ... Je vais tester le tout je verrais bien ...

n°474222
Taz
bisounours-codeur
Posté le 01-08-2003 à 10:25:35  profilanswer
 

le MMX c'est de la blague à côté... ça n'en a que le nom de SIMD

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Sinus, cosinus et autres fonctionstrigo

 

Sujets relatifs
cosinus et sinus en java?[C++] Comment accèder à la fonction inverse de cosinus
Plus de sujets relatifs à : Sinus, cosinus et autres fonctionstrigo


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR