{"id":1619,"date":"2015-12-06T17:04:00","date_gmt":"2015-12-06T16:04:00","guid":{"rendered":"http:\/\/www.valcon.it\/python\/?p=1619"},"modified":"2024-12-09T09:09:48","modified_gmt":"2024-12-09T08:09:48","slug":"metodo-babilonese","status":"publish","type":"post","link":"https:\/\/www.valcon.it\/python\/metodo-babilonese\/","title":{"rendered":"Radice quadrata con metodo babilonese"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.valcon.it\/pp\/radice-quadrata-babilonese\/\">Vedi la discussione<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1<\/h2>\n\n\n\n<p>Esegue 5 passi dell&#8217;algoritmo e visualizza la sequenza delle approssimazioni.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nn = 256\nx = n\/2\nfor i in range(5):\n    x = (x + n\/x) \/ 2\n    print(i, ':', x)\n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\n0 : 65.0\n1 : 34.46923076923077\n2 : 20.94807220229001\n3 : 16.584383571973717\n4 : 16.010295955761958\n<\/pre><\/div><\/div>\n<\/div>\n\n\n\n<p>Questa prima versione evidenzia la <strong>semplicit\u00e0<\/strong> e l&#8217;<strong>efficienza<\/strong> dell&#8217;algoritmo!<br>Con le versioni successive l&#8217;algoritmo risulter\u00e0 pi\u00f9 esplicito.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2<\/h2>\n\n\n\n<p>Evidenzia che: <em>date due approssimazioni, la loro media \u00e8 un&#8217;approssimazione migliore&#8230;<\/em><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-2 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nn  = 256\nxM = n\/2\nfor i in range(5):\n    xA = xM\n    xB = n \/ xA\n    xM = (xA + xB) \/ 2\n    \n    print(&quot;%d : %10f %10f %10f&quot;\n          %(i, xA, xB, xM))\n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\n0 : 128.000000   2.000000  65.000000\n1 :  65.000000   3.938462  34.469231\n2 :  34.469231   7.426914  20.948072\n3 :  20.948072  12.220695  16.584384\n4 :  16.584384  15.436208  16.010296\n<\/pre><\/div><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">3<\/h2>\n\n\n\n<p><em>Input da tastiera<\/em> di <em>n<\/em> e <em>numero passi<\/em><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n...\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">4<\/h2>\n\n\n\n<p>Valutazione dell&#8217;errore assoluto<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-3 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nn  = ...\np  = ...\n\nxM = n\/2\nfor i in range(p):\n    xA = xM\n    xB = n \/ xA\n    xM = (xA + xB) \/ 2\n    eA = abs(xA - xM)\n    \n    print(&quot;%i : %10f %10f %10f %10f&quot;\n          %(i, xA, xB, xM, eA))\n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\n0 : 128.000000   2.000000  65.000000  63.000000\n1 :  65.000000   3.938462  34.469231  30.530769\n2 :  34.469231   7.426914  20.948072  13.521159\n3 :  20.948072  12.220695  16.584384   4.363689\n4 :  16.584384  15.436208  16.010296   0.574088\n<\/pre><\/div><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">5<\/h2>\n\n\n\n<p>Valutazione dell&#8217;errore assoluto e dell&#8217;errore relativo<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-4 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nn  = ...\np  = ...\n\nxM = n\/2\nfor i in range(p):\n    xA = xM\n    xB = n \/ xA\n    xM = (xA + xB) \/ 2\n    eA = abs(xA - xM)\n    eR = eA \/ xM\n    \n    print(&quot;%i : %10f %10f %10f %10f %10f&quot;\n          %(i, xA, xB, xM, eA, eR))\n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\n0 : ... ... 65.000000  63.000000   0.969231\n1 : ... ... 34.469231  30.530769   0.885740\n2 : ... ... 20.948072  13.521159   0.645461\n3 : ... ... 16.584384   4.363689   0.263120\n4 : ... ... 16.010296   0.574088   0.035857\n<\/pre><\/div><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">6<\/h2>\n\n\n\n<p>L&#8217;iterazione continua se l&#8217;errore relativo&nbsp;\u00e8 ancora troppo grande<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-5 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nn   = ...\n\nER = 0.01\neR = 1.00\nxM = n\/2\nwhile(eR &gt;= ER):\n    xA = xM\n    xB = n \/ xA\n    xM = (xA + xB) \/ 2\n    eA = abs(xA - xM)\n    eR = eA \/ xM\n    \n    print(&quot;%8.4f %8.4f %8.4f %8.4f %8.4f&quot;\n          %(xA, xB, xM, eA, eR))\n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\n128.0000   2.0000  65.0000  63.0000   0.9692\n 65.0000   3.9385  34.4692  30.5308   0.8857\n 34.4692   7.4269  20.9481  13.5212   0.6455\n 20.9481  12.2207  16.5844   4.3637   0.2631\n 16.5844  15.4362  16.0103   0.5741   0.0359\n 16.0103  15.9897  16.0000   0.0103   0.0006\n<\/pre><\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.valcon.it\/python\/matplotlib\/\">Matplotlib<\/a><\/div>\n<\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.valcon.it\/python\/wp-content\/uploads\/babilonese_0.png\" alt=\"\" class=\"wp-image-15086\"\/><\/figure><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport matplotlib.pyplot as plt\n\nX =&#x5B;]\nXA=&#x5B;]\nXB=&#x5B;]\nXM=&#x5B;]\n\nn=256\nER=0.01\neR=1.00\nxM=n\/2\ni=1\nwhile(eR &gt;= ER):\n    xA = xM\n    xB = n\/xA\n    xM = (xA+xB)\/2\n    eA = abs(xA-xM)\n    eR = eA\/xM\n    print(&quot;%i %12.6f %12.6f %12.6f %12.6f %12.6f&quot; %(i+1, xA, xB, xM, eA, eR))\n    X.append(i)\n    XA.append(xA)\n    XB.append(xB)\n    XM.append(xM)\n    i+=1\n\nplt.grid()\nplt.plot(X, XA, label=&quot;xA&quot;, linewidth=&quot;2&quot;)\nplt.plot(X, XB, label=&quot;xB&quot;, linewidth=&quot;2&quot;)\nplt.plot(X, XM, label=&quot;xM&quot;, linewidth=&quot;3&quot;)\nplt.title(&quot;Metodo babilonese, n = &quot; + str(n))\nplt.xlabel(&quot;Iterazione&quot;)\nplt.ylabel(&quot;Approsimazione&quot;)\nplt.legend()\n\nplt.show()\n<\/pre><\/div>\n\n\n<p>Forse \u00e8 pi\u00f9 chiaro con la soluzione approsssimata sull&#8217;asse delle ascisse?<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.valcon.it\/python\/wp-content\/uploads\/rad_quad_babilonese_3.png\" alt=\"\" class=\"wp-image-15176\"\/><\/figure><\/div>\n\n\n<p>Nella funzione <strong>plt.plot<\/strong>() scrivi <strong>X<\/strong> dopo <strong>xA<\/strong>, <strong>xB<\/strong>, <strong>xM<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport matplotlib.pyplot as plt \n\nX =&#x5B;] \nXA=&#x5B;] \nXB=&#x5B;] \nXM=&#x5B;]\n\nn=256 \nER=0.01 \neR=1.00 \nxM=n\/2 \ni=1 \nwhile(eR &gt;= ER): \n    xA = xM \n    xB = n\/xA \n    xM = (xA+xB)\/2 \n    eA = abs(xA-xM) \n    eR = eA\/xM \n    print(&quot;%i %12.6f %12.6f %12.6f %12.6f %12.6f&quot; %(i+1, xA, xB, xM, eA, eR)) \n    X.append(i) \n    XA.append(xA) \n    XB.append(xB) \n    XM.append(xM) \n    i+=1 \n\nplt.grid() \nplt.plot(XA, X, label=&quot;xA&quot;, linewidth=&quot;2&quot;) \nplt.plot(XB, X, label=&quot;xB&quot;, linewidth=&quot;2&quot;) \nplt.plot(XM, X, label=&quot;xM&quot;, linewidth=&quot;3&quot;) \nplt.title(&quot;Metodo babilonese, n = &quot; + str(n)) \nplt.xlabel(&quot;Approssimazione&quot;)\nplt.ylabel(&quot;Iterazione&quot;)\nplt.ylim(6.2, 0.8)\nplt.legend() \n\nplt.show()\n<\/pre><\/div>\n\n\n<p>Se <strong>n<\/strong> &lt; <strong>4<\/strong> al 2\u00b0 passo ci sar\u00e0 uno scambio tra <strong>xA<\/strong> e <strong>xB<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"https:\/\/www.valcon.it\/python\/wp-content\/uploads\/rad_quad_babilonese_4.png\" alt=\"\" class=\"wp-image-19114\" srcset=\"https:\/\/www.valcon.it\/python\/wp-content\/uploads\/rad_quad_babilonese_4.png 640w, https:\/\/www.valcon.it\/python\/wp-content\/uploads\/rad_quad_babilonese_4-360x270.png 360w, https:\/\/www.valcon.it\/python\/wp-content\/uploads\/rad_quad_babilonese_4-150x113.png 150w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure><\/div>","protected":false},"excerpt":{"rendered":"<p>Vedi la discussione 1 Esegue 5 passi dell&#8217;algoritmo e visualizza la sequenza delle approssimazioni. Questa prima versione evidenzia la semplicit\u00e0 e l&#8217;efficienza dell&#8217;algoritmo!Con le versioni successive l&#8217;algoritmo risulter\u00e0 pi\u00f9 esplicito. 2 Evidenzia che: date due approssimazioni, la loro media \u00e8 un&#8217;approssimazione migliore&#8230; 3 Input da tastiera di n e numero passi 4 Valutazione dell&#8217;errore assoluto &#8230; <a title=\"Radice quadrata con metodo babilonese\" class=\"read-more\" href=\"https:\/\/www.valcon.it\/python\/metodo-babilonese\/\" aria-label=\"Leggi di pi\u00f9 su Radice quadrata con metodo babilonese\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[32],"_links":{"self":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts\/1619"}],"collection":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/comments?post=1619"}],"version-history":[{"count":118,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts\/1619\/revisions"}],"predecessor-version":[{"id":27354,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts\/1619\/revisions\/27354"}],"wp:attachment":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/media?parent=1619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/categories?post=1619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/tags?post=1619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}