Raices Multiples

RAICES MULTIPLES Uno de los inconvenientes que presenta el método de Newton es cuando la derivada de la función tiende a

Views 60 Downloads 0 File size 856KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

RAICES MULTIPLES Uno de los inconvenientes que presenta el método de Newton es cuando la derivada de la función tiende a cero al ser evaluada en x y por ende la convergencia disminuye o incluso se suspende si se alcanza una división por cero. Similarmente sucedería con el método de la secante si la función es muy plana y f(x) y f(x-1) son aproximadamente iguales. Con el fin de darle solución a este inconveniente se crearon estos métodos.

Métodos para determinar raíces múltiples Hay dos formas desarrolladas para determinar raíces múltiples. Estos métodos no son más que modificaciones del método de newton y a continuación se presentaran estos. El primero de ellos añade un factor a la formula normal del método de newton con el fin de retornar la convergencia de este, simplemente añade la multiplicidad de la raíz como una constante al segundo término de la formula.

El segundo crea una función auxiliar u(x)=f(x)/f'(x), así xn+1 =xn-(u(x)/u'(x)) reemplazando en términos de f(x) se obtiene :

OBJETIVO MÉTODO Buscar una raíz de una función a partir de un valor inicial, una tolerancia y un número de iteraciones, para este caso no es necesario tener un intervalo.

GENERALIDADES Una de las condiciones para garantizar la convergencia del método de Newton es que f ´(Xv) tiene que ser diferente de cero . Si al ejecutar el método de Newton se observa que f´(xn) se aproxima a cero, la rapidez del método disminuye y hay una posible raíz múltiple. El método de raíz múltiple también es conocido como el método de Newton mejorado, y básicamente su estructura es muy similar excepto de que se debe hallar la segunda derivada y se debe tomar en cuenta la siguiente expresión: Xn+1 = Xn – ((f(Xn)*f´(Xn))/((f`(Xn)^2 - (f(Xn)*f´´(Xn))) Una vez definida la expresión anterior, se procede de una forma similar al método de Newton Se debe elegir una aproximación iniciales X0 Se calcula X1= Expresión ---------- Xn = Expresión (n-1) Y se repite el paso anterior hasta llegar a una aproximación.

  

A continuacion se puede encontrar el pseudocogido para el método de Múltiples Raíces. DATOS · · · ·

Xo Tolerancia Función f(x) Iteraciones

SALIDA · · · ·

Raíz Aprox Fracaso Fracaso

PROCESO · Yo=f(Xo)=0 · Error < Tolerancia · Supero Iteraciones · Denominador = 0

CODIGO MATLAB RAICES MULTIPLES INPUT %Método de raíces múltiples clc %permite borrar el area de trabajo clear %permite borrar las variables almacenadas fprintf(' METODO RAICES MULTIPLES\n\n\n'); %fprintf me permite ingresar comentarios de manera textual que pueden %orientar al usuario en el uso del programa format long; %format long permite utilizar la máxima capacidad del computador Xo=input ('ingrese el valor inicial\n'); Iter=input ('\ningrese el número de iteraciones\n'); Tol=input ('\ningrese la tolerancia que desea\n'); F=input ('\ningrese la función en comillas simples\n'); %input es un comando de solicitud de entrada de datos del usuario. f=inline(F); %El comando inline permite hacer la asignación posterior de variables %en una función. Y1=f(Xo); Di=diff (F); %El comando diff permite calcular la derivada de una función. Der=char(Di); %regresa los valores a texto De=inline(Der); %El comando inline permite hacer la asignación posterior de variables %en una función. D=De(Xo); %Se evalúa la derivada en la X inicial, y así saber si es adecuada %para ejecutar el resto del método. Di2=diff(F,2); %El comando diff permite calcular la segunda derivada de una función. Der2=char(Di2); %regresa los valores a texto Deri2=inline (Der2); %El comando inline permite hacer la asignación posterior de variables %en una función. D2=Deri2 (Xo); Error=Tol+1; Cont=0; Denominador=D^2-(Y1*D2); Z1= [Cont, Xo, Y1, D, Error]; Z= [Cont, Xo, Y1, D, Error]; %Z es una matriz la cual permitira observar lo datos como una tabla a %la finalizacion del programa %La sentencia While ejecuta todas las órdenes mientras la expresión %sea verdadera. while Y1~=0 & Error>Tol & Cont