<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nicolás' blog (Publicaciones sobre interpolación)</title><link>https://nicoguaro.github.io/</link><description></description><atom:link href="https://nicoguaro.github.io/es/categories/interpolacion.xml" rel="self" type="application/rss+xml"></atom:link><language>es</language><copyright>Contents © 2026 &lt;a href="mailto:nicoguarin@gmail.com"&gt;Nicolás Guarín-Zapata&lt;/a&gt; 
&lt;a rel="license" href="http://creativecommons.org/licenses/by/4.0/"&gt;
&lt;img alt="Creative Commons License"
style="border-width:0"
src="https://i.creativecommons.org/l/by/4.0/88x31.png"&gt;&lt;/a&gt;</copyright><lastBuildDate>Thu, 14 May 2026 21:25:42 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Reto de métodos numéricos: Día 13 - Splines cúbicas</title><link>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/</link><dc:creator>Nicolás Guarín-Zapata</dc:creator><description>&lt;p&gt;Durante octubre (2017) estaré escribiendo un programa por día para algunos
métodos numéricos famosos en Python y Julia. Esto está pensado como
un ejercicio, no esperen que el código sea lo suficientemente bueno para
usarse en la "vida real". Además, también debo mencionar que casi que no
tengo experiencia con Julia, así que probablemente no escriba un Julia
idiomático y se parezca más a Python.&lt;/p&gt;
&lt;section id="splines-cubicas"&gt;
&lt;h2&gt;Splines cúbicas&lt;/h2&gt;
&lt;p&gt;Hoy tenemos &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Spline_(mathematics)"&gt;interpolación por splines cúbicas&lt;/a&gt;.
Las splines cúbicas se usan a menudo porque brindan una aproximación a una
función con continuidad hasta la segunda derivada. Para más detalles se
puede revisar &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Spline_(mathematics)#Algorithm_for_computing_natural_cubic_splines"&gt;este algoritmo&lt;/a&gt;.
La diferencia principal es qeu formaremos la matriz y luego resolveremos el
sistema. Es más común resolver el sistema de forma directa ya que este es
tridiagonal.&lt;/p&gt;
&lt;p&gt;A continuación los códigos.&lt;/p&gt;
&lt;section id="python"&gt;
&lt;h3&gt;Python&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-1" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-1"&gt;&lt;/a&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;__future__&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;division&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;print_function&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-2" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-2"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;numpy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;np&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-3" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-3"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-4" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-5" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-6" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-6"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;spline_coeff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-7" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-7"&gt;&lt;/a&gt;    &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-8" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-8"&gt;&lt;/a&gt;    &lt;span class="n"&gt;d_up&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-9" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-9"&gt;&lt;/a&gt;    &lt;span class="n"&gt;d_up&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-10" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-10"&gt;&lt;/a&gt;    &lt;span class="n"&gt;d_down&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-11" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-11"&gt;&lt;/a&gt;    &lt;span class="n"&gt;d_down&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-12" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-12"&gt;&lt;/a&gt;    &lt;span class="n"&gt;d_cent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ones_like&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-13" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-13"&gt;&lt;/a&gt;    &lt;span class="n"&gt;d_cent&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:])&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-14" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-14"&gt;&lt;/a&gt;    &lt;span class="n"&gt;mat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;diag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d_cent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;diag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d_up&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;diag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d_down&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-15" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-15"&gt;&lt;/a&gt;    &lt;span class="n"&gt;alpha&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-16" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-16"&gt;&lt;/a&gt;    &lt;span class="n"&gt;alpha&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-17" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-17"&gt;&lt;/a&gt;    &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linalg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;solve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;alpha&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-18" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-18"&gt;&lt;/a&gt;    &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-19" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-19"&gt;&lt;/a&gt;    &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-20" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-20"&gt;&lt;/a&gt;    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-21" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-21"&gt;&lt;/a&gt;    &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-22" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-22" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-22"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-23" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-23" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-23"&gt;&lt;/a&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-24" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-24" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-24"&gt;&lt;/a&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-25" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-25" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-25"&gt;&lt;/a&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-26" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-26" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-26"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-27" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-27" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-27"&gt;&lt;/a&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-28" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-28" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-28"&gt;&lt;/a&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;spline_coeff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-29" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-29" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-29"&gt;&lt;/a&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;cont&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-30" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-30" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-30"&gt;&lt;/a&gt;    &lt;span class="n"&gt;x_loc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-31" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-31" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-31"&gt;&lt;/a&gt;    &lt;span class="n"&gt;y_loc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_loc&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;\
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-32" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-32" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-32"&gt;&lt;/a&gt;            &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_loc&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;\
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-33" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-33" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-33"&gt;&lt;/a&gt;            &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_loc&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-34" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-34" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-34"&gt;&lt;/a&gt;    &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_loc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_loc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"red"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-35" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-35" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-35"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"o"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-36" name="rest_code_f4bdfc9b90284e468a9e8bdd6490e248-36" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_f4bdfc9b90284e468a9e8bdd6490e248-36"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="julia"&gt;
&lt;h3&gt;Julia&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-1" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;using&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PyPlot&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-2" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-3" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-4" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-4"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;spline_coeff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-5" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-6" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;d_up&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-7" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;d_up&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-8" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;d_down&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-9" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;d_down&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-10" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;d_cent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ones&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-11" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;d_cent&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-12" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-12"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;mat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;diagm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d_cent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;diagm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d_up&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;diagm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d_down&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-13" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;alpha&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-14" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;alpha&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;3.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;3.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-15" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-15"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;alpha&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-16" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-16"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-17" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-18" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;./&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="o"&gt;./&lt;/span&gt;&lt;span class="mf"&gt;3.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-19" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-19"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;./&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-20" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-20"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-21" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-21"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-22" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-22" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-22"&gt;&lt;/a&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-23" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-23" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-23"&gt;&lt;/a&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-24" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-24" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-24"&gt;&lt;/a&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;21&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-25" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-25" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-25"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;collect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-26" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-26" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-26"&gt;&lt;/a&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sin&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-27" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-27" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-27"&gt;&lt;/a&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;spline_coeff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-28" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-28" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-28"&gt;&lt;/a&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-29" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-29" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-29"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;x_loc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-30" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-30" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-30"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;y_loc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_loc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-31" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-31" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-31"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_loc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-32" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-32" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-32"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_loc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-33" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-33" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-33"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_loc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_loc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"red"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-34" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-34" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-34"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-35" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-35" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-35"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"o"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-36" name="rest_code_57c33ca5b0c0421eae1881b63e41ca1d-36" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_57c33ca5b0c0421eae1881b63e41ca1d-36"&gt;&lt;/a&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En ambos casos el resultado es la siguiente gráfica.&lt;/p&gt;
&lt;img alt="Interpolación spline." class="align-center" src="https://nicoguaro.github.io/images/spline.svg" style="width: 500px;"&gt;
&lt;/section&gt;
&lt;section id="comparacion-python-julia"&gt;
&lt;h3&gt;Comparación Python/Julia&lt;/h3&gt;
&lt;p&gt;Respecto al número de líneas tenemos: 36 en Python y 37 en Julia.  La comparación
en tiempo de ejecución se realizó con el comando mágico de IPython &lt;code class="docutils literal"&gt;%timeit&lt;/code&gt;
y con &lt;code class="docutils literal"&gt;@benchmark&lt;/code&gt; en Julia.&lt;/p&gt;
&lt;p&gt;Para Python:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code IPython"&gt;&lt;a id="rest_code_549d6c9ec23c4cf99117e10f3bea97bc-1" name="rest_code_549d6c9ec23c4cf99117e10f3bea97bc-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_549d6c9ec23c4cf99117e10f3bea97bc-1"&gt;&lt;/a&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="k"&gt;timeit&lt;/span&gt; a, b, c, d = spline_coeff(x, y)
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;con resultado&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_9ccc7d9edd684600aeb057953bc89960-1" name="rest_code_9ccc7d9edd684600aeb057953bc89960-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_9ccc7d9edd684600aeb057953bc89960-1"&gt;&lt;/a&gt;1000 loops, best of 3: 216 µs per loop
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Para Julia:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_ab98e5d0e36d4c318034b2f4a8f2aeae-1" name="rest_code_ab98e5d0e36d4c318034b2f4a8f2aeae-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_ab98e5d0e36d4c318034b2f4a8f2aeae-1"&gt;&lt;/a&gt;&lt;span class="nd"&gt;@benchmark&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;spline_coeff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;con resultado&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-1" name="rest_code_555513bd289749248320a47a8bd05d17-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;BenchmarkTools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Trial&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-2" name="rest_code_555513bd289749248320a47a8bd05d17-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;estimate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mf"&gt;31.59&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;KiB&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-3" name="rest_code_555513bd289749248320a47a8bd05d17-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;allocs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;estimate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;52&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-4" name="rest_code_555513bd289749248320a47a8bd05d17-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--------------&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-5" name="rest_code_555513bd289749248320a47a8bd05d17-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;minimum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mf"&gt;18.024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;μs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.00&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-6" name="rest_code_555513bd289749248320a47a8bd05d17-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;median&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mf"&gt;26.401&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;μs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.00&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-7" name="rest_code_555513bd289749248320a47a8bd05d17-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;mean&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="mf"&gt;44.035&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;μs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;3.94&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-8" name="rest_code_555513bd289749248320a47a8bd05d17-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;maximum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mf"&gt;9.833&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.00&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-9" name="rest_code_555513bd289749248320a47a8bd05d17-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--------------&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-10" name="rest_code_555513bd289749248320a47a8bd05d17-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;samples&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="mi"&gt;10000&lt;/span&gt;
&lt;a id="rest_code_555513bd289749248320a47a8bd05d17-11" name="rest_code_555513bd289749248320a47a8bd05d17-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/#rest_code_555513bd289749248320a47a8bd05d17-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;evals&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sample&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En este caso, podemos decir que el código de Python es alrededor de 10 veces más
lento.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;</description><category>computación científica</category><category>interpolación</category><category>julia</category><category>métodos numéricos</category><category>python</category><guid>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-13/</guid><pubDate>Sat, 14 Oct 2017 00:20:06 GMT</pubDate></item><item><title>Reto de métodos numéricos: Día 12 - Interpolación de Hermite</title><link>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/</link><dc:creator>Nicolás Guarín-Zapata</dc:creator><description>&lt;p&gt;Durante octubre (2017) estaré escribiendo un programa por día para algunos
métodos numéricos famosos en Python y Julia. Esto está pensado como
un ejercicio, no esperen que el código sea lo suficientemente bueno para
usarse en la "vida real". Además, también debo mencionar que casi que no
tengo experiencia con Julia, así que probablemente no escriba un Julia
idiomático y se parezca más a Python.&lt;/p&gt;
&lt;section id="interpolacion-de-hermite-invirtiendo-la-matriz-de-vandermonde"&gt;
&lt;h2&gt;Interpolación de Hermite: Invirtiendo la matriz de Vandermonde&lt;/h2&gt;
&lt;p&gt;Hoy vamos a comparar la &lt;a class="reference external" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/posts/numerical-11"&gt;inerpolación de Lagrange&lt;/a&gt; con la
&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Hermite_interpolation"&gt;interpolación de Hermite&lt;/a&gt;.
Para este ejemplo usaremos la &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Vandermonde_matrix"&gt;matriz de Vandermone confluente&lt;/a&gt; &lt;span class="math"&gt;\(V\)&lt;/span&gt;. El código está
basado en un código mío &lt;em&gt;viejo&lt;/em&gt; que está disponible en
&lt;a class="reference external" href="https://github.com/nicoguaro/FEM_resources/terpolation/interp.py"&gt;este repo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Como en el caso de la interpolación de Lagrange, resolvemos el sistema&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
V\mathbf{c} = I
\end{equation*}
&lt;/div&gt;
&lt;p&gt;donde &lt;span class="math"&gt;\(\mathbf{c}\)&lt;/span&gt; es el vector de coeficientes y &lt;span class="math"&gt;\(I\)&lt;/span&gt; es la matriz
identidad. Este método no es estable y no debería usarse para cálculos de
interpoladores de orden alto, incluso para muestreos escogidos de forma óptima.
Este fallará alrededor de 20 puntos. Una mejor aproximación es usar interpolación
en &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Lagrange_polynomial#Barycentric_form"&gt;forma baricéntrico&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En el ejemplo a continuación usamos los &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Chebyshev_nodes"&gt;nodos de Chebyshev&lt;/a&gt;. Los nodos están dados por&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
x_k = \cos\left(\frac{2k-1}{2n}\pi\right), \quad k = 1, \ldots, n
\end{equation*}
&lt;/div&gt;
&lt;p&gt;donde &lt;span class="math"&gt;\(n\)&lt;/span&gt; es el grado del polinomio.&lt;/p&gt;
&lt;p&gt;A continuación se presentan los códigos.&lt;/p&gt;
&lt;section id="python"&gt;
&lt;h3&gt;Python&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-1" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-1"&gt;&lt;/a&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;__future__&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;division&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;print_function&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-2" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-2"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;numpy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;np&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-3" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-3"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-4" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-5" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-6" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-6"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-7" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-7"&gt;&lt;/a&gt;    &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-8" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-8"&gt;&lt;/a&gt;    &lt;span class="n"&gt;van&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-9" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-9"&gt;&lt;/a&gt;    &lt;span class="n"&gt;power&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-10" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-10"&gt;&lt;/a&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-11" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-11"&gt;&lt;/a&gt;        &lt;span class="n"&gt;van&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-12" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-12"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;van&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-13" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-13"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-14" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-14"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-15" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-15"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;conf_vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-16" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-16"&gt;&lt;/a&gt;    &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-17" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-17"&gt;&lt;/a&gt;    &lt;span class="n"&gt;conf_van&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-18" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-18"&gt;&lt;/a&gt;    &lt;span class="n"&gt;power&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-19" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-19"&gt;&lt;/a&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-20" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-20"&gt;&lt;/a&gt;        &lt;span class="n"&gt;conf_van&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-21" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-21"&gt;&lt;/a&gt;        &lt;span class="n"&gt;conf_van&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;power&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-22" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-22" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-22"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;conf_van&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-23" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-23" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-23"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-24" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-24" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-24"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-25" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-25" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-25"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inter_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"lagrange"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-26" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-26" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-26"&gt;&lt;/a&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;inter_type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"lagrange"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-27" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-27" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-27"&gt;&lt;/a&gt;        &lt;span class="n"&gt;vand_mat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-28" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-28" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-28"&gt;&lt;/a&gt;    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;inter_type&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"hermite"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-29" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-29" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-29"&gt;&lt;/a&gt;        &lt;span class="n"&gt;vand_mat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;conf_vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-30" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-30" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-30"&gt;&lt;/a&gt;    &lt;span class="n"&gt;coef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linalg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;solve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;vand_mat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eye&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;vand_mat&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shape&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-31" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-31" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-31"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;coef&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-32" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-32" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-32"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-33" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-33" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-33"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-34" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-34" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-34"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-35" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-35" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-35"&gt;&lt;/a&gt;    &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-36" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-36" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-36"&gt;&lt;/a&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-37" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-37" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-37"&gt;&lt;/a&gt;        &lt;span class="n"&gt;coef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inter_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"lagrange"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-38" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-38" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-38"&gt;&lt;/a&gt;    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-39" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-39" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-39"&gt;&lt;/a&gt;        &lt;span class="n"&gt;coef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inter_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"hermite"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-40" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-40" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-40"&gt;&lt;/a&gt;    &lt;span class="n"&gt;f_eval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-41" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-41" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-41"&gt;&lt;/a&gt;    &lt;span class="n"&gt;nmat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shape&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-42" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-42" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-42"&gt;&lt;/a&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nmat&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-43" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-43" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-43"&gt;&lt;/a&gt;        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nmat&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-44" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-44" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-44"&gt;&lt;/a&gt;            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;nmat&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-45" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-45" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-45"&gt;&lt;/a&gt;                &lt;span class="n"&gt;f_eval&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-46" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-46" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-46"&gt;&lt;/a&gt;            &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-47" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-47" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-47"&gt;&lt;/a&gt;                &lt;span class="n"&gt;f_eval&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-48" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-48" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-48"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;f_eval&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-49" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-49" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-49"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-50" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-50" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-50"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-51" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-51" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-51"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-52" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-52" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-52"&gt;&lt;/a&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-53" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-53" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-53"&gt;&lt;/a&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-54" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-54" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-54"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-55" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-55" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-55"&gt;&lt;/a&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-56" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-56" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-56"&gt;&lt;/a&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-57" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-57" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-57"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-58" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-58" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-58"&gt;&lt;/a&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-59" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-59" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-59"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-60" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-60" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-60"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;interp_f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-61" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-61" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-61"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s2"&gt;"."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-62" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-62" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-62"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ylim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-63" name="rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-63" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c1bc7ac81f149d78e1bdbeba63d6e21-63"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="julia"&gt;
&lt;h3&gt;Julia&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-1" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;using&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PyPlot&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-2" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-3" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-4" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-4"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-5" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-6" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;van&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-7" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-8" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-9" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;van&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-10" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-11" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;van&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-12" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-12"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-13" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-13"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-14" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-14"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-15" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-15"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;conf_vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-16" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-16"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-17" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;conf_van&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-18" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-19" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-19"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-20" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-20"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;conf_van&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-21" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-21"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;conf_van&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;&lt;span class="o"&gt;.*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-22" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-22" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-22"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-23" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-23" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-23"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;conf_van&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-24" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-24" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-24"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-25" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-25" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-25"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-26" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-26" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-26"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-27" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-27" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-27"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"lagrange"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-28" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-28" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-28"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"lagrange"&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-29" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-29" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-29"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;vand_mat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-30" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-30" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-30"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;elseif&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"hermite"&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-31" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-31" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-31"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;vand_mat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;conf_vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-32" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-32" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-32"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-33" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-33" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-33"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vand_mat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;eye&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;vand_mat&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-34" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-34" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-34"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-35" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-35" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-35"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-36" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-36" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-36"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-37" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-37" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-37"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-38" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-38" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-38"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;nothing&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-39" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-39" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-39"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-40" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-40" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-40"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;nothing&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-41" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-41" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-41"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"lagrange"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-42" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-42" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-42"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-43" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-43" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-43"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"hermite"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-44" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-44" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-44"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-45" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-45" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-45"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;f_eval&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-46" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-46" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-46"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;nmat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-47" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-47" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-47"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;nmat&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-48" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-48" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-48"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;nmat&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-49" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-49" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-49"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nmat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-50" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-50" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-50"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;f_eval&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-51" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-51" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-51"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-52" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-52" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-52"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;f_eval&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-53" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-53" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-53"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-54" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-54" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-54"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-55" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-55" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-55"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-56" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-56" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-56"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f_eval&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-57" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-57" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-57"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-58" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-58" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-58"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-59" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-59" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-59"&gt;&lt;/a&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-60" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-60" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-60"&gt;&lt;/a&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-61" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-61" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-61"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-62" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-62" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-62"&gt;&lt;/a&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-63" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-63" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-63"&gt;&lt;/a&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;./&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-64" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-64" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-64"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-65" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-65" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-65"&gt;&lt;/a&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-66" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-66" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-66"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-67" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-67" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-67"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-68" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-68" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-68"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-69" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-69" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-69"&gt;&lt;/a&gt;&lt;span class="n"&gt;ylim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-70" name="rest_code_c4172680a6d0403d9eaf3f1c23d2f674-70" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_c4172680a6d0403d9eaf3f1c23d2f674-70"&gt;&lt;/a&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En ambos casos el resultado es el siguiente gráfico.&lt;/p&gt;
&lt;img alt="Interpolación de Hermite usando la matriz de Vandermonde." class="align-center" src="https://nicoguaro.github.io/images/hermite_vandermonde.svg" style="width: 500px;"&gt;
&lt;p&gt;Y, si probamos con un &lt;span class="math"&gt;\(n\)&lt;/span&gt; grande, digamos &lt;span class="math"&gt;\(n=43\)&lt;/span&gt;, podemos ver los
problemas.&lt;/p&gt;
&lt;img alt="Interpolación de Hermite usando la matriz de Vandermonde." class="align-center" src="https://nicoguaro.github.io/images/hermite_vandermonde-n-23.svg" style="width: 500px;"&gt;
&lt;/section&gt;
&lt;section id="comparacion-python-julia"&gt;
&lt;h3&gt;Comparación Python/Julia&lt;/h3&gt;
&lt;p&gt;Respecto al número de líneas tenemos: 61 en Python y 70 en Julia.  La comparación
en tiempo de ejecución se realizó con el comando mágico de IPython &lt;code class="docutils literal"&gt;%timeit&lt;/code&gt;
y con &lt;code class="docutils literal"&gt;@benchmark&lt;/code&gt; en Julia.&lt;/p&gt;
&lt;p&gt;Para Python:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code IPython"&gt;&lt;a id="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-1" name="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_6d9e2f6db1aa49488a1ce4afc456346f-1"&gt;&lt;/a&gt;&lt;span class="o"&gt;%%timeit&lt;/span&gt; -n 100
&lt;a id="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-2" name="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_6d9e2f6db1aa49488a1ce4afc456346f-2"&gt;&lt;/a&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;
&lt;a id="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-3" name="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_6d9e2f6db1aa49488a1ce4afc456346f-3"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-4" name="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_6d9e2f6db1aa49488a1ce4afc456346f-4"&gt;&lt;/a&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-5" name="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_6d9e2f6db1aa49488a1ce4afc456346f-5"&gt;&lt;/a&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;a id="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-6" name="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_6d9e2f6db1aa49488a1ce4afc456346f-6"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-7" name="rest_code_6d9e2f6db1aa49488a1ce4afc456346f-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_6d9e2f6db1aa49488a1ce4afc456346f-7"&gt;&lt;/a&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;con resultado&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_4def3ff7389d42bba13dd35de6a8146f-1" name="rest_code_4def3ff7389d42bba13dd35de6a8146f-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_4def3ff7389d42bba13dd35de6a8146f-1"&gt;&lt;/a&gt;100 loops, best of 3: 18.1 ms per loop
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Para Julia:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_0c6084294dd84a79a23b2104882f882f-1" name="rest_code_0c6084294dd84a79a23b2104882f882f-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c6084294dd84a79a23b2104882f882f-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bench&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;a id="rest_code_0c6084294dd84a79a23b2104882f882f-2" name="rest_code_0c6084294dd84a79a23b2104882f882f-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c6084294dd84a79a23b2104882f882f-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;
&lt;a id="rest_code_0c6084294dd84a79a23b2104882f882f-3" name="rest_code_0c6084294dd84a79a23b2104882f882f-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c6084294dd84a79a23b2104882f882f-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_0c6084294dd84a79a23b2104882f882f-4" name="rest_code_0c6084294dd84a79a23b2104882f882f-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c6084294dd84a79a23b2104882f882f-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c6084294dd84a79a23b2104882f882f-5" name="rest_code_0c6084294dd84a79a23b2104882f882f-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c6084294dd84a79a23b2104882f882f-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;./&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;a id="rest_code_0c6084294dd84a79a23b2104882f882f-6" name="rest_code_0c6084294dd84a79a23b2104882f882f-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c6084294dd84a79a23b2104882f882f-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_0c6084294dd84a79a23b2104882f882f-7" name="rest_code_0c6084294dd84a79a23b2104882f882f-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c6084294dd84a79a23b2104882f882f-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_0c6084294dd84a79a23b2104882f882f-8" name="rest_code_0c6084294dd84a79a23b2104882f882f-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c6084294dd84a79a23b2104882f882f-8"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_0c6084294dd84a79a23b2104882f882f-9" name="rest_code_0c6084294dd84a79a23b2104882f882f-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_0c6084294dd84a79a23b2104882f882f-9"&gt;&lt;/a&gt;&lt;span class="nd"&gt;@benchmark&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bench&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;con resultado&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-1" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;BenchmarkTools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Trial&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-2" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;estimate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mf"&gt;3.13&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MiB&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-3" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;allocs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;estimate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;836&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-4" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--------------&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-5" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;minimum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mf"&gt;10.318&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.00&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-6" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;median&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mf"&gt;10.449&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.00&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-7" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;mean&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="mf"&gt;11.362&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1.74&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-8" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;maximum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mf"&gt;26.646&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.00&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-9" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--------------&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-10" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;samples&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;
&lt;a id="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-11" name="rest_code_23904d2193d74b8eb9455fd5bc74b8f9-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_23904d2193d74b8eb9455fd5bc74b8f9-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;evals&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sample&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En este caso, podemos decir que el código de Python es tan rápido como el de
Julia.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="comparacion-de-interpolacion-de-hermite-lagrange"&gt;
&lt;h3&gt;Comparación de Interpolación de Hermite/Lagrange&lt;/h3&gt;
&lt;p&gt;Queremos comparar la interpolación de Hermite y de Lagrange para el mismo
número de grados de libertad. Usamos la misma función para la prueba&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
f(x) = \frac{1}{1 + 25x^2}
\end{equation*}
&lt;/div&gt;
&lt;p&gt;Este es el código de Python que hace la comparación&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code Python"&gt;&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-1" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;n_dof&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-2" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-2"&gt;&lt;/a&gt;&lt;span class="n"&gt;error_herm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-3" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-3"&gt;&lt;/a&gt;&lt;span class="n"&gt;error_lag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-4" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-4"&gt;&lt;/a&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n_dof&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-5" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-5"&gt;&lt;/a&gt;    &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-6" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-6"&gt;&lt;/a&gt;    &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-7" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-7"&gt;&lt;/a&gt;    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-8" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-8"&gt;&lt;/a&gt;    &lt;span class="n"&gt;x2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-9" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-9"&gt;&lt;/a&gt;    &lt;span class="n"&gt;x_eval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-10" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-10"&gt;&lt;/a&gt;    &lt;span class="n"&gt;herm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-11" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-11"&gt;&lt;/a&gt;    &lt;span class="n"&gt;lag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-12" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-12"&gt;&lt;/a&gt;    &lt;span class="n"&gt;fun&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-13" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-13"&gt;&lt;/a&gt;    &lt;span class="n"&gt;error_herm&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linalg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fun&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;herm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linalg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-14" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-14"&gt;&lt;/a&gt;    &lt;span class="n"&gt;error_lag&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;cont&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linalg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fun&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;lag&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linalg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-15" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-16" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-16"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n_dof&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;error_lag&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-17" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-17"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n_dof&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;error_herm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-18" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-18"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Number of degrees of freedom"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-19" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-19"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ylabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Relative error"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-20" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-20"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;legend&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s2"&gt;"Lagrange"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Hermite"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-21" name="rest_code_1b7f1ec2b3a94052a613103edd71a3e6-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/#rest_code_1b7f1ec2b3a94052a613103edd71a3e6-21"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Y esta es la comparación de los errores relativos&lt;/p&gt;
&lt;img alt="Comparación de errores entre interpolación de Lagrange y Hermite." class="align-center" src="https://nicoguaro.github.io/images/hermite_lagrange_error.svg" style="width: 500px;"&gt;
&lt;p&gt;En general, la aproximación de Lagrange está cerca de la función.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;</description><category>computación científica</category><category>interpolación</category><category>julia</category><category>métodos numéricos</category><category>python</category><guid>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-12/</guid><pubDate>Thu, 12 Oct 2017 20:06:10 GMT</pubDate></item><item><title>Reto de métodos numéricos: Día 11 - Matrices de Vandermonde</title><link>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/</link><dc:creator>Nicolás Guarín-Zapata</dc:creator><description>&lt;p&gt;Durante octubre (2017) estaré escribiendo un programa por día para algunos
métodos numéricos famosos en Python y Julia. Esto está pensado como
un ejercicio, no esperen que el código sea lo suficientemente bueno para
usarse en la "vida real". Además, también debo mencionar que casi que no
tengo experiencia con Julia, así que probablemente no escriba un Julia
idiomático y se parezca más a Python.&lt;/p&gt;
&lt;section id="interpolacion-invirtiendo-la-matriz-de-vandermonde"&gt;
&lt;h2&gt;Interpolación: Invirtiendo la matriz de Vandermonde&lt;/h2&gt;
&lt;p&gt;Hoy tenemos &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Lagrange_polynomial"&gt;Lagrange interpolation&lt;/a&gt;, una vez más.
Esta vez usaré un enfoque diferente para calcular la interpolación;
construiré la &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Vandermonde_matrix"&gt;matriz de Vandermonde&lt;/a&gt; &lt;span class="math"&gt;\(V\)&lt;/span&gt; y resolveré
el sistema de ecuaciones.&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
V\mathbf{c} = I
\end{equation*}
&lt;/div&gt;
&lt;p&gt;donde &lt;span class="math"&gt;\(\mathbf{c}\)&lt;/span&gt; es el vector de coeficientes y &lt;span class="math"&gt;\(I\)&lt;/span&gt; es la matriz
identidad. Este método, y &lt;a class="reference external" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/posts/numerical-09/"&gt;el anterior&lt;/a&gt;
no son estables y no deberían usarse para el cálculo de interpoladores de alto
orden, incluso para muestreos optimamente seleccionados. Fallará alrededor
de 40 puntos. Un mejor enfoque es usar la &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Lagrange_polynomial#Barycentric_form"&gt;forma baricéntrica&lt;/a&gt;
de la interpolación.&lt;/p&gt;
&lt;p&gt;En el ejemplo abajo usamos los &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Chebyshev_nodes"&gt;nodos de Chebyshev&lt;/a&gt;.
Los nodos están dados por&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
x_k = \cos\left(\frac{2k-1}{2n}\pi\right), \quad k = 1, \ldots, n
\end{equation*}
&lt;/div&gt;
&lt;p&gt;donde &lt;span class="math"&gt;\(n\)&lt;/span&gt; es el grado del polinomio.&lt;/p&gt;
&lt;p&gt;A continuación se presentan los códigos.&lt;/p&gt;
&lt;section id="python"&gt;
&lt;h3&gt;Python&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-1" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-1"&gt;&lt;/a&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;__future__&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;division&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;print_function&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-2" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-2"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;numpy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;np&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-3" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-3"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-4" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-5" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-6" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-6"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-7" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-7"&gt;&lt;/a&gt;    &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-8" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-8"&gt;&lt;/a&gt;    &lt;span class="n"&gt;van&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-9" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-9"&gt;&lt;/a&gt;    &lt;span class="n"&gt;power&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-10" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-10"&gt;&lt;/a&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-11" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-11"&gt;&lt;/a&gt;        &lt;span class="n"&gt;van&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-12" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-12"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;van&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-13" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-13"&gt;&lt;/a&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-14" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-14"&gt;&lt;/a&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-15" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-15"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-16" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-16"&gt;&lt;/a&gt;    &lt;span class="n"&gt;vand_mat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-17" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-17"&gt;&lt;/a&gt;    &lt;span class="n"&gt;coef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linalg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;solve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;vand_mat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eye&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-18" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-18"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;coef&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-19" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-19"&gt;&lt;/a&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-20" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-20"&gt;&lt;/a&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-21" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-21"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-22" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-22" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-22"&gt;&lt;/a&gt;    &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-23" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-23" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-23"&gt;&lt;/a&gt;    &lt;span class="n"&gt;coef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-24" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-24" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-24"&gt;&lt;/a&gt;    &lt;span class="n"&gt;f_eval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-25" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-25" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-25"&gt;&lt;/a&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-26" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-26" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-26"&gt;&lt;/a&gt;        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-27" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-27" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-27"&gt;&lt;/a&gt;            &lt;span class="n"&gt;f_eval&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-28" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-28" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-28"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;f_eval&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-29" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-29" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-29"&gt;&lt;/a&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-30" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-30" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-30"&gt;&lt;/a&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-31" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-31" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-31"&gt;&lt;/a&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-32" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-32" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-32"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-33" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-33" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-33"&gt;&lt;/a&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-34" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-34" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-34"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-35" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-35" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-35"&gt;&lt;/a&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-36" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-36" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-36"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;figure&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-37" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-37" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-37"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-38" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-38" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-38"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;interp_f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-39" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-39" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-39"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-40" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-40" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-40"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ylim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-41" name="rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-41" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_f51e57d1a4dc40f5a7b66ba92545a42b-41"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="julia"&gt;
&lt;h3&gt;Julia&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-1" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;using&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PyPlot&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-2" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-3" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-4" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-4"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-5" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-6" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;van&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-7" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-8" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-9" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;van&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="n"&gt;power&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-10" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-11" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;van&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-12" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-12"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-13" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-13"&gt;&lt;/a&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-14" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-14"&gt;&lt;/a&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-15" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-15"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-16" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-16"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;vand_mat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vander_mat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-17" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vand_mat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;\&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;eye&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-18" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-19" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-19"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-20" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-20"&gt;&lt;/a&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-21" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-21"&gt;&lt;/a&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-22" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-22" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-22"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-23" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-23" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-23"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-24" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-24" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-24"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inter_coef&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-25" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-25" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-25"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;f_eval&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-26" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-26" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-26"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-27" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-27" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-27"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-28" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-28" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-28"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;f_eval&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;coef&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-29" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-29" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-29"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-30" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-30" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-30"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-31" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-31" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-31"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f_eval&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-32" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-32" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-32"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-33" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-33" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-33"&gt;&lt;/a&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-34" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-34" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-34"&gt;&lt;/a&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-35" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-35" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-35"&gt;&lt;/a&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-36" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-36" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-36"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-37" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-37" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-37"&gt;&lt;/a&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-38" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-38" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-38"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-39" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-39" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-39"&gt;&lt;/a&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-40" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-40" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-40"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-41" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-41" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-41"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-42" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-42" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-42"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-43" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-43" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-43"&gt;&lt;/a&gt;&lt;span class="n"&gt;ylim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-44" name="rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-44" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_27c34b7aee4e4bfc9e40c1e49b99ea81-44"&gt;&lt;/a&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En ambos casos el resultado es el siguiente gráfico.&lt;/p&gt;
&lt;img alt="Interpolación de Lagrange usando la matriz de Vandermonde." class="align-center" src="https://nicoguaro.github.io/images/lagrange_vandermonde.svg" style="width: 500px;"&gt;
&lt;p&gt;Y, si intentamos con un &lt;span class="math"&gt;\(n\)&lt;/span&gt; alto, digamos &lt;span class="math"&gt;\(n=45\)&lt;/span&gt;, podemos ver los
problemas.&lt;/p&gt;
&lt;img alt="Interpolación de Lagrange usando la matriz de Vandermonde para 45 puntos." class="align-center" src="https://nicoguaro.github.io/images/lagrange_vandermonde-n-45.svg" style="width: 500px;"&gt;
&lt;/section&gt;
&lt;section id="comparacion-python-julia"&gt;
&lt;h3&gt;Comparación Python/Julia&lt;/h3&gt;
&lt;p&gt;Respecto al número de líneas tenemos: 41 en Python y 44 en Julia.  La comparación
en tiempo de ejecución se realizó con el comando mágico de IPython &lt;code class="docutils literal"&gt;%timeit&lt;/code&gt;
y con &lt;code class="docutils literal"&gt;@benchmark&lt;/code&gt; en Julia.&lt;/p&gt;
&lt;p&gt;Para Python:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code IPython"&gt;&lt;a id="rest_code_45a828681a804ec09335a3d55f0c5f94-1" name="rest_code_45a828681a804ec09335a3d55f0c5f94-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_45a828681a804ec09335a3d55f0c5f94-1"&gt;&lt;/a&gt;&lt;span class="o"&gt;%%timeit&lt;/span&gt; -n 100
&lt;a id="rest_code_45a828681a804ec09335a3d55f0c5f94-2" name="rest_code_45a828681a804ec09335a3d55f0c5f94-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_45a828681a804ec09335a3d55f0c5f94-2"&gt;&lt;/a&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;
&lt;a id="rest_code_45a828681a804ec09335a3d55f0c5f94-3" name="rest_code_45a828681a804ec09335a3d55f0c5f94-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_45a828681a804ec09335a3d55f0c5f94-3"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_45a828681a804ec09335a3d55f0c5f94-4" name="rest_code_45a828681a804ec09335a3d55f0c5f94-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_45a828681a804ec09335a3d55f0c5f94-4"&gt;&lt;/a&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_45a828681a804ec09335a3d55f0c5f94-5" name="rest_code_45a828681a804ec09335a3d55f0c5f94-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_45a828681a804ec09335a3d55f0c5f94-5"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_45a828681a804ec09335a3d55f0c5f94-6" name="rest_code_45a828681a804ec09335a3d55f0c5f94-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_45a828681a804ec09335a3d55f0c5f94-6"&gt;&lt;/a&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;con resultado&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_3d9c94be56fc4d7a8494e0055226e192-1" name="rest_code_3d9c94be56fc4d7a8494e0055226e192-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_3d9c94be56fc4d7a8494e0055226e192-1"&gt;&lt;/a&gt;100 loops, best of 3: 7.86 ms per loop
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Para Julia:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_7d517043681f431faea0d4fa5052b6a6-1" name="rest_code_7d517043681f431faea0d4fa5052b6a6-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_7d517043681f431faea0d4fa5052b6a6-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bench&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;a id="rest_code_7d517043681f431faea0d4fa5052b6a6-2" name="rest_code_7d517043681f431faea0d4fa5052b6a6-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_7d517043681f431faea0d4fa5052b6a6-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_7d517043681f431faea0d4fa5052b6a6-3" name="rest_code_7d517043681f431faea0d4fa5052b6a6-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_7d517043681f431faea0d4fa5052b6a6-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d517043681f431faea0d4fa5052b6a6-4" name="rest_code_7d517043681f431faea0d4fa5052b6a6-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_7d517043681f431faea0d4fa5052b6a6-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d517043681f431faea0d4fa5052b6a6-5" name="rest_code_7d517043681f431faea0d4fa5052b6a6-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_7d517043681f431faea0d4fa5052b6a6-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;interp_f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;compute_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_eval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d517043681f431faea0d4fa5052b6a6-6" name="rest_code_7d517043681f431faea0d4fa5052b6a6-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_7d517043681f431faea0d4fa5052b6a6-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;nothing&lt;/span&gt;
&lt;a id="rest_code_7d517043681f431faea0d4fa5052b6a6-7" name="rest_code_7d517043681f431faea0d4fa5052b6a6-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_7d517043681f431faea0d4fa5052b6a6-7"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_7d517043681f431faea0d4fa5052b6a6-8" name="rest_code_7d517043681f431faea0d4fa5052b6a6-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_7d517043681f431faea0d4fa5052b6a6-8"&gt;&lt;/a&gt;&lt;span class="nd"&gt;@benchmark&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bench&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;con resultado&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-1" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;BenchmarkTools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Trial&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-2" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;estimate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mf"&gt;32.23&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MiB&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-3" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;allocs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;estimate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;8277&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-4" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--------------&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-5" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;minimum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mf"&gt;114.282&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1.50&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-6" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;median&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mf"&gt;122.061&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1.46&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-7" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;mean&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="mf"&gt;129.733&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1.90&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-8" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;maximum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mf"&gt;163.716&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1.98&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-9" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--------------&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-10" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;samples&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="mi"&gt;39&lt;/span&gt;
&lt;a id="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-11" name="rest_code_a0027bc844e14a3eb4c5566b2ac3c922-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/#rest_code_a0027bc844e14a3eb4c5566b2ac3c922-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;evals&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sample&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En este caso, podemos decir que el código de Python es alrededor de 16
veces más rápido que el de Julia.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;</description><category>computación científica</category><category>interpolación</category><category>julia</category><category>métodos numéricos</category><category>python</category><guid>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-11/</guid><pubDate>Wed, 11 Oct 2017 17:25:10 GMT</pubDate></item><item><title>Reto de métodos numéricos: Día 10 - Fenómeno de Runge</title><link>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/</link><dc:creator>Nicolás Guarín-Zapata</dc:creator><description>&lt;p&gt;Durante octubre (2017) estaré escribiendo un programa por día para algunos
métodos numéricos famosos en Python y Julia. Esto está pensado como
un ejercicio, no esperen que el código sea lo suficientemente bueno para
usarse en la "vida real". Además, también debo mencionar que casi que no
tengo experiencia con Julia, así que probablemente no escriba un Julia
idiomático y se parezca más a Python.&lt;/p&gt;
&lt;section id="interpolacion-de-lagrange-fenomeno-de-runge"&gt;
&lt;h2&gt;Interpolación de Lagrange: fenómeno de Runge&lt;/h2&gt;
&lt;p&gt;Hoy tenemos la &lt;a class="reference external" href="https://es.wikipedia.org/wiki/Interpolaci%C3%B3n_polin%C3%B3mica_de_Lagrange"&gt;interpolación de Lagrange&lt;/a&gt;,
de nuevo. Técnicamente, no estoy publicando sobre un método diferente sino
publicando el &lt;a class="reference external" href="https://nicoguaro.github.io/posts/numerical-09/"&gt;mismo algoritmo para interpolar&lt;/a&gt;.
La diferencia es que cambiaré el muestreo, es decir, usaré un muestreo que
no es uniforme.&lt;/p&gt;
&lt;p&gt;El problema con la interpolación uniforme se conoce como
&lt;a class="reference external" href="https://es.wikipedia.org/wiki/Fen%C3%B3meno_de_Runge"&gt;fenómeno de Runge&lt;/a&gt;
y se ilustra con la siguiente imagen.&lt;/p&gt;
&lt;img alt="Fenómeno de Runge." class="align-center" src="https://nicoguaro.github.io/images/runge_phenomenon.svg" style="width: 500px;"&gt;
&lt;p&gt;Una forma de mitigar el problema es usar muestreo no uniforme, como los
&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Chebyshev_nodes"&gt;nodos de Chebyshev&lt;/a&gt; o los
&lt;a class="reference external" href="https://en.wikipedia.org/wiki/Gaussian_quadrature#Gauss.E2.80.93Lobatto_rules"&gt;nodos de Lobatto&lt;/a&gt;.
El primero de estos muestreos minimiza el fenómeno de Runge, mientras que el
segundo maximiza el &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Vandermonde_matrix"&gt;determinant de Vandermonde&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En el ejemplo a continuación usamos el muestreo de Lobatto. Los nodos de Lobatto
son los ceros de&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
(1 - x^2) P'_N(x)
\end{equation*}
&lt;/div&gt;
&lt;p&gt;donde &lt;span class="math"&gt;\(P_N\)&lt;/span&gt; se refiere al N-ésimo polinomio de Legendre. El uso de estos
nodos es útil en integración numérica y métodos espectrales. Encontrar los ceros
de estos polinomios puede ser engorroso, en general. En este caso, usamos
un método originalmente implementado en &lt;a class="reference external" href="http://www.mathworks.com/matlabcentral/fileexchange/4775-legende-gauss-lobatto-nodes-and-weights"&gt;MATLAB por Greg von Winckel&lt;/a&gt;
que usa los nodos de Chebyshev como una aproximación inicial y luego
actualiza este aproximación usando el método de Newton-Raphson.&lt;/p&gt;
&lt;p&gt;A continuación se presentan los códigos.&lt;/p&gt;
&lt;section id="python"&gt;
&lt;h3&gt;Python&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-1" name="rest_code_2326cbd879d74e338558b77ef2785332-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-1"&gt;&lt;/a&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;__future__&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;division&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-2" name="rest_code_2326cbd879d74e338558b77ef2785332-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-2"&gt;&lt;/a&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;numpy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;amax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-3" name="rest_code_2326cbd879d74e338558b77ef2785332-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-3"&gt;&lt;/a&gt;                   &lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prod&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-4" name="rest_code_2326cbd879d74e338558b77ef2785332-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-4"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-5" name="rest_code_2326cbd879d74e338558b77ef2785332-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-6" name="rest_code_2326cbd879d74e338558b77ef2785332-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-6"&gt;&lt;/a&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-7" name="rest_code_2326cbd879d74e338558b77ef2785332-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-7"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-8" name="rest_code_2326cbd879d74e338558b77ef2785332-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-8"&gt;&lt;/a&gt;    &lt;span class="n"&gt;y_new&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-9" name="rest_code_2326cbd879d74e338558b77ef2785332-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-9"&gt;&lt;/a&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;yi&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-10" name="rest_code_2326cbd879d74e338558b77ef2785332-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-10"&gt;&lt;/a&gt;        &lt;span class="n"&gt;y_new&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;yi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;&lt;span class="p"&gt;([(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xi&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-11" name="rest_code_2326cbd879d74e338558b77ef2785332-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-11"&gt;&lt;/a&gt;                         &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;xj&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;x_int&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;axis&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-12" name="rest_code_2326cbd879d74e338558b77ef2785332-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-12"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;y_new&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-13" name="rest_code_2326cbd879d74e338558b77ef2785332-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-13"&gt;&lt;/a&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-14" name="rest_code_2326cbd879d74e338558b77ef2785332-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-14"&gt;&lt;/a&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-15" name="rest_code_2326cbd879d74e338558b77ef2785332-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-15"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;gauss_lobatto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tol&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-15&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-16" name="rest_code_2326cbd879d74e338558b77ef2785332-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-16"&gt;&lt;/a&gt;    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-17" name="rest_code_2326cbd879d74e338558b77ef2785332-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-17"&gt;&lt;/a&gt;    &lt;span class="n"&gt;P&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# Vandermonde Matrix&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-18" name="rest_code_2326cbd879d74e338558b77ef2785332-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-18"&gt;&lt;/a&gt;    &lt;span class="n"&gt;x_old&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-19" name="rest_code_2326cbd879d74e338558b77ef2785332-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-19"&gt;&lt;/a&gt;    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;amax&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;x_old&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;tol&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-20" name="rest_code_2326cbd879d74e338558b77ef2785332-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-20"&gt;&lt;/a&gt;        &lt;span class="n"&gt;x_old&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-21" name="rest_code_2326cbd879d74e338558b77ef2785332-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-21"&gt;&lt;/a&gt;        &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-22" name="rest_code_2326cbd879d74e338558b77ef2785332-22" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-22"&gt;&lt;/a&gt;        &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-23" name="rest_code_2326cbd879d74e338558b77ef2785332-23" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-23"&gt;&lt;/a&gt;        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-24" name="rest_code_2326cbd879d74e338558b77ef2785332-24" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-24"&gt;&lt;/a&gt;            &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-25" name="rest_code_2326cbd879d74e338558b77ef2785332-25" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-25"&gt;&lt;/a&gt;                       &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-26" name="rest_code_2326cbd879d74e338558b77ef2785332-26" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-26"&gt;&lt;/a&gt;        &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x_old&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-27" name="rest_code_2326cbd879d74e338558b77ef2785332-27" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-27"&gt;&lt;/a&gt;        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-28" name="rest_code_2326cbd879d74e338558b77ef2785332-28" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-28"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-29" name="rest_code_2326cbd879d74e338558b77ef2785332-29" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-29"&gt;&lt;/a&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-30" name="rest_code_2326cbd879d74e338558b77ef2785332-30" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-30"&gt;&lt;/a&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-31" name="rest_code_2326cbd879d74e338558b77ef2785332-31" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-31"&gt;&lt;/a&gt;&lt;span class="n"&gt;runge&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-32" name="rest_code_2326cbd879d74e338558b77ef2785332-32" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-32"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-33" name="rest_code_2326cbd879d74e338558b77ef2785332-33" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-33"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-34" name="rest_code_2326cbd879d74e338558b77ef2785332-34" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-34"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_int2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;gauss_lobatto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-35" name="rest_code_2326cbd879d74e338558b77ef2785332-35" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-35"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_new&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-36" name="rest_code_2326cbd879d74e338558b77ef2785332-36" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-36"&gt;&lt;/a&gt;&lt;span class="n"&gt;y_new&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;runge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-37" name="rest_code_2326cbd879d74e338558b77ef2785332-37" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-37"&gt;&lt;/a&gt;&lt;span class="n"&gt;y_new2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;runge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-38" name="rest_code_2326cbd879d74e338558b77ef2785332-38" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-38"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;runge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s2"&gt;"k"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-39" name="rest_code_2326cbd879d74e338558b77ef2785332-39" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-39"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-40" name="rest_code_2326cbd879d74e338558b77ef2785332-40" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-40"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_new2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-41" name="rest_code_2326cbd879d74e338558b77ef2785332-41" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-41"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;legend&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s2"&gt;"Runge function"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-42" name="rest_code_2326cbd879d74e338558b77ef2785332-42" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-42"&gt;&lt;/a&gt;            &lt;span class="s2"&gt;"Uniform interpolation"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-43" name="rest_code_2326cbd879d74e338558b77ef2785332-43" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-43"&gt;&lt;/a&gt;            &lt;span class="s2"&gt;"Lobatto-sampling interpolation"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-44" name="rest_code_2326cbd879d74e338558b77ef2785332-44" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-44"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"x"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-45" name="rest_code_2326cbd879d74e338558b77ef2785332-45" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-45"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ylabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"y"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_2326cbd879d74e338558b77ef2785332-46" name="rest_code_2326cbd879d74e338558b77ef2785332-46" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_2326cbd879d74e338558b77ef2785332-46"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="julia"&gt;
&lt;h3&gt;Julia&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-1" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;using&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PyPlot&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-2" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-3" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-4" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-4"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-5" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-6" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;yi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-7" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ones&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-8" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-9" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-10" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;&lt;span class="o"&gt;.*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-11" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-12" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-12"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-13" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;yi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-14" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-15" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-15"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-16" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-16"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-17" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-17"&gt;&lt;/a&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-18" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-18"&gt;&lt;/a&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-19" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-19"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;gauss_lobatto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tol&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-20" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-20"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-21" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-21"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c"&gt;# Vandermonde Matrix&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-22" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-22" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-22"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;x_old&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-23" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-23" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-23"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;maximum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_old&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tol&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-24" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-24" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-24"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;x_old&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-25" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-25" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-25"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-26" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-26" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-26"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-27" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-27" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-27"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-28" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-28" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-28"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-29" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-29" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-29"&gt;&lt;/a&gt;&lt;span class="w"&gt;                       &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-30" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-30" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-30"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-31" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-31" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-31"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_old&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;./&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;P&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-32" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-32" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-32"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-33" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-33" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-33"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-34" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-34" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-34"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-35" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-35" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-35"&gt;&lt;/a&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-36" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-36" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-36"&gt;&lt;/a&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-37" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-37" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-37"&gt;&lt;/a&gt;&lt;span class="n"&gt;runge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.^&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-38" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-38" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-38"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-39" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-39" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-39"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-40" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-40" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-40"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_int2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;gauss_lobatto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-41" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-41" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-41"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-42" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-42" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-42"&gt;&lt;/a&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;runge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-43" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-43" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-43"&gt;&lt;/a&gt;&lt;span class="n"&gt;y_new2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;runge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-44" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-44" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-44"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;runge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"k"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-45" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-45" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-45"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-46" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-46" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-46"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_new2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-47" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-47" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-47"&gt;&lt;/a&gt;&lt;span class="n"&gt;legend&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s"&gt;"Runge function"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-48" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-48" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-48"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="s"&gt;"Uniform interpolation"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-49" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-49" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-49"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="s"&gt;"Lobatto-sampling interpolation"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-50" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-50" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-50"&gt;&lt;/a&gt;&lt;span class="n"&gt;xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"x"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-51" name="rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-51" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/#rest_code_7d8b87e2d1d7434eb0abfc7095799bb0-51"&gt;&lt;/a&gt;&lt;span class="n"&gt;ylabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"y"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En cambos casos el resultado es el gráfico que se muestra a continuación&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;</description><category>computación científica</category><category>interpolación</category><category>julia</category><category>métodos numéricos</category><category>python</category><guid>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-10/</guid><pubDate>Wed, 11 Oct 2017 02:16:26 GMT</pubDate></item><item><title>Reto de métodos numéricos: Día 9 - Interpolación de Lagrange</title><link>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/</link><dc:creator>Nicolás Guarín-Zapata</dc:creator><description>&lt;p&gt;Durante octubre (2017) estaré escribiendo un programa por día para algunos
métodos numéricos famosos en Python y Julia. Esto está pensado como
un ejercicio, no esperen que el código sea lo suficientemente bueno para
usarse en la "vida real". Además, también debo mencionar que casi que no
tengo experiencia con Julia, así que probablemente no escriba un Julia
idiomático y se parezca más a Python.&lt;/p&gt;
&lt;section id="interpolacion-de-lagrange"&gt;
&lt;h2&gt;Interpolación de Lagrange&lt;/h2&gt;
&lt;p&gt;Hoy tenemos la &lt;a class="reference external" href="https://es.wikipedia.org/wiki/Interpolaci%C3%B3n_polin%C3%B3mica_de_Lagrange"&gt;interpolación de Lagrange&lt;/a&gt;.
Esta se define con&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
L(x) = \sum_{j=0}^{k} y_j \prod_{m\neq j}\frac{x - x_m}{x_j - x_m}
\end{equation*}
&lt;/div&gt;
&lt;p&gt;donde &lt;span class="math"&gt;\(x\)&lt;/span&gt; son los puntos en donde queremos interpolar.&lt;/p&gt;
&lt;p&gt;Probaremos el meodo con una sigmoide&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
f(x) = \frac{1}{1 + e^{-x}}
\end{equation*}
&lt;/div&gt;
&lt;p&gt;A continuación se presentan los códigos.&lt;/p&gt;
&lt;section id="python"&gt;
&lt;h3&gt;Python&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-1" name="rest_code_6ba939023a59475f814aaed595e269f1-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-1"&gt;&lt;/a&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;__future__&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;division&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-2" name="rest_code_6ba939023a59475f814aaed595e269f1-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-2"&gt;&lt;/a&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;numpy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prod&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-3" name="rest_code_6ba939023a59475f814aaed595e269f1-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-3"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-4" name="rest_code_6ba939023a59475f814aaed595e269f1-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-5" name="rest_code_6ba939023a59475f814aaed595e269f1-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-6" name="rest_code_6ba939023a59475f814aaed595e269f1-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-6"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-7" name="rest_code_6ba939023a59475f814aaed595e269f1-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-7"&gt;&lt;/a&gt;    &lt;span class="n"&gt;y_new&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;zeros_like&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-8" name="rest_code_6ba939023a59475f814aaed595e269f1-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-8"&gt;&lt;/a&gt;    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;yi&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-9" name="rest_code_6ba939023a59475f814aaed595e269f1-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-9"&gt;&lt;/a&gt;        &lt;span class="n"&gt;y_new&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;yi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;&lt;span class="p"&gt;([(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xi&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-10" name="rest_code_6ba939023a59475f814aaed595e269f1-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-10"&gt;&lt;/a&gt;                         &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;xj&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;x_int&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;axis&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-11" name="rest_code_6ba939023a59475f814aaed595e269f1-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-11"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;y_new&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-12" name="rest_code_6ba939023a59475f814aaed595e269f1-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-12"&gt;&lt;/a&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-13" name="rest_code_6ba939023a59475f814aaed595e269f1-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-13"&gt;&lt;/a&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-14" name="rest_code_6ba939023a59475f814aaed595e269f1-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-14"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-15" name="rest_code_6ba939023a59475f814aaed595e269f1-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-15"&gt;&lt;/a&gt;&lt;span class="n"&gt;y_int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-16" name="rest_code_6ba939023a59475f814aaed595e269f1-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-16"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_new&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-17" name="rest_code_6ba939023a59475f814aaed595e269f1-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-17"&gt;&lt;/a&gt;&lt;span class="n"&gt;y_new&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-18" name="rest_code_6ba939023a59475f814aaed595e269f1-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-18"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"ok"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-19" name="rest_code_6ba939023a59475f814aaed595e269f1-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-19"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_6ba939023a59475f814aaed595e269f1-20" name="rest_code_6ba939023a59475f814aaed595e269f1-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_6ba939023a59475f814aaed595e269f1-20"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="julia"&gt;
&lt;h3&gt;Julia&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_999678135e4e4e4299390f25714af180-1" name="rest_code_999678135e4e4e4299390f25714af180-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;using&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PyPlot&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-2" name="rest_code_999678135e4e4e4299390f25714af180-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-3" name="rest_code_999678135e4e4e4299390f25714af180-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-3"&gt;&lt;/a&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-4" name="rest_code_999678135e4e4e4299390f25714af180-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zeros&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-5" name="rest_code_999678135e4e4e4299390f25714af180-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;yi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-6" name="rest_code_999678135e4e4e4299390f25714af180-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ones&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-7" name="rest_code_999678135e4e4e4299390f25714af180-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-8" name="rest_code_999678135e4e4e4299390f25714af180-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-9" name="rest_code_999678135e4e4e4299390f25714af180-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;&lt;span class="o"&gt;.*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-10" name="rest_code_999678135e4e4e4299390f25714af180-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-11" name="rest_code_999678135e4e4e4299390f25714af180-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-12" name="rest_code_999678135e4e4e4299390f25714af180-12" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-12"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;yi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;prod&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-13" name="rest_code_999678135e4e4e4299390f25714af180-13" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-14" name="rest_code_999678135e4e4e4299390f25714af180-14" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-15" name="rest_code_999678135e4e4e4299390f25714af180-15" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-15"&gt;&lt;/a&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-16" name="rest_code_999678135e4e4e4299390f25714af180-16" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-16"&gt;&lt;/a&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-17" name="rest_code_999678135e4e4e4299390f25714af180-17" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-17"&gt;&lt;/a&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-18" name="rest_code_999678135e4e4e4299390f25714af180-18" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-18"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-19" name="rest_code_999678135e4e4e4299390f25714af180-19" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-19"&gt;&lt;/a&gt;&lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-20" name="rest_code_999678135e4e4e4299390f25714af180-20" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-20"&gt;&lt;/a&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-21" name="rest_code_999678135e4e4e4299390f25714af180-21" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-21"&gt;&lt;/a&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lagrange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-22" name="rest_code_999678135e4e4e4299390f25714af180-22" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-22"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"ok"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_999678135e4e4e4299390f25714af180-23" name="rest_code_999678135e4e4e4299390f25714af180-23" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_999678135e4e4e4299390f25714af180-23"&gt;&lt;/a&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x_new&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y_new&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En ambos casos el resultado es el siguiente gráfico&lt;/p&gt;
&lt;img alt="Interpolación de Lagrange." class="align-center" src="https://nicoguaro.github.io/images/lagrange_interp.svg" style="width: 400px;"&gt;
&lt;/section&gt;
&lt;section id="comparacion-python-julia"&gt;
&lt;h3&gt;Comparación Python/Julia&lt;/h3&gt;
&lt;p&gt;Respecto al número de líneas tenemos: 34 en Python y 37 en Julia. La comparación
en tiempo de ejecución se realizó con el comando mágico de IPython &lt;code class="docutils literal"&gt;%timeit&lt;/code&gt;
y con &lt;code class="docutils literal"&gt;@benchmark&lt;/code&gt; en Julia.&lt;/p&gt;
&lt;p&gt;Para Python:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code IPython"&gt;&lt;a id="rest_code_d7364222c07246ccacdf300a0f03d2d4-1" name="rest_code_d7364222c07246ccacdf300a0f03d2d4-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_d7364222c07246ccacdf300a0f03d2d4-1"&gt;&lt;/a&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="k"&gt;timeit&lt;/span&gt; lagrange(x_int, y_int, x_new)
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;con resultado&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_f884c808b8b545ff8ee6b86d6d13133a-1" name="rest_code_f884c808b8b545ff8ee6b86d6d13133a-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_f884c808b8b545ff8ee6b86d6d13133a-1"&gt;&lt;/a&gt;1000 loops, best of 3: 1.55 ms per loop
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Para Julia:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_17b5344bd99a45b19417075097b290d7-1" name="rest_code_17b5344bd99a45b19417075097b290d7-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_17b5344bd99a45b19417075097b290d7-1"&gt;&lt;/a&gt;&lt;span class="nd"&gt;@benchmark&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;newton_opt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rosen&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;rosen_grad&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;rosen_hess&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;con resultado&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code julia"&gt;&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-1" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-1" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;BenchmarkTools&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Trial&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-2" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-2" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;memory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;estimate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mf"&gt;1.97&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MiB&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-3" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-3" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;allocs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;estimate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;254&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-4" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-4" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--------------&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-5" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-5" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;minimum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mf"&gt;737.665&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;μs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.00&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-6" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-6" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;median&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mf"&gt;811.633&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;μs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.00&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-7" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-7" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;mean&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="mf"&gt;916.450&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;μs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;10.77&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-8" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-8" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;maximum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mf"&gt;3.119&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;64.40&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-9" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-9" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;--------------&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-10" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-10" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;samples&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="mi"&gt;5433&lt;/span&gt;
&lt;a id="rest_code_56737a66eebe4f34ad24146bfe1b9474-11" name="rest_code_56737a66eebe4f34ad24146bfe1b9474-11" href="https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/#rest_code_56737a66eebe4f34ad24146bfe1b9474-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;evals&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sample&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En este caso, podemos decir que el código de Python es alrededor de 2 veces
más lento que el de Julia, aunque es probable que no este usando el mejor
enfoque en Julia.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;</description><category>computación científica</category><category>interpolación</category><category>julia</category><category>métodos numéricos</category><category>python</category><guid>https://nicoguaro.github.io/es/posts/numerical_challenge/numerical-09/</guid><pubDate>Tue, 10 Oct 2017 02:17:56 GMT</pubDate></item><item><title>Interpolación de Hermite a trozos</title><link>https://nicoguaro.github.io/es/posts/hermite_interp/</link><dc:creator>Nicolás Guarín-Zapata</dc:creator><description>&lt;p&gt;En esta entrada encontramos las funciones de interpolación de Hermite
para el dominio [-1, 1]. Luego, las usamos para una interpolación a
trozos. Observe que esta interpolación tiene continuidad  &lt;span class="math"&gt;\(C^1\)&lt;/span&gt;
y no &lt;span class="math"&gt;\(C^0\)&lt;/span&gt; como en la interpolación de Lagrange.&lt;/p&gt;
&lt;p&gt;Para calcular los polinomios explícitamente podemos usar &lt;cite&gt;sympy&lt;/cite&gt;.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_ca3f70e347a14060baf96858396fde9b-1" name="rest_code_ca3f70e347a14060baf96858396fde9b-1" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ca3f70e347a14060baf96858396fde9b-1"&gt;&lt;/a&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;__future__&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;division&lt;/span&gt;
&lt;a id="rest_code_ca3f70e347a14060baf96858396fde9b-2" name="rest_code_ca3f70e347a14060baf96858396fde9b-2" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ca3f70e347a14060baf96858396fde9b-2"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;numpy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;np&lt;/span&gt;
&lt;a id="rest_code_ca3f70e347a14060baf96858396fde9b-3" name="rest_code_ca3f70e347a14060baf96858396fde9b-3" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ca3f70e347a14060baf96858396fde9b-3"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;sympy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;sym&lt;/span&gt;
&lt;a id="rest_code_ca3f70e347a14060baf96858396fde9b-4" name="rest_code_ca3f70e347a14060baf96858396fde9b-4" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ca3f70e347a14060baf96858396fde9b-4"&gt;&lt;/a&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Queremos encontrar una base con funciones que sastisfagan&lt;/p&gt;
&lt;div class="math"&gt;
\begin{align*}
N_1(x_1) &amp;amp;= 1\\
N_1(x_2) &amp;amp;= 0\\
N_2(x_1) &amp;amp;= 1\\
N_2(x_2) &amp;amp;= 0\\
N'_3(x_1) &amp;amp;= 1\\
N'_3(x_2) &amp;amp;= 0\\
N'_4(x_1) &amp;amp;= 1\\
N'_4(x_2) &amp;amp;= 0
\end{align*}
&lt;/div&gt;
&lt;p&gt;Esto puede escribirse como&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
\begin{bmatrix}
1 &amp;amp;x_1 &amp;amp;x_1^2 &amp;amp;x_1^3\\
1 &amp;amp;x_2 &amp;amp;x_2^2 &amp;amp;x_2^3\\
0 &amp;amp;1 &amp;amp;2x_1 &amp;amp;3x_1^2\\
0 &amp;amp;1 &amp;amp;2x_2 &amp;amp;3x_2^2
\end{bmatrix}
\begin{bmatrix}
a_{11} &amp;amp;a_{12} &amp;amp;a_{13} &amp;amp;a_{14}\\
a_{21} &amp;amp;a_{22} &amp;amp;a_{23} &amp;amp;a_{24}\\
a_{31} &amp;amp;a_{32} &amp;amp;a_{33} &amp;amp;a_{34}\\
a_{41} &amp;amp;a_{42} &amp;amp;a_{43} &amp;amp;a_{44}
\end{bmatrix} =
\begin{bmatrix}
1 &amp;amp;0 &amp;amp;0 &amp;amp;0\\
0 &amp;amp;1 &amp;amp;0 &amp;amp;0\\
0 &amp;amp;0 &amp;amp;1 &amp;amp;0\\
0 &amp;amp;0 &amp;amp;0 &amp;amp;1
\end{bmatrix}
\end{equation*}
&lt;/div&gt;
&lt;p&gt;La fórmula para la interpolación sería&lt;/p&gt;
&lt;div class="math"&gt;
\begin{equation*}
f(x) \approx N_1(x) u_1 + N_2(x) u_2 + |J|(N_3(x) u'_3 + N_4(x) u'_4)\quad \forall x\in [a, b]
\end{equation*}
&lt;/div&gt;
&lt;p&gt;con &lt;span class="math"&gt;\(|J| = (b - a)/2\)&lt;/span&gt; el determinante jacobiano de la transformación.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_79ec146c58344270b58561e52eda0daa-1" name="rest_code_79ec146c58344270b58561e52eda0daa-1" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_79ec146c58344270b58561e52eda0daa-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sym&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;symbols&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"x1 x2 x"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_79ec146c58344270b58561e52eda0daa-2" name="rest_code_79ec146c58344270b58561e52eda0daa-2" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_79ec146c58344270b58561e52eda0daa-2"&gt;&lt;/a&gt;&lt;span class="n"&gt;V&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sym&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Matrix&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
&lt;a id="rest_code_79ec146c58344270b58561e52eda0daa-3" name="rest_code_79ec146c58344270b58561e52eda0daa-3" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_79ec146c58344270b58561e52eda0daa-3"&gt;&lt;/a&gt;    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;a id="rest_code_79ec146c58344270b58561e52eda0daa-4" name="rest_code_79ec146c58344270b58561e52eda0daa-4" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_79ec146c58344270b58561e52eda0daa-4"&gt;&lt;/a&gt;    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;a id="rest_code_79ec146c58344270b58561e52eda0daa-5" name="rest_code_79ec146c58344270b58561e52eda0daa-5" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_79ec146c58344270b58561e52eda0daa-5"&gt;&lt;/a&gt;    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;a id="rest_code_79ec146c58344270b58561e52eda0daa-6" name="rest_code_79ec146c58344270b58561e52eda0daa-6" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_79ec146c58344270b58561e52eda0daa-6"&gt;&lt;/a&gt;    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]])&lt;/span&gt;
&lt;a id="rest_code_79ec146c58344270b58561e52eda0daa-7" name="rest_code_79ec146c58344270b58561e52eda0daa-7" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_79ec146c58344270b58561e52eda0daa-7"&gt;&lt;/a&gt;&lt;span class="n"&gt;V&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="math"&gt;
\begin{equation*}
\left[\begin{matrix}1 &amp;amp; x_{1} &amp;amp; x_{1}^{2} &amp;amp; x_{1}^{3}\\
1 &amp;amp; x_{2} &amp;amp; x_{2}^{2} &amp;amp; x_{2}^{3}\\
0 &amp;amp; 1 &amp;amp; 2 x_{1} &amp;amp; 3 x_{1}^{2}\\
0 &amp;amp; 1 &amp;amp; 2 x_{2} &amp;amp; 3 x_{2}^{2}\end{matrix}\right]
\end{equation*}
&lt;/div&gt;
&lt;p&gt;Podemos ver que la matriz anterios e una matriz de Vandermonde confluente &lt;a class="brackets" href="https://nicoguaro.github.io/es/posts/hermite_interp/#footnote-1" id="footnote-reference-1" role="doc-noteref"&gt;&lt;span class="fn-bracket"&gt;[&lt;/span&gt;1&lt;span class="fn-bracket"&gt;]&lt;/span&gt;&lt;/a&gt;.
Es imilar a una matriz de Vandermonde para los primeros &lt;span class="math"&gt;\(n\)&lt;/span&gt; nodos
y las derivadas de cada columna para los siguientes.&lt;/p&gt;
&lt;p&gt;Los coeficientes de nuestros polinomios están dados por la inversa de esta
matriz.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_e3948e901e29435ab1a61b878f005777-1" name="rest_code_e3948e901e29435ab1a61b878f005777-1" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_e3948e901e29435ab1a61b878f005777-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;sym&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;simplify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inv&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="math"&gt;
\begin{equation*}
\left[\begin{matrix}\frac{x_{2}^{2} \left(3 x_{1} - x_{2}\right)}{x_{1}^{3} - 3 x_{1}^{2} x_{2} + 3 x_{1} x_{2}^{2} - x_{2}^{3}} &amp;amp; \frac{x_{1}^{2} \left(x_{1} - 3 x_{2}\right)}{x_{1}^{3} - 3 x_{1}^{2} x_{2} + 3 x_{1} x_{2}^{2} - x_{2}^{3}} &amp;amp; - \frac{x_{1} x_{2}^{2}}{x_{1}^{2} - 2 x_{1} x_{2} + x_{2}^{2}} &amp;amp; - \frac{x_{1}^{2} x_{2}}{x_{1}^{2} - 2 x_{1} x_{2} + x_{2}^{2}}\\- \frac{6 x_{1} x_{2}}{x_{1}^{3} - 3 x_{1}^{2} x_{2} + 3 x_{1} x_{2}^{2} - x_{2}^{3}} &amp;amp; \frac{6 x_{1} x_{2}}{x_{1}^{3} - 3 x_{1}^{2} x_{2} + 3 x_{1} x_{2}^{2} - x_{2}^{3}} &amp;amp; \frac{x_{2} \left(2 x_{1} + x_{2}\right)}{x_{1}^{2} - 2 x_{1} x_{2} + x_{2}^{2}} &amp;amp; \frac{x_{1} \left(x_{1} + 2 x_{2}\right)}{x_{1}^{2} - 2 x_{1} x_{2} + x_{2}^{2}}\\\frac{3 x_{1} + 3 x_{2}}{x_{1}^{3} - 3 x_{1}^{2} x_{2} + 3 x_{1} x_{2}^{2} - x_{2}^{3}} &amp;amp; - \frac{3 x_{1} + 3 x_{2}}{x_{1}^{3} - 3 x_{1}^{2} x_{2} + 3 x_{1} x_{2}^{2} - x_{2}^{3}} &amp;amp; - \frac{x_{1} + 2 x_{2}}{x_{1}^{2} - 2 x_{1} x_{2} + x_{2}^{2}} &amp;amp; - \frac{2 x_{1} + x_{2}}{x_{1}^{2} - 2 x_{1} x_{2} + x_{2}^{2}}\\- \frac{2}{x_{1}^{3} - 3 x_{1}^{2} x_{2} + 3 x_{1} x_{2}^{2} - x_{2}^{3}} &amp;amp; \frac{2}{x_{1}^{3} - 3 x_{1}^{2} x_{2} + 3 x_{1} x_{2}^{2} - x_{2}^{3}} &amp;amp; \frac{1}{x_{1}^{2} - 2 x_{1} x_{2} + x_{2}^{2}} &amp;amp; \frac{1}{x_{1}^{2} - 2 x_{1} x_{2} + x_{2}^{2}}\end{matrix}\right]
\end{equation*}
&lt;/div&gt;
&lt;p&gt;Y remplazamos los valores para los nodos extremos, -1 y 1.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_77251288c0d64248ad67798114724028-1" name="rest_code_77251288c0d64248ad67798114724028-1" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_77251288c0d64248ad67798114724028-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;V_inv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sym&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;simplify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;subs&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inv&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;a id="rest_code_77251288c0d64248ad67798114724028-2" name="rest_code_77251288c0d64248ad67798114724028-2" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_77251288c0d64248ad67798114724028-2"&gt;&lt;/a&gt;&lt;span class="n"&gt;V_inv&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="math"&gt;
\begin{equation*}
\left[\begin{matrix}\frac{1}{2} &amp;amp; \frac{1}{2} &amp;amp; \frac{1}{4} &amp;amp; - \frac{1}{4}\\
- \frac{3}{4} &amp;amp; \frac{3}{4} &amp;amp; - \frac{1}{4} &amp;amp; - \frac{1}{4}\\
0 &amp;amp; 0 &amp;amp; - \frac{1}{4} &amp;amp; \frac{1}{4}\\
\frac{1}{4} &amp;amp; - \frac{1}{4} &amp;amp; \frac{1}{4} &amp;amp; \frac{1}{4}\end{matrix}\right]
\end{equation*}
&lt;/div&gt;
&lt;p&gt;Los polinomios son el producto de los coeficientes y los monomios&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_4e9ad69dc7364663af49a47d2d89c351-1" name="rest_code_4e9ad69dc7364663af49a47d2d89c351-1" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_4e9ad69dc7364663af49a47d2d89c351-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;sym&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;factor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V_inv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;sym&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Matrix&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="math"&gt;
\begin{equation*}
\left[\begin{matrix}\frac{1}{4} \left(x - 1\right)^{2} \left(x + 2\right)\\- \frac{1}{4} \left(x - 2\right) \left(x + 1\right)^{2}\\\frac{1}{4} \left(x - 1\right)^{2} \left(x + 1\right)\\\frac{1}{4} \left(x - 1\right) \left(x + 1\right)^{2}\end{matrix}\right]
\end{equation*}
&lt;/div&gt;
&lt;p&gt;La base interpolante sería&lt;/p&gt;
&lt;div class="math"&gt;
\begin{align*}
N_1 (x) &amp;amp;= \frac{1}{4} (x - 1)^2 (2 + x)\\
N_2 (x) &amp;amp;= \frac{1}{4} (x + 1)^2 (2 - x)\\
N_3 (x) &amp;amp;= \frac{1}{4} (x - 1)^2 (x + 1)\\
N_4 (x) &amp;amp;= \frac{1}{4} (x + 1)^2 (x - 1)\, ,
\end{align*}
&lt;/div&gt;
&lt;p&gt;y la siguiente función calcula la interpolación para una función y
derivada dadas&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-1" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-1" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;hermite_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;grad&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;npts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-2" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-2" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-2"&gt;&lt;/a&gt;    &lt;span class="n"&gt;jaco&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-3" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-3" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-3"&gt;&lt;/a&gt;    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;npts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-4" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-4" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-4"&gt;&lt;/a&gt;    &lt;span class="n"&gt;f1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-5" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-5" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-5"&gt;&lt;/a&gt;    &lt;span class="n"&gt;f2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-6" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-6" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-6"&gt;&lt;/a&gt;    &lt;span class="n"&gt;g1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;grad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-7" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-7" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-7"&gt;&lt;/a&gt;    &lt;span class="n"&gt;g2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;grad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-8" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-8" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-8"&gt;&lt;/a&gt;    &lt;span class="n"&gt;N1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-9" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-9" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-9"&gt;&lt;/a&gt;    &lt;span class="n"&gt;N2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-10" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-10" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-10"&gt;&lt;/a&gt;    &lt;span class="n"&gt;N3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-11" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-11" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-11"&gt;&lt;/a&gt;    &lt;span class="n"&gt;N4&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-12" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-12" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-12"&gt;&lt;/a&gt;    &lt;span class="n"&gt;interp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;N1&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;f1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;N2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;f2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;jaco&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;N3&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;g1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;N4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;g2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_ad62d1f949854971a5df1d8fee7868dd-13" name="rest_code_ad62d1f949854971a5df1d8fee7868dd-13" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_ad62d1f949854971a5df1d8fee7868dd-13"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;interp&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En este caso, interpolamos la función &lt;code class="docutils literal"&gt;sinc&lt;/code&gt;&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_d3d12a042db84006922a21781c65ad7c-1" name="rest_code_d3d12a042db84006922a21781c65ad7c-1" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_d3d12a042db84006922a21781c65ad7c-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_d3d12a042db84006922a21781c65ad7c-2" name="rest_code_d3d12a042db84006922a21781c65ad7c-2" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_d3d12a042db84006922a21781c65ad7c-2"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_d3d12a042db84006922a21781c65ad7c-3" name="rest_code_d3d12a042db84006922a21781c65ad7c-3" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_d3d12a042db84006922a21781c65ad7c-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_d3d12a042db84006922a21781c65ad7c-4" name="rest_code_d3d12a042db84006922a21781c65ad7c-4" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_d3d12a042db84006922a21781c65ad7c-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_d3d12a042db84006922a21781c65ad7c-5" name="rest_code_d3d12a042db84006922a21781c65ad7c-5" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_d3d12a042db84006922a21781c65ad7c-5"&gt;&lt;/a&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;grad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;a id="rest_code_d3d12a042db84006922a21781c65ad7c-6" name="rest_code_d3d12a042db84006922a21781c65ad7c-6" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_d3d12a042db84006922a21781c65ad7c-6"&gt;&lt;/a&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;El siguiente bloque de código calcula la interpolación y la grafica.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-1" name="rest_code_90aba45e95b8408b9cb606168162830e-1" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-2" name="rest_code_90aba45e95b8408b9cb606168162830e-2" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-2"&gt;&lt;/a&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-3" name="rest_code_90aba45e95b8408b9cb606168162830e-3" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-3"&gt;&lt;/a&gt;&lt;span class="n"&gt;nels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-4" name="rest_code_90aba45e95b8408b9cb606168162830e-4" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-4"&gt;&lt;/a&gt;&lt;span class="n"&gt;npts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-5" name="rest_code_90aba45e95b8408b9cb606168162830e-5" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-5"&gt;&lt;/a&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;npts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-6" name="rest_code_90aba45e95b8408b9cb606168162830e-6" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-6"&gt;&lt;/a&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-7" name="rest_code_90aba45e95b8408b9cb606168162830e-7" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-7"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"black"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-8" name="rest_code_90aba45e95b8408b9cb606168162830e-8" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-8"&gt;&lt;/a&gt;&lt;span class="n"&gt;xi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;nels&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-9" name="rest_code_90aba45e95b8408b9cb606168162830e-9" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-9"&gt;&lt;/a&gt;&lt;span class="n"&gt;dx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-10" name="rest_code_90aba45e95b8408b9cb606168162830e-10" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-10"&gt;&lt;/a&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x0&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;xi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-11" name="rest_code_90aba45e95b8408b9cb606168162830e-11" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-11"&gt;&lt;/a&gt;    &lt;span class="n"&gt;x1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x0&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;dx&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-12" name="rest_code_90aba45e95b8408b9cb606168162830e-12" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-12"&gt;&lt;/a&gt;    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;npts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-13" name="rest_code_90aba45e95b8408b9cb606168162830e-13" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-13"&gt;&lt;/a&gt;    &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;hermite_interp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;grad&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;npts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;npts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-14" name="rest_code_90aba45e95b8408b9cb606168162830e-14" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-14"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;linestyle&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"dashed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"#4daf4a"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-15" name="rest_code_90aba45e95b8408b9cb606168162830e-15" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-15"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]],&lt;/span&gt; &lt;span class="n"&gt;marker&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"o"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"#4daf4a"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-16" name="rest_code_90aba45e95b8408b9cb606168162830e-16" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-16"&gt;&lt;/a&gt;         &lt;span class="n"&gt;linewidth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-17" name="rest_code_90aba45e95b8408b9cb606168162830e-17" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-17"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"x"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-18" name="rest_code_90aba45e95b8408b9cb606168162830e-18" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-18"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ylabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"y"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-19" name="rest_code_90aba45e95b8408b9cb606168162830e-19" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-19"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;legend&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s2"&gt;"Exact function"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Interpolation"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;a id="rest_code_90aba45e95b8408b9cb606168162830e-20" name="rest_code_90aba45e95b8408b9cb606168162830e-20" href="https://nicoguaro.github.io/es/posts/hermite_interp/#rest_code_90aba45e95b8408b9cb606168162830e-20"&gt;&lt;/a&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;img alt="/images/sinc_interp.svg" src="https://nicoguaro.github.io/images/sinc_interp.svg"&gt;
&lt;section id="referencias"&gt;
&lt;h2&gt;Referencias&lt;/h2&gt;
&lt;aside class="footnote-list brackets"&gt;
&lt;aside class="footnote brackets" id="footnote-1" role="doc-footnote"&gt;
&lt;span class="label"&gt;&lt;span class="fn-bracket"&gt;[&lt;/span&gt;&lt;a role="doc-backlink" href="https://nicoguaro.github.io/es/posts/hermite_interp/#footnote-reference-1"&gt;1&lt;/a&gt;&lt;span class="fn-bracket"&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;Walter Gautschi (1962). On inverses of Vandermonde
and confluent Vandermonde matrices. Numerische Mathematik, 4
117-123.&lt;/p&gt;
&lt;/aside&gt;
&lt;/aside&gt;
&lt;/section&gt;</description><category>aproximación</category><category>interpolación</category><category>método de elementos finitos</category><category>python</category><category>sympy</category><guid>https://nicoguaro.github.io/es/posts/hermite_interp/</guid><pubDate>Thu, 22 Jun 2017 21:24:44 GMT</pubDate></item></channel></rss>