1 Primer ejemplo

Anuncio
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?.
Descargar