Examen Final - 75.12. Análisis Numérico

Cátedra: Morelli
Fecha: Cuarta Oportunidad - Primer Cuatrimestre 2006
Día: 04/08/2006

Enunciado

Teoría

Deducir el error de truncamiento al calcular <tex>\int_a^b \!\!\!\! f(x)dx</tex> por la regla del rectángulo.

Diagrama de flujo

Escribir un diagrama de flujo para hallar la raíz de <tex>f(x)</tex> en <tex>[a,b]</tex>, <tex>f:R\rightarrow R</tex> continua en <tex>[a,b]</tex> con el método de Regula-Falsi. ¿Qué orden de convergencia tiene la sucesión generada? ¿Cuántas funciones evalúa en cada iteración?

Ejercicio 1

Estudiar medianto grafos la propagación del error, y decidir cuál de los siguientes métodos es conveniente:

  • Clásico <tex>P(x)=a_0+a_1 x + a_2 x^2</tex>
  • Horner <tex>P(x)=a_0+x ( a_1 +a_2 x)</tex>

Ejercicio 2

Sea la siguiente ecuación diferencial con valores iniciales

<tex>\left\{ \begin{array}{l}u''+u'+u=0 \\u(0)=1 \\u'(0)=1 \end{array} \right.</tex>

Transformarla en un sistema de ecuaciones diferenciales de Primer Orden

Decidir si las siguientes afirmaciones son Verdaderas o Falsas:

  1. <tex>u(t)</tex> es creciente en <tex>t=0</tex>
  2. <tex>u(t)</tex> es decreciente en <tex>t=0</tex>
  3. <tex>u'(t)</tex> es creciente en <tex>t=0</tex>
  4. <tex>u'(t)</tex> es decreciente en <tex>t=0</tex>
  • Calcular <tex>u_1</tex> y <tex>{u'}_1</tex> con <tex>h=0.1</tex> con los siguientes métodos:
    1. Euler explícito
    2. Runge-Kutta de orden 2, cuya función incremento aproximado para una sola variable es <tex>\phi(t,u)=f\left( t+\frac{h}{2} , u+\frac{h}{2}f(t,u) \right).</tex>
  • Calcular <tex>u_2</tex> y <tex>{u'}_2</tex> con el método de Adams-Bashforth de orden 2, es decir, <tex>u_{n+1}= u_n + \frac{h}{2} \left( 3 f_n - f_{n-1} \right).</tex>

¿Qué ventajas y desventajas tienen los métodos multipasos frente a los métodos de un paso?

¿Qué orden debe tener el método de un paso para calcular el valor de arranque?

Resolución

Teoría

Si se particiona el intervalo en <tex>N</tex> partes iguales <tex>h=\frac{b-a}{N}</tex>

<tex>x_0=a \quad x_i=x_0 + i \cdot h \quad x_N=b</tex>

Entonces se aproxima la integral: <tex>\int_a^b \!\!\!\! f(x)dx = h\sum_{i=1}^N f\left( x_i -\frac{h}{2} \right)</tex>

Entonces el error en cada intervalo es:

<tex>DI_i=\int_{x_{i-1}}^{x_i} \!\!\!\! [ f(x) -  f\left( x_i -\frac{h}{2} \right) ] dx</tex>

Si desarrollo el polinomio de Taylor alrededor de <tex>x_i-\frac{h}{2}</tex> obtengo:

<tex>f(x)=f\left( x_i -\frac{h}{2} \right)+f'\left( x_i -\frac{h}{2} \right) \left( x-x_i +\frac{h}{2} \right)+\frac{f''(\xi)}{2} \left( x-x_i +\frac{h}{2} \right)^2</tex>

Si calculo la primera integral:

<tex>\int_{x_{i-1}}^{x_i} \!\!\!\! f'\left( x_i -\frac{h}{2} \right) \left( x-x_i +\frac{h}{2} \right) dx = f'\left( x_i -\frac{h}{2} \right) \left[ \left. \frac{\left( x-x_i +\frac{h}{2} \right)^2}{2} \right|_{x_{i-1}}^{x_i} \right]=f'\left( x_i -\frac{h}{2} \right) \left[ \frac{h^2}{8}-\frac{h^2}{8} \right] =0 </tex>

La segunda integral es:

<tex>\int_{x_{i-1}}^{x_i} \!\!\!\! \frac{f''(\xi)}{2} \left( x-x_i +\frac{h}{2} \right)^2 dx = \frac{f''(\xi)}{2} \left[ \left. \frac{\left( x-x_i +\frac{h}{2} \right)^3}{3} \right|_{x_{i-1}}^{x_i} \right] = \frac{f''(\xi)h^3}{24}</tex>

Entonces: <tex>DI_i=\frac{f''(\xi)h^3}{24} \leq M \frac{h^3}{24}</tex> siendo <tex> M \geq \sup_{x\in [a,b]} f''(x)</tex>

El error de truncamiento es entonces:

<tex>R_T=\sum_{i=1}^N |DI_i| \leq \sum_{i=1}^N M \frac{h^3}{24}=NM\frac{h^3}{24}=(b-a)M\frac{h^2}{24}</tex>

Diagrama de Flujo

Para no hacer el diagrama de flujo lo escribo en pseudo-código:

LEER a,b,tol
FA=f(a)
FB=f(b)
REPETIR
  c=a-FA*(b-a)/(FB-FA)
  FC=f(c)
  SI FC*FA<0
     HACER
       b=c
       FB=FC
     SINO HACER
       a=c
       FA=FC
  FIN SI
HASTA |FC|<tol
IMPRIMIR c
FIN

La sucesión generada tiene orden <tex>p=\frac{1+\sqrt{5}}{2}=1.61...</tex>

Así como se ha escrito evalúa una sóla función en cada iteración

FC=f(c)

Por lo que la eficiencia del método es igual al orden.

Ejercicio 1

Ejercicio 2

<tex>\left\{ \begin{array}{l}u''+u'+u=0 \\u(0)=1 \\u'(0)=1 \end{array} \right.</tex>

Haciendo <tex>v(t)=u'(t)</tex> la ecuación se transforma en el sistema:

<tex>\left\{ \begin{array}{rcl}u' & = & v \\v' & = & -u-v \end{array} \right.</tex>

Con las condiciones iniciales: <tex>\left\{ \begin{array}{rcl}u(0) & = & 1 \\v(0) & = & 1 \end{array} \right.</tex>

Para escribir en forma matricial defino: <tex>\vec{u}=\left[ \begin{array}{c} u \\ v \end{array} \right].</tex>

<tex>\vec{f}(t,u,v)=\left[ \begin{array}{c} v \\ -u-v \end{array} \right].</tex>

Entonces el problema es: <tex>\left\{ \begin{array}{rcl} \vec{u'}(t) & = & \vec{f}(t,u,v) \\ \vec{u}(0) & = & [1,1]^T \end{array}\right.</tex>

Para responder a los V/F consideramos que <tex>u'(0)=1</tex> por dato de enunciado y por lo tanto <tex>u</tex> es creciente en <tex>t=0</tex>. Además <tex>v'(0)=-u'(0)-v'(0)=-1-1=-2</tex> y entonces <tex>v</tex> es decreciente en <tex>t=0</tex>, y como <tex>v</tex> es <tex>u'</tex>, por lo tanto <tex>u'</tex> es decreciente en <tex>t=0</tex>.

Con esto obtenemos:

  1. V
  2. F
  3. F
  4. V

Ahora vamos a calcular Euler-explícito, es decir: <tex>\vec{u}_{n+1}=\vec{u}_n+h\cdot \vec{f}(t_n,u_n,v_n)</tex>

El <tex>\vec{u}_1=\vec{u}_0+h\cdot \vec{f}(t_0,u_0,v_0)=\left[\begin{array}{c} 1 \\ 1 \end{array}\right] + 0.1 \cdot \left[\begin{array}{c} 1 \\ -2 \end{array}\right]=\left[\begin{array}{c} 1.1 \\ 0.8 \end{array}\right]</tex>

Por lo tanto <tex>u_1=1.1</tex> y <tex>{u'}_1=0.8</tex>

Ahora usaremos el método de Runge-Kutta, que para sistemas es: <tex>\vec{u}_{n+1}=\vec{u}_n+h\cdot \vec{f}\left( t_n+\frac{h}{2} , \vec{u_n}+\frac{h}{2}\vec{f}(t_n,u_n,v_n) \right).</tex>

Vemos que <tex>\vec{f}(t_0,u_0,v_0)=\left[\begin{array}{c} 1 \\ -2 \end{array}\right]</tex> Entonces <tex>\vec{u_0}+\frac{h}{2}\vec{f}(t_0,u_0,v_0)=\left[\begin{array}{c} 1 \\ 1 \end{array}\right]+0.05\cdot \left[\begin{array}{c} 1 \\ -2 \end{array}\right]=\left[\begin{array}{c} 1.05 \\ 0.9 \end{array}\right]</tex>

Entonces: <tex>\vec{u}_1=\left[\begin{array}{c} 1 \\ 1 \end{array}\right]+0.1\cdot \vec{f}(0,1.05,0.9)=\left[\begin{array}{c} 1 \\ 1 \end{array}\right]+0.1\cdot \left[\begin{array}{c} 0.9 \\ -1.95 \end{array}\right]=\left[\begin{array}{c} 1.09 \\ 0.805 \end{array}\right]</tex>

Por lo tanto con este método: <tex>u_1=1.09</tex> y <tex>{u'}_1=0.805</tex>

Para usar el método de Adams-Bashfort debemos usar antes los valores de <tex>u_1</tex> y <tex>{u'}_1</tex> como valores de arranque calculados con otro de los métodos anteriores. Como este método de Adams-Bashfort es de orden 2, entonces usaremos el método de Runge-Kutta de orden 2. Es decir <tex>\vec{u}_1=\left[\begin{array}{c} 1.09 \\ 0.805 \end{array}\right]</tex>. Entonces:

<tex>\vec{f}_0=\vec{f}(t_0,u_0,v_0)=\left[\begin{array}{c} 1 \\ -2 \end{array}\right]</tex>

<tex>\vec{f}_1=\vec{f}(t_1,u_1,v_1)=\left[\begin{array}{c} 0.805 \\ -1.895 \end{array}\right]</tex>

<tex>\vec{u}_2=\left[\begin{array}{c} 1.09 \\ 0.805 \end{array}\right]+0.05\cdot \left( 3\cdot \left[\begin{array}{c} 0.805 \\ -1.895 \end{array}\right] - \left[\begin{array}{c} 1 \\ -2 \end{array}\right] \right)=\left[\begin{array}{c} 1.16075 \\ 0.62075 \end{array}\right]</tex>

Por lo tanto con este método: <tex>u_2=1.16075</tex> y <tex>{u'}_1=0.62075</tex>

Discusión

Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá. Mi mail es GastonK
materias/75/12/final_3_20060804.txt · Última modificación: 2007/08/18 19:50 por 4wd
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki