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

  FORUM HardWare.fr
  Programmation
  Algo

  [algo] approximation du sinus : on va jusqu'a quel ordre ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[algo] approximation du sinus : on va jusqu'a quel ordre ?

n°734747
captainneu​neu
Posté le 22-05-2004 à 16:53:58  profilanswer
 

salut
voila, je cherche a faire une fonction de calcul de sinus (en asm)
la question que je me pose, c'est jusqu'a quel ordre aller dans le developpement limité pour avoir une approximation correcte
 
je reste dans l'intervalle [0;pi/2] pour éviter d'avoir un nombre trop élevé, mais apres, je me demande ou je dois arreter le developpement.
 
je pensais ordre 5 ou 7, mais est-ce que c'est suffisant sur cet intervalle ?
 
++ all

mood
Publicité
Posté le 22-05-2004 à 16:53:58  profilanswer
 

n°734769
captainneu​neu
Posté le 22-05-2004 à 17:28:32  profilanswer
 

ptit up plz :d

n°734775
Ace17
Posté le 22-05-2004 à 17:41:41  profilanswer
 

Ben ca dépend de l'utilisation que tu fais de la valeur calculée!

n°734779
Taz
bisounours-codeur
Posté le 22-05-2004 à 17:47:43  profilanswer
 

ça dépend à partir de quel ordre tu es satisfait ...

n°734785
captainneu​neu
Posté le 22-05-2004 à 17:52:49  profilanswer
 

l'utilisation de la valeur calculée, c pour tracer un graphe a l'aide d'un tableur (excel a priori).
les valeurs serviront a tracer le graphe de sin, mais aussi de fonctions paramétrées à base de sin et cos
bon, de tte facon, je vais faire les tests a l'ordre 5 et si je suis pas satisfait, je verai pour l'ordre 7

n°734830
captainneu​neu
Posté le 22-05-2004 à 19:34:57  profilanswer
 

voila, j'ai fini, donc pour la petite histoire, j'ai en fait codé le cosinus (j'en déduirai le sinus, mais le cosinus est moins chiant a coder.)
 
je dois aller à l'ordre 12 pour obtenir quelquechose de satisfaisant avec mon cosinus. (avec un ordre inférieur, j'avais parfois des cos>1)
 
la, ca marche bien, je vais donc coder mon sin basé sur ca
 
++ all

n°734834
captainneu​neu
Posté le 22-05-2004 à 19:44:59  profilanswer
 

vala, le sinus est codé lui aussi
ben tout fonctionne, on va voir ce que ca donne sur les fonctions paramétrées :d

n°734865
Ace17
Posté le 22-05-2004 à 20:42:16  profilanswer
 

captainneuneu a écrit :

j'ai en fait codé le cosinus (j'en déduirai le sinus, mais le cosinus est moins chiant a coder.)


Ah bon? Les deux DL se ressemblent pas mal pourtant

n°734869
captainneu​neu
Posté le 22-05-2004 à 20:45:48  profilanswer
 

oui, mais ya une chose qui simplifie la vie : cos(-a)=cos(a)
du coup, une valeur absolue au debut de la fonction sur la valeur de l'angle, et c fini..
pareil apres des changement de variable
 
pour le sin, j'etais obligé de faire plusieurs cas (n'oublie pas que c t en asm, donc pas tres "coder-friendly", en tout cas , pas pour moi :d)

n°734877
Caedes
Posté le 22-05-2004 à 21:02:55  profilanswer
 

Autrement des tables précalculées c'est bien aussi...

mood
Publicité
Posté le 22-05-2004 à 21:02:55  profilanswer
 

n°734902
Ace17
Posté le 22-05-2004 à 21:55:17  profilanswer
 

captainneuneu a écrit :

je reste dans l'intervalle [0;pi/2]


captainneuneu a écrit :

oui, mais ya une chose qui simplifie la vie : cos(-a)=cos(a)


Faudrait savoir!  :p
 
edit : au fait j'adore ta signature  :jap:


Message édité par Ace17 le 22-05-2004 à 21:55:59
n°734904
captainneu​neu
Posté le 22-05-2004 à 22:16:25  profilanswer
 

Ace17 a écrit :

Faudrait savoir!  :p
 
edit : au fait j'adore ta signature  :jap:


 
merci pour la signature
 
pour ce qui est de l'intervalle, je reste sur [0;pi/2] certes, mais après mon modulo
 
donc je peux tres bien calculer cos(-15) en le ramenant sur l'intervalle [0;pi/2]


Message édité par captainneuneu le 22-05-2004 à 22:16:36
n°734906
captainneu​neu
Posté le 22-05-2004 à 22:17:11  profilanswer
 

Caedes a écrit :

Autrement des tables précalculées c'est bien aussi...


 
oui, mais va faire ca en assembleur...
enfin, ca me semble difficile :d

n°734920
Caedes
Posté le 22-05-2004 à 22:39:24  profilanswer
 

captainneuneu a écrit :

oui, mais va faire ca en assembleur...
enfin, ca me semble difficile :d


Ben non justement.
Tu mets des valeurs statiques à un emplacement mémoire (enfin c'est comme ca qu'on fait ds les PICs) et si tu veux le sinus de 36° tu vas au 36eme emplacement de ton tableau...
Et s'il faut 36°43' tu fais une interpolation linéaire (ou tu arrondis car une precision d'un degré c'est souvent suffisant)

n°734926
captainneu​neu
Posté le 22-05-2004 à 22:51:07  profilanswer
 

ah, pkoi pas, fodrait que je vois si c'est faisable
la, c du mips, mais c surtout mon premier programme donc je connais pas tout ca.
 
je testerai un jour quand j'aurais le temps, mais de toute facon, c'etait pas la consigne :d
 
;)

n°734928
Taz
bisounours-codeur
Posté le 22-05-2004 à 22:58:26  profilanswer
 

ouais enfin bon, 1° de précision, c'est pas franchement folichon

n°734940
nraynaud
lol
Posté le 22-05-2004 à 23:29:36  profilanswer
 

c'est marrant ça, oui, c'est quoi le critère pour s'arrêter ?
 
en plus on a même pas de relation entre la précision et le degré du développement si ?


---------------
trainoo.com, c'est fini
n°734944
Taz
bisounours-codeur
Posté le 22-05-2004 à 23:33:37  profilanswer
 

ben si tu peux donner epsilon(x)
 
je suis complètement hors du coût, mais à l'époque, il me semble avoir fait beaucoup de calcul comme ça

n°734954
nraynaud
lol
Posté le 22-05-2004 à 23:43:11  profilanswer
 

Taz a écrit :

ben si tu peux donner epsilon(x)

ah bon ? encadrer l'erreur en fonction du rang ?
 
 

Taz a écrit :

hors du coût

on dit "trop cher" [:aloy]


---------------
trainoo.com, c'est fini
n°734959
captainneu​neu
Posté le 22-05-2004 à 23:48:04  profilanswer
 

effectivement, je ne pense pas qu'on ai réellement de renseignement sur la précision, mais on sait ce qui manque, en général, matérialisé sous la forme d'un o(x) ou O(x)
 
mais bon, je suis une bite en analyse et je c pas trop comment exploité ce truc
 
la bonne solution est de trouver le bon compromis précision/vitesse d'exécution

n°734962
Taz
bisounours-codeur
Posté le 22-05-2004 à 23:49:32  profilanswer
 

marne, je suis traumatisé, je fais lire un rapport rendu à ma mère, et là elle m'invente une faute en première page comme quoi j'aurais écrit coup au lieu de coût ...

n°734964
captainneu​neu
Posté le 22-05-2004 à 23:50:51  profilanswer
 

hum, spa bien ca...

n°735047
Caedes
Posté le 23-05-2004 à 09:59:59  profilanswer
 

Taz a écrit :

ouais enfin bon, 1° de précision, c'est pas franchement folichon


On peut aussi faire une approximation linéaire entre les 2 points hein...

n°735157
el muchach​o
Comfortably Numb
Posté le 23-05-2004 à 15:40:22  profilanswer
 

Certainement pas lineaire si tu veux une precision raisonnable. Quadratique, j'aurais dit.

n°735168
Caedes
Posté le 23-05-2004 à 16:13:08  profilanswer
 

el muchacho a écrit :

Certainement pas lineaire si tu veux une precision raisonnable. Quadratique, j'aurais dit.


L'un est plus facile à réaliser que l'autre...  :whistle:

n°771795
Tentacle
Posté le 21-06-2004 à 18:14:19  profilanswer
 

Salut,
 
désolé de faire remonter ce topic à la surface.
 
Juste pour dire qu'on peut estimer l'incertitude en fonction du rang de développement :
 
en gros à chaque ajout d'un terme dans le développement limité, on passe d'un côté et d'un autre de la courbe recherchée (ici cosinus). Il suffit alors de faire la différence entre 2 courbes d'ordre consécutif (n et n+2) pour avoir l'incertitude de la première (ordre n) avec une légère surextimation (mais c'est moins grave que l'inverse quoiqu'on pourrait ralentir le calcul avec un ordre élevé non nécéssaire).
 
Donc, pour un développement limité à l'ordre n, abs(x^(n+2)/(n+2)!) donne l'incertude au point x (abs parce qu'on se fout un peu de quel côté de la courbe on est). Il 'suffirait' alors de calculer cette incertitude de proche en proche jusqu'à avoir satisfaction.

mood
Publicité
Posté le   profilanswer
 


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

  [algo] approximation du sinus : on va jusqu'a quel ordre ?

 

Sujets relatifs
[ALGO/SQL] Gérer les arbres en SQLTri par ordre alphabetique d'un champ dans une base de donnée
[SQL] Il ne trie pas mon tableau par ordre alphaAlgo du plus court chemin avec des boucles dans le graphe
Algo de shannon fanoCalcul du SINUS à partir du développement limité sous VB?
Analyse d'images : algo de Resenfeld[algo] trouver le vainqueur à chi fou mi
[ALGO] optimisation, tout les possibilités variantes d'un mot[MySQL]Ordre dans un select
Plus de sujets relatifs à : [algo] approximation du sinus : on va jusqu'a quel ordre ?


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