Método de Newton-Rhapson con Python

Поділитися
Вставка
  • Опубліковано 21 гру 2024

КОМЕНТАРІ • 45

  • @Dariloli
    @Dariloli 5 років тому +4

    Muchísimas gracias

  • @Satenc0
    @Satenc0 7 років тому +2

    Muy bueno el video, bastante utiles tus explicaciones de metodos numericos

    • @math4cheems
      @math4cheems  6 років тому

      :) Que bueno. Me alegra saber que te ayudó el video. Feliz día.

  • @alexandersanchez8436
    @alexandersanchez8436 6 років тому +2

    Entendi todo super bien, muchas gracias

    • @math4cheems
      @math4cheems  6 років тому

      Gracias a ti por ver el video. Me algegra mucho saber que te fue de utilidad. Buen día. :)

  • @teop0617
    @teop0617 4 роки тому

    Gracias fiera, crack, maquina, figura.

  • @johanablanco6070
    @johanablanco6070 5 років тому

    Super gracias lo entendí super bien.

  • @csmartinification
    @csmartinification 3 роки тому

    gracias mister

  • @alexagutierrez644
    @alexagutierrez644 4 роки тому

    ¡Qué geniaaaal! Gracias.

  • @lauracampelo7648
    @lauracampelo7648 5 років тому +1

    Hola! si quisiera que me de una raíz que este dentro de un intervalo como lo especifico?

    • @math4cheems
      @math4cheems  5 років тому

      Hola. Mira, para la situación que planteas están otros métodos como el de la bisección. Newton-Rhapson funciona con un único valor de arranque. Feliz día.

    • @lauracampelo7648
      @lauracampelo7648 5 років тому

      @@math4cheems y como haría si la función tiene más de 1 raíz y quiero la que estar dentro de un determinado intervalo? Gracias!

    • @math4cheems
      @math4cheems  5 років тому +1

      Hola. Como te dije, usa el método de la bisección. El método de Newton-Rhapson NO funciona especificando un intervalo de interés. Su mecánica es otra.

  • @elcaballerodelao
    @elcaballerodelao 4 роки тому

    Recontra bien esplicado.
    >Sos el papus de los papus :alaba:

  • @leobardogama2803
    @leobardogama2803 5 років тому

    Gracias me sirvio mucho

  • @ghostact8312
    @ghostact8312 6 років тому

    para una mejor precisión, seria mejor error = abs(x1-x0)/x0.
    es correcto?

    • @math4cheems
      @math4cheems  6 років тому

      Hola. La fórmula que planteas es la usada para el error relativo. Recuerda que la idea es que no conocemos el valor real de la raíz (el exacto), por lo que se hace es calcular un error de aproximación y este hace referencia a qué tan pequeño se hace la diferencia entre los diferentes resultados de las iteraciones. Si lo que uno desea es tener un resultado con n cifras decimales exactas (lo que es lo típico en estas situaciones) entonces debe calcular abs(x1-x0) lo cual me indicará que mi precisión ronda en esa precisión decimal. El cálculo del error relativo no es el indicado, tiene otro propósito. Saludos.

    • @ghostact8312
      @ghostact8312 6 років тому

      Carlos Andrés Pérez Montaña es cierto, tienes razón, saludos

  • @BastianRoses
    @BastianRoses 8 років тому

    Hola, una consulta, hay alguna forma de que python derive?, por ejemplo que dada cualquier función que ingresemos el programa la derive por si sola?.

    • @math4cheems
      @math4cheems  8 років тому +3

      Hola. Sí, usando el paquete Sympy para manipulación simbólica en Python. Feliz día. Gracias, me has dado una idea para un nuevo video... hace rato no hago... no tengo tiempo casi :(

  • @stykolneko537
    @stykolneko537 3 роки тому

    Muchas gracias

  • @Mary-cn6sd
    @Mary-cn6sd 4 роки тому

    Como puedo utilizar la formula x^2-e^-x? Me ayudarias mucho explicando

  • @mariobravotoledo7245
    @mariobravotoledo7245 6 років тому

    hay una forma corta de ocupar el metodo, es algo de nw(punto,tolerancia,1000)... algo asi es, si pudieras explicar eso seria espectacular!!!

    • @math4cheems
      @math4cheems  6 років тому

      Hola. Tal vez a lo que te refieras es a crear una función que use internamente el algoritmo de Newton-Rhapson para hallar una raíz de una función dada. Es básicamente crear dicha función poniendo dentro los pasos claves del algoritmo. Aquí el propósito es explicar con detalle qué es lo que hace el método, cómo es que en cada iteración se va aproximando a la raíz, etc., esto es, entender el método.
      Hay librerías de Python que traen funciones optimizadas para resolver este tipo de problemas (como Scipy con su módulo optimize, más concretamente la función "newton" cuya sintaxis general es: scipy.optimize.newton(func, x0, fprime=None, args=(), tol=1.48e-08, maxiter=50, fprime2=None)) pero insisto que lo que buscaba era mostrar la "magia" que hay dentro de este método. Pero si quieres crear tu propia función llamada "nw" puedes crearla con "def nw(fun, x0, tol, maxiter):" o como quieras, e internamente poner lo que viste en el video y decirle que te retorne lo que necesites (raiz, error aproximado, iteraciones realizadas, etc.) de lo que opere.
      Buen día y gracias por comentar :)

  • @cricareea
    @cricareea 6 років тому

    Que tal amigo, una consulta, estoy utilizando python y pypower; ahí existe un ejemplo que se llama "case30"
    quiero correr un Flujo de Potencia (runpf) y un Flujo optimo (runopf) y me sale el siguiente error 'numpy.float64' object cannot be interpreted as an integer, favor su ayuda
    saludos

    • @math4cheems
      @math4cheems  6 років тому

      Hola Cristian. Mira, desconozco el proceso que estés realizando pero basado en ese mensaje de error te diría que lo que ocurre es que el sistema está esperando que se le entregue un valor entero (integer) y tu le estás entregando un número en formato de coma flotante (float). Acabo de leer en un foro en donde mencionan el hecho de que en versiones anteriores de Numpy este no ponía problemas en algunos casos, pero las versiones más recientes se han puesto un poco más estrictas al respecto. Lo que debes hacer es revisar el código y encontrar la variable o parámetro que se pide entera y que tu le entregas como flotante para que hagas el cambio respectivo de formato. Buen día y éxitos con eso.

  • @dianaromero2478
    @dianaromero2478 4 роки тому

    Yo tengo una pregunta... Porque en el ciclo while, pones 1e-10? Es el rango de... ?
    PD: Gracias por tu EXCELENTE video, me ayudaste mucho.

    • @teop0617
      @teop0617 4 роки тому +2

      Imagino que ya lo habrás sacado pero...
      Lo hace para que no haga más iteraciones de las necesarias.
      Por ejemplo: Si la iteración 5 y la 6 son iguales pues sale (son iguales o varia menos de 1e-10 en este caso)

    • @dianaromero2478
      @dianaromero2478 4 роки тому +1

      @@teop0617 sí, lo saqué al día siguiente pero igual me ayudaste bastante. Muchas gracias por tu respuesta 🤭.

  • @valentinasanchezbedoya4300
    @valentinasanchezbedoya4300 8 років тому

    Gracias por tu explicación, me sirvió mucho para entender, pero hay mucha diferencia en la implementación de este programa en phyton 2.7?

    • @math4cheems
      @math4cheems  8 років тому +1

      Hola. Me alegro mucho que te sirviera el video. Mira, en este caso la implementación en python 2.7 de lo hecho en el video simplemente varía en que si usas python 2.7 debes poner poner "print x0" en lugar de "print(x0)" y así para los otros momentos donde aparezca "print". No veo que se requiera otro cambio en lo hecho. Córrelo y me cuentas. Feliz día.

    • @valentinasanchezbedoya4300
      @valentinasanchezbedoya4300 8 років тому

      Hola. Me sirvio mucho. Pero no encuentro como hacer tablas en python. Me podrias ayudar?

    • @math4cheems
      @math4cheems  8 років тому

      Hola. Sí, hay varias maneras. La más común es usando el paquete Pandas, el cual tiene cualquier cantidad de herramientas interesantes para datos. Saludos.

  • @TapabocasCOL
    @TapabocasCOL 4 роки тому

    GRACIAAAAAAAAAAAAAAAAAAAAAS

  • @derekshelom
    @derekshelom 7 років тому

    faltó hacer el comando de ipython
    %matplotlib inline
    para tener la gráfica en el cuaderno jupyter☺

    • @math4cheems
      @math4cheems  7 років тому +1

      Hola! Comprendo lo que dices, pero en realidad es cuestión de gustos. A mi personalmente me gusta tener las gráficas afuera del cuaderno (ya que qt me permite hacerle muchas cosas interesantes para efecto de posterior exportación)... de hecho las versiones más recientes de Jupyter por defecto ponen las gráficas dentro y una de las primeras cosas que hago es poner el comando
      % matplotlib qt
      para que me las deje por fuera.
      Pero de todas maneras muchas gracias por comentar y por ver mis videos. Un feliz día para ti. :)

    • @cursos1844
      @cursos1844 4 роки тому

      Carlos Perez muy cierto es mejor fuera

    • @anibeth8420
      @anibeth8420 3 роки тому

      @@math4cheems Hola, gracias por tu video. He entendido muchas cosas. Sólo tengo una duda, ya que a mi la gráfica me sale dentro del cuaderno de Jupyter y no encontré la manera de que sea externa, entonces ¿Cómo logro hacer esto?

    • @math4cheems
      @math4cheems  3 роки тому +1

      @@anibeth8420 en vez de %matplotlib inline usa: %matplotlib qt5
      Si tienes en tu computador qt4 pues pon qt4... la idea es esa (es la más común).
      Sin embargo otras opciones existentes (dependiendo de cómo esté configurado tu Jupyter y Python) son: 'osx', 'qt4', 'qt5', 'gtk3', 'wx', 'qt', 'gtk', 'tk' (obvio sin las comillas). Alguna te servirá. Pero lo más seguro y mejor es qt5 o qt4.

  • @axios-xu9gv
    @axios-xu9gv 7 років тому +1

    Encontre esta formas mas sencilla de verlo usando la libreria Scipy
    from scipy.misc import derivative
    import numpy as np
    from numpy import *
    # Definiendo la función
    def f(x):
    return x**3-np.cos(x)
    x0 =1
    i = 1
    for iteration in range(1,6):
    x1 = x0 - f(x0)/derivative(f,x0)
    x0=x1
    print("El ciclo:",c,"da como raíz aproximada a:",x0)
    c += 1
    print("La raíz aproximada es de:", x0)
    Aunque de manera mas general le agregue esto y quedo también chevere:
    from scipy.misc import derivative
    import numpy as np
    from numpy import *
    # Definiendo la función
    def f(x):
    return x**3-np.cos(x)
    x0=float(input("Ingrese el valor X0 aproximado para calcular la raiz"))
    n=int(input("Ingrese el numero de veces para recorrer para tener mejor exactitud"))
    c =1
    for iteration in range(n+1):
    x1 = x0 - f(x0)/derivative(f,x0)
    x0=x1
    print("El cliclo:",c,"da como raiz aproximada a:",x0)
    c += 1
    print("La raiz aproximada es de:",x0)
    ------Salida de resultado-----------
    Ingrese el valor X0 aproximado para calcular la raiz: 1
    Ingrese el numero de veces para recorrer para tener mejor exactitud: 22
    El cliclo: 1 da como raiz aproximada a: 0.902359701455
    El cliclo: 2 da como raiz aproximada a: 0.874334982627
    El cliclo: 3 da como raiz aproximada a: 0.867508588426
    El cliclo: 4 da como raiz aproximada a: 0.865935796249
    El cliclo: 5 da como raiz aproximada a: 0.865578551524
    El cliclo: 6 da como raiz aproximada a: 0.865497675877
    El cliclo: 7 da como raiz aproximada a: 0.86547938051
    El cliclo: 8 da como raiz aproximada a: 0.865475242514
    El cliclo: 9 da como raiz aproximada a: 0.86547430663
    El cliclo: 10 da como raiz aproximada a: 0.865474094964
    El cliclo: 11 da como raiz aproximada a: 0.865474047093
    El cliclo: 12 da como raiz aproximada a: 0.865474036266
    El cliclo: 13 da como raiz aproximada a: 0.865474033817
    El cliclo: 14 da como raiz aproximada a: 0.865474033263
    El cliclo: 15 da como raiz aproximada a: 0.865474033138
    El cliclo: 16 da como raiz aproximada a: 0.86547403311
    El cliclo: 17 da como raiz aproximada a: 0.865474033103
    El cliclo: 18 da como raiz aproximada a: 0.865474033102
    El cliclo: 19 da como raiz aproximada a: 0.865474033102
    El cliclo: 20 da como raiz aproximada a: 0.865474033102
    El cliclo: 21 da como raiz aproximada a: 0.865474033102
    El cliclo: 22 da como raiz aproximada a: 0.865474033102
    El cliclo: 23 da como raiz aproximada a: 0.865474033102
    La raiz aproximada es de: 0.865474033102

    • @axios-xu9gv
      @axios-xu9gv 7 років тому

      De verdad muchas gracias por hacer tan sencillo el método para los que estamos aprendiendo.....y pude lograr lo que hice viendo tu vídeo y otro de derivadas en python ^^, es genial aprender por internet.

    • @math4cheems
      @math4cheems  7 років тому

      Gracias! Excelente aporte. Hay muchas maneras de hacerlo... otra es usando Sympy. La idea en el video era conocer el algoritmo como tal... su esencia. Pero me parece muy bueno tu comentario. Feliz día.

    • @axios-xu9gv
      @axios-xu9gv 7 років тому

      Gracias y seguiré aprendiendo cada día un poco mas, gracias por el aporte.

  • @cienciayeducacionparatodos9958
    @cienciayeducacionparatodos9958 3 роки тому

    Excelente video, comparto el siguiente video del método de Newton-Raphson ua-cam.com/video/LnL24g8z8Us/v-deo.html