Prog en assembleur
info fst
-
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
je suis une débutante en assembleur,je suis en train de formuler un programme et j'ai besoin d'effectuer une racine carrée,si quelqu'un peut m'aider svp. Merci d'avance
je suis une débutante en assembleur,je suis en train de formuler un programme et j'ai besoin d'effectuer une racine carrée,si quelqu'un peut m'aider svp. Merci d'avance
Configuration: Windows XP Safari 532.0
A voir également:
- Prog en assembleur
- Robot prog - Télécharger - Édition & Programmation
- Clear prog - Télécharger - Sécurité
- Assembleur pdf - Guide
- Logiciel assembleur - Télécharger - Édition & Programmation
- Prog java - Forum Java
1 réponse
Je ne connais rien à l'assembleur, donc je ne peux pas t'aier à coder.
Mais tu as plusieurs options :
1) peut-être la plus simple, faire un développement limité de la fonction racine (comme au lycée normalement, c'est au programme il me semble). Plus tu fais ton développement à un ordre grand, plus ta réponse sera précise.
Par exemple, tu développes depuis 1
racine(1+h) =environ racine(1) + dérivée de racine (1) * h + dérivée seconde de racine (1) / 2 * h^2 + dérivée troisième de racine(1) / 6 * h^3
(ici c'est un développement d'ordre 3)
Donc si tu as par exemple la racine de x à calculer, tu poses h=x-1 et tu appliques cette formule.
Les dérivées sont juste des nombres à calculer sur papier avant de faire ton programme.
dérivée de racine (x)= 1/(2*racine de x), donc dérivée de racine (1) c'est 0.5.
dérivée deuxième de racine (x) = -1/(4*x*racine(x)) si je ne me trompe pas, c-à-d dérivée deuxième de racine (1) = -0.25
2) Sinon une autre possibilité est de faire la méthode de la bisection, je ne sais pas trop ce que tu sais faire ou pas en assembleur.
détail : voici la méthode de la bissection. On cherche le zéro d'une fonction. Pour trouver la racine de a, on cherche le zéro de la fonction x^2 - a.
Tu prends deux nombres de départ pour commencer à chercher. tu prendras 0 et a, c'est le plus simple. On sait que la réponse est entre les deux.
Ensuite :
ceci est l'algorithme, je ne sais pas si tu connais assez l'assembleur pour le traduire.
Ce ne sont que des possibilités parmi d'autres, il y'en a beaucoup!
EDIT: en fait pour la méthode de la bisection, ma méthode n'est pas correcte si a est entre 0 et 1. si a est entre 0 et 1, il faut prendre comme borneInf : a et comme borneSup : 1. Sinon, si le nombre a est plus grand que 1 tu peux prendre borneInf = 1 et borneSup = a.
Mais tu as plusieurs options :
1) peut-être la plus simple, faire un développement limité de la fonction racine (comme au lycée normalement, c'est au programme il me semble). Plus tu fais ton développement à un ordre grand, plus ta réponse sera précise.
Par exemple, tu développes depuis 1
racine(1+h) =environ racine(1) + dérivée de racine (1) * h + dérivée seconde de racine (1) / 2 * h^2 + dérivée troisième de racine(1) / 6 * h^3
(ici c'est un développement d'ordre 3)
Donc si tu as par exemple la racine de x à calculer, tu poses h=x-1 et tu appliques cette formule.
Les dérivées sont juste des nombres à calculer sur papier avant de faire ton programme.
dérivée de racine (x)= 1/(2*racine de x), donc dérivée de racine (1) c'est 0.5.
dérivée deuxième de racine (x) = -1/(4*x*racine(x)) si je ne me trompe pas, c-à-d dérivée deuxième de racine (1) = -0.25
2) Sinon une autre possibilité est de faire la méthode de la bisection, je ne sais pas trop ce que tu sais faire ou pas en assembleur.
détail : voici la méthode de la bissection. On cherche le zéro d'une fonction. Pour trouver la racine de a, on cherche le zéro de la fonction x^2 - a.
Tu prends deux nombres de départ pour commencer à chercher. tu prendras 0 et a, c'est le plus simple. On sait que la réponse est entre les deux.
Ensuite :
BorneInf = 0 Borne Sup=a X = a/2 (le milieu entre 0 et a) Tant que X^2-a n'est pas "proche de zéro" (tolérance à définir par toi même, par exemple 0.0001) regarder le signe de X. S'il est positif, le X remplace borneSup. Sinon le X remplace BorneInf remplacer X par la moyenne entre BorneInf et BorneSup (BorneInf + BorneSup)/2 Boucler tant que
ceci est l'algorithme, je ne sais pas si tu connais assez l'assembleur pour le traduire.
Ce ne sont que des possibilités parmi d'autres, il y'en a beaucoup!
EDIT: en fait pour la méthode de la bisection, ma méthode n'est pas correcte si a est entre 0 et 1. si a est entre 0 et 1, il faut prendre comme borneInf : a et comme borneSup : 1. Sinon, si le nombre a est plus grand que 1 tu peux prendre borneInf = 1 et borneSup = a.