jueves, noviembre 21, 2024

Algoritmos Numéricos – Lección 2

Descargar Ejemplos en C#
PuntoMedio-Ejercicio-1.zip
PuntoMedio-Ejercicio-2.zip

Métodos de Convergencia Asegurada:

  • Teorema de Bolzano.
  • Método de Bisección o Punto Medio.
  • Método de  Regula Falsi(no incluido en este material)
  • La raíz de una función  f(X) es un número X0 tal que f(X0)=0. También se dice que X0 es una raíz de la ecuación f(X0)=0. En este curso, consideraremos solamente raíces reales. Geométricamente, la raíz de una función representa un punto donde la gráfica de f(X) cruza al eje x (abscisas).

    Ejemplos:
    Las raíces de f(x) = x²-9 son  x=3 y x = -3.
    Las raíces de f(x) = (x + 1).(x – 3).(x + 7) son  x = -1, x = 3 y x = -7

    En el caso de la solución de un polinomio de grado 2, se tendría x = (-b ± Öb² -4ac) / 2a, para el grado tres se hace por la formula de Cardano y de grado cuarto se basa en la resolución de un sistema de tercer grado, pero cuando sea de grado 5 o más no es tan sencilla y es necesario aplicar los métodos numéricos.

    Teorema de Bolzano: anuncia que, dada una función f(X), que es continua en un intervalo cerrado [a,b], se tiene:

    Si f(a) > 0 y f(b) < 0  ¨ existe Ψ tal que f(Ψ) = 0
    Si f(a) < 0 y f(b) > 0  ¨ existe Ψ tal que f(Ψ) = 0

    Método de Bisección o Punto Medio: es un método iterativo, de los llamados de convergencia asegurada, lo cual quiere decir que si se cumplen las condiciones de trabajo, le método converge hacia la raíz buscada, aunque es un método lento, por la cantidad de iteraciones que se necesitan (comparado  con otros métodos), lo cual nos trae mayor tiempo de ejecución. Se basa en aproximarnos a la raíz a través del punto medio del intervalo de trabajo.
    Ventajas: condiciones aseguradas, es de convergencia asegurada.
    Desventajas: aunque su convergencia es asegurada, es de convergencia lenta.
    Inconveniente: no permite calcular raíces múltiples que sean pares, pues no existe un cambio de signo en el intervalo en donde se contenga ella. Por ejemplo f(x) = (x-2) ² para la raíz x = 2.

    Pasos:
    1) Verificar si se cumplen las condiciones del teorema de Bolzano en el intervalo [a,b].
    2) Si N <= Nmax y abs( a – b ) >=EPS  hacer Xm = (a+b) / 2 , sino FIN y la solución última Xm calculado.
    3) Si f(a) * f(Xm) < 0 (hay un cambio de signo en el intervalo [a,Xm], entonces hacer b = Xm e ir a paso 1.
    4) Si f(a) * f(Xm) > 0 (hay un cambio de signo en el intervalo [Xm,b], entonces hacer a = Xm e ir a paso 1.
    5) Sino la solución es Xm.

    Ejercicio No.1
    Dada la función f(x)=x³- x -3, encontrar una raíz en el intervalo [1;2] de su dominio. Usar para sus cálculos ξ = 0.1 y un número máximo de pasos de 10.

    1) Verificar las condiciones del Teorema De Bolzano:
    Es una función continua en el intervalo en que se debe trabajar
    f(1) = -3 y f(2) = 3, como, f(1) * f(2) < 0, existe una raíz

    2) N = 1 < Nmax y abs(1 – 2) > ξ
       Xm = (1 + 2 ) /2 = 1.5, f(Xm) = -1.125
    f(1) * f(1.5) = 3.375 > 0, por tanto la raíz se encuentra en el intervalo [1.5; 2]

    3) N = 2 < Nmax y abs(1.5 – 2) > ξ
       Xm = (1.5 + 2 ) /2  = 1.75,  f(Xm) = 0.6093
    f(1.5) * f(1.75) = -0.6854625 < 0, por tanto la raíz se encuentra en el intervalo [1.5; 1.75]

    4) N = 3 < Nmax y abs(1.5 – 1.75) > ξ
       Xm = (1.5 + 1,75 )/2 = 1.625, f(Xm) = -0.334
    f(1.5) * f(1.625)  >  0, por tanto la raíz se encuentra en el intervalo [1.625; 1.75]

    5) N = 4 < Nmax y abs(1.625 – 1.75) > ξ
       Xm = (1.625 + 1.75 )/2 = 1.6875, f(Xm) = 0.11791
    f(1.625) * f(1.6875) <  0, por tanto la raíz se encuentra en el intervalo [1.625; 1,6875]

    N = 5 < Nmax y abs(1.625 – 1.6875) = 0.0625 < ξ, por tanto la raíz de la función f(x), es   aproximadamente 1.6875

    Ejercicio No. 2
    Dada la función f(x)=x³ + 2 x² +10 x -20, encontrar una raíz en el intervalo [0;2] de su dominio. Usar para sus cálculos ξ = 0.001 y un número máximo de pasos de 10.

    Descargar Ejemplos en C#
    PuntoMedio-Ejercicio-1.zip
    PuntoMedio-Ejercicio-2.zip

    Roy Rojas
    Roy Rojashttp://www.dotnetcr.com
    Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub
    Roy Rojas
    Roy Rojashttp://www.dotnetcr.com
    Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub