Calculo Numerico. Curso 2010-2011 Practica 2 Tema 2 : Iteraciones 1. Ejercicios Programar en Matlab una funcion que permita calcular las soluciones de ecuaciones de la forma f (x) = 0 utilizando el metodo de Newton. La funcion deben tener la siguiente sintaxis y variables de entrada y salida: 1. a. function [y, iter, est_error] = newton(fun, df, x0, maxiter, tol) Variables de entrada: fun: cadena de caracteres que contiene el nombre del chero .m que declara la funcion f del problema f (x) = 0. df: cadena de caracteres que almacena el nombre del chero .m que declara la derivada de la funcion f . x0: valor inicial. maxiter: mero mximo de iteraciones permitidas. tol: tolerancia requerida para el calculo de la aproximacion. Variables de salida: y: contiene la aproximacion numerica. iter: n umero de iteraciones necesarias para la convergencia. est error: estimacion del error cometido en la aproximacion. Aplicar esta rutina para la resolucion de la ecuacion cos(x) x=5 = 0. Buscar aproximaciones iniciales que sirvan para poder encontrar cada una de las races. b. Si fun es el nombre del chero .m que declara una funcion f y x es el argumento de esta funcion, el valor de f (x) puede ser calculado mediante el comando feval(fun; x). Por ejemplo, si denimos cadenas de caracteres fun1 =0 cos0 ; fun2 =0 sin0 Nota: 2. entonces los comandos feval(fun1; 0); feval(fun2; 0) evaluan cos(0) y sin(0), respectivamente. La funcion de Bessel Jn (x) se puede denir como 1 Jn (x) = Z 0 cos(x sin t nt) dt Representar gracamente J0 (x) y localizar sus siete primeros ceros. Utilizando el metodo de Newton calcular estos ceros de J0 (x) con seis decimales correctos. Para la derivada de J0 (x) utilizar que J00 (x) = J1 (x) a. b. Matlab tiene la rutina besselj(n; x) para calcular Jn (x). Adaptar la funcion del ejercicio 1 para que resuelva sistemas no lineales de la forma Nota: 3. 8 f1 (x1 ; x2 ; : : : ; xn ) > > > > < f2 (x1 ; x2 ; : : : ; xn ) > > > > : =0 =0 .. . fn (x1 ; x2 ; : : : ; xn ) = 0: La nueva funcion debe seguir la sintaxis siguiente function [y, iter, est_error] = newton2(fun, df, x0, maxiter, tol), (1) con las siguientes variables de entrada y salida: Variables de entrada: fun: cadena de caracteres que contiene el nombre del chero .m donde se declara la funcion dada por t (x1 ; : : : ; xn ) 7! f1 (x1 ; : : : ; xn ); : : : ; fn (x1 ; : : : ; xn ) ; que permite escribir el sistema (1) en la forma f (x) = 0. La salida de la funcion f debe ser un vector columna. df: cadena de caracteres que almacena el nombre del chero .m que declara la derivada de la funcion f . En este caso, la salida de esta funcion debe ser una matriz n n. x0: iterante inicial, un vector columna de dimension n. maxiter: n umero maximo de iteraciones permitidas (como antes). tol: tolerancia requerida para el calculo de la aproximacion (como antes). Variables de salida: y: contiene la aproximacion numerica en un vector columna. iter: n umero de iteraciones necesarias para la convergencia. est error: estimacion del error cometido en la aproximacion. Debe tenerse en cuenta que en este caso y; fun; x0 son vectores columna y df es una matriz n n para llevar a cabo las modicaciones pertinentes en la funcion newton. Utilizar la nueva funcion newton2 para encontrar todas las soluciones de los siguientes sistemas no lineales: ( x2 + y 2 = 2; 2x y = 0; ( x2 + y 2 = 1; cos(x) 2y = 3=2: 2. Fecha de entrega y presentacion de la practica La fecha de entrega sera el jueves 28 de octubre en la clase de teora. Debera presentarse individualmente un guion (impreso) de la practica, que incluya el codigo, los estudios teoricos, resultados y comentarios que se consideren oportunos. Mas adelante en un examen oral se podra preguntar sobre los problemas y programacion de esta practica, junto con ejercicios de problemas o preguntas teoricas relacionados con ellos.