Prog en assembleur
Fermé
info fst
-
20 nov. 2009 à 21:24
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 20 nov. 2009 à 22:08
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 20 nov. 2009 à 22:08
A voir également:
- Prog en assembleur
- Robot prog - Télécharger - Édition & Programmation
- Logiciel assembleur - Télécharger - Édition & Programmation
- Prog dvb - Télécharger - Télévision
- Assembleur pc salaire ✓ - Forum Études / Formation High-Tech
- Tp corrigé assembleur 8086 - Forum Programmation
1 réponse
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
20 nov. 2009 à 22:08
20 nov. 2009 à 22:08
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.