jueves, 8 de septiembre de 2011

Método de Wegstein y su Codificado en Matlab

El Método de Wegstein es un método matemático interesante y con caracteristicas propias capaz de resolver cualquier ecuación no lineal, el método es el mas utilizado por que consigue acelerar y disminuir el número de iteraciones necesarias para llegar al resultado.


La base de este método esta en función de la clasica iteración de aproximaciones sucesivas representada por la siguiente ecuación.

    

El método necesita de una ecuación del tipo x=g(x), donde esta ecuación puede ser encontrada a partir de la función f(x)=0. 

Los valores de las variables q son calculados de las siguientes formulas:

La variable q es dependiente de la variable s:

                                           
donde s puede ser calculada por medio de la siguiente ecuación donde s es igual a:
                        

Sustituyendo el valor encontrado de "s" en "q" y reemplazando el valor de "q", g(x0), e x0 en la ec. 1, se encuentra el nuevo valor de "x". Con este nuevo valor de "x" se debe determinar si el valor hallado cumple con el criterio de convergencia
En la siguiente figura se muestra el diagrama de flujo del método:



La siguiente figura muestra la codificación del método. La codificación del método fue realizada en (MATLAB), este programa necesita de los siguientes datos de entrada: necesita de una ecuación igual a "x= g(x)", tambien necesita de un valor inicial x0 y la tolerancia del resultado (error minimo del valor encontrado con el método ).

Al realizar el corrido del programa, esté presentara los resultados en una tabla con la cual se podera interpretar la aproximación a la raiz real en cada iteración tomando en cuenta el criterio de convergencia.




Descarga el programa de la siguiente pagina

Este otro link toma en cuenta que la función s depende de la primera derivada de la función g(x)
donde:

s=g'(x)=(g(x0+h)-g(x0))/h

Donde h es igual a un valor constante igual a 0.00000000000000000000001 




Descarga el programa de la siguiente pagina
http://www.4shared.com/file/sXflWXo5/w_online.html

En las siguientes figuras muestro un ejemplo del uso del programa.

Primeramente vamos a simular que tenemos una función del tipo f(x)=0 igual a la ecuación siguiente

despues hallamos una ecuación del tipo x=g(x) con la ecuación anterior

y despues realizamos el corrido del programa






4 comentarios:

  1. Error using input
    Undefined function or variable 'x'.

    Error in we (line 6)
    g=input('Ingrese la función x=g(x)=');

    ResponderEliminar
  2. Puedes ayudar?

    Ingrese la función x=g(x)......='(x.^3+1)/3'
    Ingrese el Valor Inicial=1
    Ingrese la tolerancia =1e-10
    ===========================================================
    | N | x0 | error |
    ===========================================================
    Attempted to access g(40); index out of bounds because numel(g)=10.

    Error in we (line 16)
    s=(g(x1)-g(x0))/(x1-x0);

    ResponderEliminar
  3. hola Roselyn Blonger y Reginaldo, acabo de adicionar un ejemplo del corrido del programa, espero que sea de utilidad para ustedes

    ResponderEliminar