viernes, septiembre 29, 2023

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 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

    Redes Sociales

    2,736FansMe gusta
    326SeguidoresSeguir

    Popular esta semana

    SQL Server

    Cómo saber la fecha que se modificó un procedimiento almacenado

    Poder saber cuales objetos o procedimientos almacenados se modificaron recientemente es muy útil principalmente en bases de datos donde varios desarroladores tienen acceso
    SQL Server MERGE

    MERGE en SQL Server para Insert, Delete y Update con dos tablas

    Ejemplo práctico usando MERGE para sincronizar dos tablas, Insert, Update y Delete en un solo query. Válido para SQL SERVER 2008 o superior.

    Convertir String a Base64 y Base64 a String

    Hemos tenido algunas consultas en estos días de cómo convertir Texto String a Base64 y viceversa, entonces decidimos hacer este pequeño ejemplo. Las funciones son...

    Últimos artículos

    SQL Server MERGE

    MERGE in SQL Server for Insert, Delete and Update with two tables

    Practical example using MERGE to synchronize two tables, Insert, Update and Delete in a single query. Valid for SQL SERVER 2008 or...

    Como crear una API REST con ASP.NET Core 6.0

    Crear una API REST con C# en ASP.NET es un proceso sencillo y rápido que permite exponer un conjunto de recursos a...
    Machine Learning & Python

    Introducción a Machine Learning en Python

    Machine Learning es una rama de la inteligencia artificial que se enfoca en el desarrollo de sistemas que pueden aprender de...
    SQL Server MERGE

    MERGE en SQL Server, como utilizarlo de forma sencilla

    El comando MERGE en SQL Server se utiliza para combinar datos de varias tablas en una sola tabla. Es útil para actualizar...