Métodos numéricos aplicados a Ingeniería. Héctor Jorquera González

Métodos numéricos aplicados a Ingeniería - Héctor Jorquera González


Скачать книгу

      a) Resuelva el sistema anterior en Matlab® usando: x = A\b, operador que realiza la eliminación gaussiana. ¿Se obtiene el mismo resultado que al aplicar: x=inv(A)*b?

      b) Defina un nuevo vector del lado derecho como: b1 = [30.00002; 42.00006; 22.00004] y calcule la nueva solución x1 utilizando ‘\’ y la función inv. ¿Hay diferencias en los resultados? ¿Esperaba usted que hubiera diferencias en la solución numérica x?

      c) Compare los errores relativos al modificar el lado derecho3: norm(b1-b)/norm(b) y en la solución: norm(x1-x)/norm(x). ¿Qué pasa?

      d) Ahora aplique las rutinas iterativas pcg, bicg, gmres, qmr, bicgstab en su forma más simple, es decir, utilizando como argumentos solamente la matriz A y el vector b originales. Calcule x y x1 para los casos en que se ingresa b y b1 como vectores del lado derecho. ¿Qué resultados se obtienen? ¿Cómo se comparan estos resultados con los de las partes a) y b) anteriores? Nota: calcule los residuos de la solución x (o x1) en cada caso.

      e) Finalmente, concluya qué métodos de solución son más adecuados para abordar la resolución de este tipo de casos con matrices mal condicionadas.

      10) Considere ahora el sistema lineal de ecuaciones A·x = b con

      Repita el procedimiento del problema anterior, ahora usando b1 = [ 5.00004 ; 10.0003], etc.

      11) El siguiente sistema tridiagonal de ecuaciones lineales representa las ecuaciones de un modelo simple de un proceso de extracción líquido-líquido, donde la composición x(i) de un soluto de interés cambia a lo largo de las n etapas de extracción (por ejemplo, el sulfato de cobre se extrae de una solución acuosa pobre en cobre y se concentra en una corriente de solvente orgánico).

      Tome n = 15 etapas y calcule el vector de concentraciones x. Grafíquelo usando plot(x).

      Nota:

      Para construir la matriz y el lado derecho del sistema de ecuaciones, se recomienda usar los comandos: zeros(n,1), ones(n,1) y spdiags. Emplee la función spy(M) para verificar que la matriz M posee una estructura tridiagonal.

      1. Moler, C. (2008). Numerical Computing with MATLAB. Disponible en la página web: http://www.mathworks.com/moler/; incluye una biblioteca de programas escritos en Matlab®.

      2. Wang, J.C. & Henke, G.E. (1966). Tridiagonal Matrix for Distillation. Hydrocarbon Process. Vol 45, N° 8, 155-163.

      3. Hanna, O.W. & Sandall, O.C. (1995). Computational Methods in Chemical Engineering. Nueva Jersey: Prentice Hall.

      4. Axelson, O. (1994). Iterative Solution Methods. Nueva York: Cambridge University Press.

      5. Nakamura, S. (1992). Métodos numéricos aplicados con software México DF: Prentice Hall Hispanoamericana.

      6. Gerald, C.F. Análisis numérico (2ª ed.). México DF: Alfaomega.

      7. Sewell, G. (1988). The Numerical Solution of Ordinary and Partial Diferential Equations. Boston: Academic Press.

2.Ecuaciones no lineales

      2. ECUACIONES NO LINEALES

      Para resolver ecuaciones algebraicas en general se usan métodos iterativos de solución. Un método iterativo consta de las siguientes etapas:

      i) Estimar un valor inicial para la solución buscada.

      ii) Una fórmula para actualizar la solución aproximada que se obtiene.

      iii) Un criterio para detener el proceso de actualización (chequeo de convergencia).

      Notas:

      a) Es importante distinguir entre el proceso (o algoritmo) iterativo completo y la fórmula de iteración (o de actualización).

      b) La verificación del término “satisfactorio” del proceso es esencial y debe anticipar todas las posibles salidas del método iterativo. Debe ser capaz de notar cuando el algoritmo falla.

      c) La etapa inicial requiere a menudo incluir pruebas para validar la consistencia de los datos iniciales (concentraciones positivas, etc.).

      FIGURA 2.1. Diagrama de flujo típico de un proceso de iteración

      A continuación vamos a presentar los métodos más comunes para resolver ecuaciones no lineales en una variable.

      Este método solo utiliza el último valor estimado para obtener la siguiente aproximación a la solución. Por esto se denomina a veces iteración funcional. Consideremos la solución de la ecuación escalar:

      Ahora calculamos una secuencia {x(k)}; k = 1, 2,..., que si es exitosa, converge a la solución x*. El usuario debe proveer la primera estimación x(1), lo cual no es un paso trivial. Las siguientes aproximaciones están dadas por:

      Donde x = φ(x) posee la misma solución que f(x) = 0, es decir, x* = φ(x*).

      La fórmula de iteración (o de actualización) x = φ(x) se obtiene por reordenamiento de términos o adición de términos a ambos lados de la ecuación original f(x) = 0. Este proceso de pasar de f(x) = 0 a x = φ(x) no es único, como se ve en el siguiente ejemplo.

      Ejemplo 2.1. Método del punto fijo

      Considere la ecuación: f(x) = x3 - 7x - 6 = 0. Algunas funciones de iteración posibles son:

      φ1(x) = (x3 - 6)/7

      φ2(x) = (7x + 6)/x2

      φ3(x) = (2x3 + 6) /(3x2 - 7)

      Como sabemos a priori que f(x) = (x+1)·(x+2)·(x-3), lo que hacemos es probar el desempeño de las fórmulas arriba detalladas cuando escogemos como valor inicial x(1) = -1.1 y x(1) = -2.2, respectivamente.

      Haciendo los cálculos con las distintas funciones de iteración, para un error relativo máximo de 10-5 en la solución se obtiene la siguiente tabla de resultados:

      TABLA 2.1. Comparación de resultados x*(iteraciones) para distintas funciones de actualización

      A continuación se presenta el código Matlab® utilizado para generar las iteraciones de punto fijo.

      function [raíz,err,nit]=punto_fijo(fun,x1,tol,maxit)

      % función que ejecuta la


Скачать книгу