GRADO EN INGENIERIA CIVIL. CURSO 2010-11 PRÁCTICAS DE CÁLCULO PRÁCTICA 1. Lı́mite de una sucesión: la raı́z cuadrada El objetivo de esta práctica es programar dos sucesiones para el cálculo de la raı́z cuadrada y comparar su rapidez de convergencia. 1 Primer ejemplo Consideremos en primer lugar la sucesión definida mediante xk+1 = xk + α , x1 = α , α ∈ (0, 1) xk + 1 (1) √ Esta sucesión es monótona creciente y acotada, luego convergente, y el lı́mite es l = α. Podemos, por lo tanto, utilizar esta sucesión como método numérico fácilmente programable para √ calcular raı́ces cuadradas α con α ∈ (0, 1), construyendo un programa MATLAB que vaya generando los sucesivos elementos de la sucesión hasta llegar a un xn que consideremos que es una buena aproximación. Consideraremos que tenemos una buena aproximación cuando se alcance un n tal que |1 − xn /xn−1 | < donde es una cantidad pequeña que mide el error relativo. Ası́, por ejemplo, tomando = 10−15 deberı́amos obtener un resultado con al menos 14 cifras significativas exactas. Se trata pues de construir un programa que genere los sucesivos elementos de la sucesión: x1 = α, x2 ,x3 ,..., hasta que se alcance un n para el cual |1 − xn /xn−1 | < . El valor xn será nuestra aproximación √ numérica a α. Se sugiere escribir una función MATLAB (fichero iter1.m) para realizar este cálculo, cuya primeras lı́neas serán: function [x]=iter1(alpha,epsi) % Raiz cuadrada. % Calcula la raiz cuadrada de alpha % con precision relativa epsi % Devuelve un vector x conteniendo los % elementos de la sucesion Un ejemplo de funcionamiento serı́a: >> format long e >> x=iter1(0.9,1.e-15); >> length(x) ans = 12 >> x(12) ans = 9.486832980505139e-01 >> sqrt(0.9) ans = 9.486832980505138e-01 Una vez que comprobemos que el método funciona correctamente para α ∈ (0, 1) podemos adaptarlo √ para que funcione para cualquier β > 0. En efecto, para evaluar β podemos distinguir dos casos: 1. Si β ≤ 1, tomamos α = β y procedemos como antes. √ 2. Si β > 1, tomamos α = 1 y calculamos α mediante el anterior método. Obtenemos una sucesión β √ √ {an } que converge a α = 1/ β. Multiplicando por β tenemos unA sucesión xn = βan que tiende √ a β. 2 Segundo ejemplo Se propone considerar ahora la siguiente sucesión: xk+1 = (xk + α/xk )/2 , x1 = α (2) Podemos comprobar que si α > 1, la sucesión es monónotona decreciente y acotada, luego es con√ vergente, y que converge a α. √ Esto proporciona un método de cálculo para raı́ces α con α > 1. Con una ligera modificación √ (similar a la considerada para la primera sucesión) se puede construir un método para calcular α para cualquier número real positivo α. Se pide escribir el correspondiente programa iter2.m y comparar su funcionamiento con el de iter1.m. ¿Qué método parece ser más eficiente?.