<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title><![CDATA[Godefroy]]></title>
	<description><![CDATA[Flux RSS des articles]]></description>
	<pubDate>Sun, 05 Feb 2012 18:47:47 +0100</pubDate>
	<link>http://godefroy.me</link>
	<language>fr</language>
	<generator>http://www.eklablog.com</generator>
	
	<item>
		<title><![CDATA[Calcul de la racine carrée]]></title>
		<link>http://godefroy.me/calcul-de-la-racine-carree-a8276</link>
		<description><![CDATA[Je me posais depuis un certain temps la question toute b&ecirc;te mais interessante : comment calculer efficacement la racine carr&eacute;e d'un nombre ?
Je parts de x&sup2; = a
Il y a quelques mois j'avais fait un petit programme un peu brutal et tr&egrave;s lent sur ma TI-89 qui essayait plein de possibilit&eacute;s pour...]]></description>
		<content:encoded><![CDATA[Je me posais depuis un certain temps la question toute bête mais interessante : comment calculer efficacement la racine carrée d'un nombre ?<br />Je parts de x² = a<br />Il y a quelques mois j'avais fait un petit programme un peu brutal et très lent sur ma TI-89 qui essayait plein de possibilités pour trouver x en vérifiant à chaque fois en comparant x² et a, jusqu'à obtenir un écart maximal prédéfini. Mais c'était pas du tout satisfaisant...<br />J'ai alors cherché un peu sur internet, et j'ai trouvé plusieurs méthodes, mais la plupart étaient faites pour être utilisées à l'écrit, et elles étaient donc inexploitable dans un programme. Et j'ai trouvé la méthode d'Héron d'Alexandrie (1<sup>er</sup> siècle après J-C) qui consiste en fait à créer une fonction dont le minimum sur R<sup>+</sup> est en x = &#8730;a et y = &#8730;a. On cherche donc à atteindre le minimum de cette fonction pour avoir la valeur la plus approchée possible de &#8730;a<br /><img src="http://data0.eklablog.com/skreo/perso/images/maths/courbe_sqrt9.jpg" alt="" align="left" hspace="10" vspace="5" />A partir de l'équation x² = a, on obtient :<br />2x² = x² + a<br />2x = x + a/x<br />x = (x + a/x)/2<br /><br />Ce qui donne une fonction f(x) = (x + a/x)/2<br />A gauche, on voit la fonction f(x) = (x + 9/x)/2 pour trouver la racine carré de 9<br />On voit bien que le minimum de f(x) sur R<sup>+</sup> est en 3, qui est bien ce que l'on cherche ^^<br />Mais comment trouver ce minimum ? En calculant la dérivée f '(x) de f(x) et en cherchant la solution de f '(x) = 0 (la dérivée étant égale au coefficient directeur de la tangente en un point, elle est égale à 0 lorsque la tangente est horizontale, et donc lorsque f(x) atteint son minimum)<br />Mais non ! car si on fait ça, le résultat est.... &#8730;a ! On ne va tout de même pas tourner en rond ^^<br />Non en fait cette fonction permet à partir de n'importe quel nombre de départ d'obtenir un nombre plus proche de &#8730;a que ce nombre de départ. Donc en répétant le calcul 3 ou 4 fois on obtient déjà une très bonne approximation.<p>Prenons par exemple a = 671, et la racine carré de la puissance de 10 de ce nombre comme nombre de départ (facile à mettre en oeuvre dans un programme).<br />On a dans ce cas comme nombre de départ : x = &#8730;100 = 10<br />f(10) = (10 + 671 / 10) / 2 = 39,05<br />f(39,05) = (39,05 + 671 / 39,05) / 2 = 28,1025641025<br />f(28,1025641025) = (28,1025641025 + 671 / 28,1025641025) / 2 = 25,9896944600<br />f(25,9896944600) = (25,9896944600 + 671 / 25,9896944600) / 2 = 25,9038100697<br />f(25,9038100697) = (25,9038100697 + 671 / 25,9038100697) / 2 = 25,9036676943<br />f(25,9036676943) = (25,9036676943 + 671 / 25,9036676943) / 2 = 25,9036676940<br /><br />La valeur réelle de la racine carré de 671 donnée par un ordinateur est 25,9036676940<br />Au bout de 3 calculs, on obtient déjà un résultat convenable : 25,98<br />Et au bout de 6 calculs, on trouve la racine carré de 671 avec une précision de 10 chiffres après la virgule !<br />Evidemment, plus le nombre de départ est proche de la racine carré, et le nombre dont on veut trouver la racine carré est petit, moins il y a de calculs à faire ^^</p><br /><br /><div class="article_sharebtns"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fgodefroy.me%2Fcalcul-de-la-racine-carree-a8276&amp;layout=button_count&amp;show_faces=false&amp;width=65&amp;action=like&amp;font&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:65px; height:21px;" allowTransparency="true"><br /></iframe><iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fgodefroy.me%2Fcalcul-de-la-racine-carree-a8276&amp;text=Calcul%20de%20la%20racine%20carr%C3%A9e&amp;count=none" style="width: 55px; height: 20px;"></iframe><span><g:plusone size="medium" count="true" href="http://godefroy.me/calcul-de-la-racine-carree-a8276"></g:plusone></span></div><br /><hr />Article original rédigé par Godefroy et publié sur <a href="http://skreo.eklablog.com">Godefroy</a> <br /> Reproduction interdite sans autorisation]]></content:encoded>
		<pubDate>Sat, 11 Mar 2006 00:44:30 +0100</pubDate>
		<guid isPermaLink="true">http://godefroy.me/calcul-de-la-racine-carree-a8276</guid>
		<dc:creator>Godefroy</dc:creator>
		<dc:date>2006-03-11T00:44:30+01:00</dc:date>
	</item>
</channel>
</rss><!--mdp=-->
