Método de Newton-Raphson en Python
Вставка
- Опубліковано 21 гру 2024
- Se programa el método de Newton-Raphson de tal forma que Python deriva la función digitada por el usuario. En caso de no contar con la librería sympy se crea un programa en el cual no se requieren variables simbólicas.
Uff papi, vos sos muy crack, todos los cuchos que veia explicando este tema daban la de sueño, en cambio vos +10
Gracias por tu comentario, me da ánimo para continuar con el canal.
Buenas, y para resolver un sistema de ecuaciones con este metodo?
PD: Buenos videos, gracias de antemano
Cómo sería el método para que una persona digite los parámetros como función, xi, todo y el programa haga la derivada e imprima las iteraciones? Yo le pongo los inputs en las variables y por alguna razón no me funciona.
Para Python todo lo que se digita por input es reconocido como cadena de caracteres, por ello toca convertirlo al tipo de variable correspondiente; por ejemplo, para el número de iteraciones conviene algo como esto
n=int( input('Digite el número de iteraciones ') )
En este video se explica ese inconveniente
ua-cam.com/video/r4s4fHLq_iY/v-deo.html
@@programmath
import sympy as sp
from math import * #se importan todas las funciones de la libreria
def newtonraphson():
x=sp.symbols('x') #se crea la variable y se define cual va a ser su invocaion
f= input('Ingrese la funcion de variable (x): ') #se utilizara X como variable
df=sp.diff(f)#se realiza la derivada de la funcion introducida
f=sp.lambdify(x,df)
df=sp.lambdify(x,df)
x0=float(input('digite valor un valor inicial: '))
#x0=float(x0)
n = input('digite la cantidad de iteraciones a realizar: ')
n = int👎
tol = input('digite el error maximo permitido: ')
tol = float(tol)
for k in range(n):
x1=x0-(f(x0)/df(x0))
if(abs(x1-x0)
Necesito hacer la solución con el método de Newton, el cual es con la primera y segunda derivada. Tendría que definir como F(x) la primera derivada y como df(x) la segunda?
Asumo que lo que buscan es usar el método para hallar máximos y mínimos, en ese caso f(x) debe ser la derivada de la función que te dan en el problema.
hola bro el codigo no compila a que se debe,
?
Muéstrame el error que te da Python.
estos son los codigos y no compila, espero tu respuesta por favor
import sympy as np
from math import*
def f(x):
func=0.65*2+5.68*np.log(1+(x)/5.68);
return func
def df(x):
return (5.68)/(1+x)
def NewtonRaphson(x0,tol,n):
for k in range(n):
x1=x0-f(x0)/df(x0)
if(abs(x1-x0)
Lo único que le cambie al programa fueron las sangrías, las puse empleando tab. El código me compila y ejecuta sin contratiempos.
import sympy as np
from math import*
def f(x):
func=0.65*2+5.68*np.log(1+(x)/5.68);
return func
def df(x):
return (5.68)/(1+x)
def NewtonRaphson(x0,tol,n):
for k in range(n):
x1=x0-f(x0)/df(x0)
if(abs(x1-x0)
COMO SE PUEDE REALIZAR LA GRÁFICA ?
Este es un ejemplo de como generar la gráfica de y=x^2 en el intervalo [-3,3]
---------------
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,30);
y=x**2
plt.plot(x,y)
--------------
tengo una duda
este codigo solo sirve para las funciones que tenga cosenos, como en tu ejemplo cos(x)-x**3
?
Si necesitas otra función, solo cambias esa línea por la función deseada; puede ser cualquiera.
AttributeError: module 'sympy' has no attribute 'assumptions' me sale eso
Parece un problema con la librería sympy al usar alguno de los comandos. Comparteme tu código para revisarlo.
Si quisiera calcular el error como le haría ?
El error, en el código, es dado por abs(x1-x0) [error absoluto]. Este corresponde a la diferencia (positiva) entre el resultado de la iteración anterior y el de la actual.
por que solo me imprime una iteraccion :c