




















































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Resume brevemente las aplicaciones a la ingenieria
Tipo: Ejercicios
1 / 60
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





















































1 1 , , ,
n^1 i^1 n N n i i i j j i j j i i (^) j 1 j i 1
x b a x a x a
−
= = +
⎛ ⎞ = ⎜⎜ − − ⎟⎟ ⎝ ⎠
(^1) , ,
n^1 N n i i i j j i i (^) j 1 j i
x b a x a
=≠
⎛ ⎞ = ⎜^ − ⎟ ⎜ ⎟ ⎜⎝ ⎟⎠
2-Precisión. " Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso ".
3-Entrada. " Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos ".
4-Salida. " Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas ".
5-Eficacia. " También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel ".
A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los algoritmos probabilistas. En otras palabras, para un dado problema numérico, el algoritmo permite disponer de una descripción completa de operaciones bien definidas a través de las cuales el vector de datos de entrada es transformado en un vector de datos de salida.
1.2.3 Iteración Uno de los conceptos más comunes en los problemas numéricos es del de iteración (del Latín, iteratio , repetición) o aproximaciones sucesivas. En general la iteración significa la repetición de un patrón de acción o proceso. Para ilustrar un uso más específico de la idea de iteración, consideremos el problema de resolver una ecuación de la forma: x = f ( x )
Comenzar
Vector de entrada
ALGORITMO
Vector de salida
Fin
por ejemplo, si p (^) s es la presión de vapor del agua y T la temperatura, hallar el punto de ebullición del agua a una presión de p = ps = 700 hPa = 70 000 Pa. La ecuación de presión de vapor ps en Pa, en función de la temperatura, T en ºC viene dada por la expresión siguiente:
23 ( 273. 16 ) 0
16
1 ( ) exp 54. (^119) ⎟= ⎠
⎞ ⎜ ⎝
⎛ (^) − +
= − − LnT T
F T ps
16
119 4. 23 ( 273. 16 ) 70000
1 ( ) − − + −
= = LnT Ln
T f T
aquí, f(x) es una función diferenciable cuya magnitud podemos calcular para cualquier valor de la variable real x , dentro de un cierto intervalo. Usando el método de la iteración , se comienza con una aproximación inicial x 1 , y se calcula la secuencia
x f x
x f x
=
=
=
3 2
2 1
..
Cada cálculo del tipo xn+1 = f(x (^) n ) se denomina una iteración. Si la secuencia de valores de x (^) n
n f x f α →∞ = = , dado que α sería
la raíz exacta. Sin embargo, dado que el número de iteraciones siempre es finito, nunca se llega al valor exacto α , sino a un valor práctico suficientemente próximo, que satisfaga los requerimientos de exactitud que se tengan para un problema dado. Más adelante se estudiarán en particular el uso y condiciones de convergencia de numerosos métodos iterativos
1.2.4 Método numérico Se entiende como método numérico al procedimiento mediante el cual se pueda aproximar un problema matemático por un problema numérico. ¿Que diferencia hay entonces entre un algoritmo y un método numérico? Por ejemplo, el método que vimos recién, “de la iteración” es un método para resolver casi cualquier ecuación, pero para transformarlo en un algoritmo es necesario definir consideraciones sobre el inicio y el final, esto es, saber bien que datos colocar, y cuando detener el cálculo. Se puede considerar entonces un algoritmo como una descripción detallada de un método numérico
1.3 Pasos a seguir en la resolución de un problema numérico Se pueden generalizar en la secuencia siguiente:
a) Sustituir el problema inicial
23 ( 273. 16 ) 0
16
1 ( ) exp 54. (^119) ⎟= ⎠
⎞ ⎜ ⎝
⎛ − +
= − − LnT T
F T ps
por un algoritmo de cálculo, por ejemplo el método de la iteración
16
119 4. 23 ( 273. 16 ) 70000
1 1 ( ) − − + −
T f T n
n n
Un posible diseño general de programas Matlab para cálculo numérico (Constantinides y Mostoufi, 1999) es el que sigue:
Metodo. m
Esta es una función general que implementa el método, tal como el de la iteración, o el de Newton-Raphson. Esta función es portátil de manera que puede llamársela desde otros programas y/o desde el espacio de trabajo (Workspace) de Matlab (con parámetros). Por su parte, esta función Metodo puede llamar la función ecuaesp , con las ecuacion/es específicas a resolver en el problema. La función Metodo puede llamar asimismo cualquiera de las funciones que Matlab trae incorporadas. Los resultados de Metodo se pueden imprimir o graficar aquí, si son genéricos.
Este programa llama la función metodo.m , le pasa los parámetros a ésta y recibe, como devolución, los resultados y los escribe de manera formateada y genera gráficos con los resultados, si se necesitan
Ejemplo. m
Este es un programa que resuelve un ejemplo específico. Es interactivo con el usuario. Solicita al usuario ingresar, mediante el teclado, los parámetros que se usarán con el método, tal como el nombre de la función que contiene las ecuaciones, constantes, estimaciones iniciales, criterios de convergencia. Este programa llama la función metodo.m , le pasa los parámetros a ésta y recibe, como devolución, los resultados y los escribe de manera formateada y genera gráficos con los resultados, si se necesitan
ecuaesp.m Esta función contiene la/s ecuacion/es específica/s a ser resuelta/s. Puede contener alguna o varias constantes que son específicas de tales ecuaciones
Funciones Matlab Cualquiera de las funciones disponibles en el lenguaje Matlab o rutinas de graficación que puedan necesitarse
Vamos a ejemplificar con el caso resuelto en la página 4
Archivo Matlab punto_eb.m
archivo met_it.m
archivo presvap.m
global p disp ('para la ecuación de presión de vapor') disp (' ') disp (' ps = exp( a – b/(T +273.16) – c Ln (T +273.16)') disp(' ') Ts = input('ingrese temperatura supuesta para comenzar la iteración ') tol = input('ingrese diferencia admisible para detener el cálculo ') p = input ('ingrese el valor de la presión atmosférica en hPa ')
p = p*100; % se pasa a Pa ps =p % por definición de punto de ebullición Ts = 50; % estimación inicial del punto de ebullición tol = 0.01; % ºC [Teb, niter] = met_it (Ts, tol)
disp ('la temperatura de ebullición vale'), Teb disp (' ') disp (' siendo el numero final de iteraciones de '), niter
function [xcalc, n] =met_it (xsup, difad) dif = 10; n = 1 while dif >= difad & n <= xcalc = presvap (xsup) n = n+ dif = abs(xcalc-xsup) xsup = xcalc end
function Tcalc = presvap(Tsup) global p c1 = 54.119; c2 = 6547.1; c3= 4. Tcalc = c2./(c1-c3*log (Tsup +273.16) -log(p)) -273.
n n ni i nn n n
i i ii i in n i
i i n n
a x a x a x a x b
a x a x ax a x b
a x a x a x a x b
..... ...
...
..... ...
...
..... ...
11 2 2
1 1 2 2
111 12 2 1 1 1
O escrito en forma matricial: Ax = b
Comparamos dos algoritmos (más adelante se verán en detalle): los métodos de Cramer y de eliminación de Gauss.
Cramer: con este método las incógnitas se calculan como
i i
A x A
=
donde i = 1, 2, ... n. El denominador de la ecuación es el determinante del sistema y el numerador, el determinante que surge de una matriz de coeficientes igual a la de A, pero poniendo, en la columna de la incógnita x (^) i el vector de términos independientes, bi , 1,..n. Despreciando las sumas y restas por ser operaciones sencillas frente a multiplicación y división,
el número de operaciones da ( n^^ −^1 )^ n !+ n 2
Eliminación de Gauss: Este método, mediante una serie de pasos sucesivos de eliminación y transformación por combinaciones lineales, llega a un sistema triangular superior que tiene la misma solución que el sistema original, y cuya resolución es directa y secuencial, de la última ecuación hasta la primera. Aquí la deducción da,
( )
La tabla siguiente, de doble entrada, nos brinda el número de cálculos en función del método y del orden del sistema
Orden del sistema de ecuaciones lineales, n Método 3 5 10 Cramer 51 2885 359251210 Eliminación de Gauss 19 69 439
Se vé que el método de Eliminación de Gauss conviene, y tanto más cuanto mayor sea el orden del sistema. El ejemplo sirve además para comprender la ventaja del empleo del cálculo numérico por computadora en la solución de problemas matemáticos. Se debe recordar que en el caso de esquemas iterativos, se debe multiplicar el número de cálculos que se realizan en cada iteración por el número de iteraciones que se necesite para llegar a una solución aceptable (siendo este valor desconocido “a priori”, se lo estima según experiencias de aplicación a otros casos). Puede entonces ocurrir que sistemas de convergencia lenta, que utilizan menor número de cálculos por iteración (métodos más simples), tarden en realidad más tiempo en alcanzar el resultado deseado que otros métodos de mayor complejidad pero de convergencia más rápida.
Matlab tiene la función “clock” que devuelve un arreglo de 6 números con el año, mes, día, hora, minuto, y segundos con fracción al momento de ejecutarse. Ese valor puede asignarse antes del lazo iterativo al valor “t1”. Luego del lazo iterativo, puede llamarse la función etime (clock, t1), que devuelve la diferencia entre el tiempo actual provisto por clock en el argumento de la función, y t1, el valor original. En consecuencia, el cálculo del tiempo que demanda un método numérico podría estimarse así
Las computadoras actuales son muy rápidas y la precisión de este método es de fracciones de segundo. Por tanto, al comparar métodos con distinto número de iteraciones o tolerancias, trate de realizar este cálculo de tiempo en las mismas condiciones, por ejemplo, todas las ventanas cerradas del sistema operativo excepto Matlab, dado que estas funciones tendrán en cuenta todo lo que demanda a la CPU y no solamente lo que le demanda el método numérico que está evaluando.
2.4. Capacidad de memoria requerida
Si bien actualmente la memoria de la máquina no es un recurso demasiado escaso para problemas de baja y mediana complejidad, los conceptos sobre economía en el uso de la memoria siempre resultan importantes, dado que no solamente permitirán que un programa se ejecute a mayor velocidad, sino que implique un menor consumo de energía por la computadora para el cálculo que se desea realizar. Así, se puede decir que el espacio de memoria se utiliza tanto para el almacenamiento del propio programa, como de los datos, valores intermedios de las variables y resultados finales. La memoria requerida puede ser un problema crítico en algunos algoritmos que requieren grandes almacenamientos para su solución (tanto por la extensión del programa mismo, como por el volumen de variables que se manejen). En estos casos se hace necesario, al programar el algoritmo, emplear métodos adecuados para lograr que el almacenamiento requerido sea el menor posible. Además, en estos casos, suele necesitarse un conocimiento profundo del lenguaje de programación y de la máquina que se utiliza.
Veremos un ejemplo organizado sólo a los efectos de contribuir a fijar los conceptos involucrados.
n
i
1
Un programa típico de Matlab podría ser el siguiente:
1- Suponiendo que se guardan los datos de x (^) i en una planilla Excel.
t1 = clock; LAZO ITERATIVO tiempo_del_metodo = etime(clock, t1)
aquí el uso de la memoria da 28 bytes, menos de la mitad que usaba el otro programa. Aquí se lista una copia de la ejecución de este programa en el command window
sum = 0 numero_de_x = 0 clave = si numero_de_x = 0 ingrese valor de x 1 x = 1 ¿ sigue sumando? poner la respuesta entre apostrofes 'si' clave = si numero_de_x = 1 ingrese valor de x 3 x = 3 ¿ sigue sumando? poner la respuesta entre apostrofes 'si' clave = si numero_de_x = 2 ingrese valor de x 5 x = 5 ¿ sigue sumando? poner la respuesta entre apostrofes 'si' clave = si
numero_de_x = 3 ingrese valor de x 7 x = 7 ¿ sigue sumando? poner la respuesta entre apostrofes 'si' clave = si numero_de_x = 4 ingrese valor de x 6 x = 6 ¿ sigue sumando? poner la respuesta entre apostrofes 'si' clave = si numero_de_x = 5 ingrese valor de x 8
x = 8 ¿ sigue sumando? poner la respuesta entre apostrofes 'si' clave = si numero_de_x = 6 ingrese valor de x 7 x = 7 ¿ sigue sumando? poner la respuesta entre apostrofes 'no' clave = no sum = 37
2.5. Precisión del método
Está parcialmente relacionado con el punto 2.2. En muchos casos, principalmente en cálculos científicos o técnicos de gran significación, el factor determinante es la precisión del método de cálculo. Distintos esquemas tendrán distinta precisión, dada principalmente por aproximaciones realizadas en su deducción. El caso más común son los métodos para resolver numéricamente ecuaciones diferenciales. Normalmente los más precisos serán de desarrollo más complicado, cálculo más lento y/o involucrarán mayor necesidad de memoria. Sin embargo, éstos no son factores determinantes en cálculos científicos o técnicos para los que se utilicen computadoras de gran memoria y alta velocidad, donde generalmente, priva la precisión a obtener, en el momento de decidir el algoritmo a utilizar.
3.1.2. Algunos métodos de separación de raíces
Cuando se trata de calcular las raíces reales de una ecuación F(x) = 0 , conviene tener presente una serie de resultados del análisis matemático que facilitan el conocimiento de la ubicación de las raíces. Considérese un intervalo ( a , b ) en el cual la función es continua. Se admitirá que:
I) si F(x) tiene signos distintos en a y b , se anula por lo menos una vez en ( a , b ) y en general, un número impar de veces
II) Si el signo de F(a) = signo de F(b) , la función se anula un número para de veces en ( a , b ), tomando el cero (ausencia de raíces) como número par, es decir, que puede no anularse
III) Si F(x) es constantemente creciente o decreciente en ( a , b ), es decir, si F’(x) tiene un signo determinado y el signo de F(a) es ≠ al de F(b) , hay una sola raíz α de la ecuación F(x)=0 en ( a , b ). Sin embargo, si el signo de F(a) es = al signo de F(b) , con seguridad no habrá ninguna raíz en ( a , b )
F(x)
a b x
F(x)
a b x
F(x)
a b x
IV) De acuerdo a III), la separación de una raíz es fácil en ( a , b ) si F’(x) tiene un signo determinado.
Veamos ahora como es posible calcular intervalos parciales del intervalo total, donde en cada uno de los cuales la derivada F’(x) tenga un signo determinado. Considérese una función continua F(x) en ( a , b ) con derivada F’(x) también continua, tal como se representa en la figura:
a (^) b a (^) b
a
a^ b
b
Podrá observarse que este método puede aplicarse luego de realizar un gráfico de la función con Matlab, donde se observe los lugares donde se anula. Esto permitirá elegir un punto de partida adecuado para el cálculo. De lo contrario, el método podría fallar y no detectar nunca un cambio de signo, si la eventual raíz se hallara en la dirección opuesta a la utilizada para recorrer el eje x. Por este motivo, si bien éste método es muy bueno en el sentido de que aúna un método de separación de raíces con un método de resolución, y es por tanto de gran valor para introducir conceptos de raíces, no se adapta fácilmente para ser utilizado en forma automática dentro de modelos de simulación, dado que la dirección de aproximación a la raíz la dirige el usuario, y no el método, a diferencia de otros procedimientos para el cálculo de raíces.
Comenzar
Leer x 1 , ∆x, ε
x = x 1
Fx = valor de la función en x
Fxa = Fx
x =x + ∆x
Fx = valor de la función en x
si Fx * Fxa <
∆x ≤ ε no
x =x - ∆x
∆x = ∆x/
si
raíz = x
Fin
no
3.2.2. Método de la iteración de punto fijo
Es uno de los más elementales. Supóngase que la función F(x) = 0 se pueda separar en dos términos F(x ) = f1(x) –f2(x) =0. De allí se despeja, f1(x) = f2(x). El cálculo comienza al dar a x un valor inicial apropiado x 1 calcular f2(x 1 ) , igualar este valor a f1(x 2 ) y despejar x 2 de ésta. La recurrencia de los cálculos puede establecerse de acuerdo al patrón siguiente
2 2 2 1 3 3
1 2 1 1 2 2
= = + −−−−−−−> +
−−−−−−−−−−−−−−−−−−−−
= = −−−−−−−>
= = −−−−−−−>
yn f xn f xn x n
y f x f x x
y f x f x x
Cuando se alcance un x (^) n≈α tendremos f1(x (^) n ) ≈f2(x (^) n ) , lo que verificará la ecuación. Esta convergencia puede ser muy lenta en los pasos finales, y generalmente se detiene el cálculo cuando |x (^) n+1- x (^) n | ≤ ε. Existe sin embargo una forma más adecuada para medir la convergencia de cualquier método iterativo, que implica el cálculo del “error aproximado porcentual”, e (^) ap. Este se define según
1
100 1
= +^ − n
n n ap x
x x e
obsérvese que esta fórmula es análoga a la del error relativo porcentual
donde v es el valor aproximado, y α el verdadero. En cálculos iterativos, por definición, no se conoce el valor verdadero, de manera que se toma como una aproximación al valor verdadero el último valor calculado, xn+1 , porque, de ser convergentes los cálculos, se aproximará más que x (^) n al valor verdadero. La fórmula de e (^) ap no es conveniente si la raíz es muy próxima a cero, de manera tal que en esos casos puede ser conveniente utilizar una cota de error absoluto. Otra ventaja que tiene el error aproximado porcentual es que no hace falta conocer el valor de la incógnita, ni siquiera su orden de magnitud para establecer una cota de error apropiada; por ejemplo, 0.01% puede ser adecuada para la mayoría de los casos de ingeniería. Volviendo al método de la iteración de punto fijo, y ordenados el esquema de cálculo como lo indica la fórmula de recurrencia escrita más arriba, se puede dar una condición de suficiencia para la convergencia del método. Esta es:
f ' 2 ( x )< f ' 1 ( x ) en un entorno de α
Es decir, si se cumple la condición se asegura la convergencia, y si no se cumple, la convergencia no está asegurada, aunque pueda ser todavía posible.