Código de Python - Derivada

Imágen de perfil

Derivadagráfica de visualizaciones


Python

Publicado el 22 de Agosto del 2023 por Hilario (124 códigos)
295 visualizaciones desde el 22 de Agosto del 2023
****************************************************************
Hilario Iglesias Martínez
*****************************************************************

Programa que realiza un descenso de gradiente a una función dada.
Todos los pasos están explicados en el propio programa
Realizado en una plataforma Linux, sistema operativo Ubuntu 20.04.6 LTS.
Se utiliza b como editor Sublime Text.
********************************************************************
Para los que lo deseen pueden editar y ejecutar este programa en
Google Colab.
******************************************************************
EJECUCIÓN.
Bajo consola Linux.
python3 PyParabola.py
******************************************************************

Requerimientos

Realizado en una plataforma Linux, sistema operativo Ubuntu 20.04.6 LTS.
Se utiliza b como editor Sublime Text.
Para los que lo deseen pueden editar y ejecutar este programa en
Google Colab.

V.0.

Publicado el 22 de Agosto del 2023gráfica de visualizaciones de la versión: V.0.
296 visualizaciones desde el 22 de Agosto del 2023
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

descarga
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
"""
Realizamos un Descenso de Gradiente.
Función a utilizar:
f(x)=x^2
"""
#Importamos módulos necesarios
import numpy as np
import matplotlib.pyplot as plt
#Declaramos funciones
def FuncionDe_x(x):
  return x**2
#Función para la derivada
def Derivada_Descendente(Coeficiente_Aprendizaje,Número_Interaciones):
  #Almacenamiento de valores de inicio, valores x, valores y.
   Valor_Inicio_x = 16.0  # Valor inicial de x
   Valores_x = []  # Para almacenar los valores de x en cada iteración
   Valores_y = []  # Para almacenar los valores de f(x) en cada iteración que daran coordenadas y.
   for _ in range(Número_Interaciones):
    Derivada_en_Punto = 2 * Valor_Inicio_x  # El gradiente de la función f(x) = x^2 es 2x
    Valor_Inicio_x -= Coeficiente_Aprendizaje * Derivada_en_Punto
#Almacenamos los valores en las variables abiertas utilizando:append
    Valores_x.append(Valor_Inicio_x)  # Guardar el valor actual de x
    Valores_y.append(FuncionDe_x(Valor_Inicio_x))  # Guardar el valor actual de f(x) que da el primer valor en y.
 
 
#Deberías asegurarte de que el return esté fuera del bucle for,
#para que la función pueda realizar todas las iteraciones
#antes de devolver los resultados.
 
 
   return Valor_Inicio_x, Valores_x, Valores_y
#Declaramos ciente de aprendizaje (CoefiLearning rate) y el número de interaciones.
 
Coeficiente_Aprendizaje = 0.01
Número_Interaciones = 1000
#Según los resultados podemos aumenta el número de iteraciones.
#Una vez finalizadas las interaciones le pedimos a la función que nos devuelva los valores.
Minimimo_Valor_x, Valores_x, Valores_y = Derivada_Descendente(Coeficiente_Aprendizaje,Número_Interaciones)
print('\n')
#Imprimimos el valor mínimo de regresión en x.
print("********************************************************")
print("Valor minimimo de regresión en x:", Minimimo_Valor_x)
Minimimo_Valor_y=Minimimo_Valor_x**2
print("Valor mínimo en y:",Minimimo_Valor_y)
print("********************************************************")
print('\n')
#Vamos a iniciar la construcción de la gráfica.
plt.scatter(Valores_x, FuncionDe_x(np.array(Valores_x)), color='black', label='Descenso de Gradiente')
plt.grid(True, which='both', linestyle='--', linewidth=0.5, color='red')
plt.minorticks_on()
plt.plot(Valores_x, Valores_y, label='f(x) = x^2')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend()
plt.show()
 
"""
********************************************************
Valor minimimo de regresión en x: 2.6927477715455246e-08
Valor mínimo en y: 7.250890561163388e-16
********************************************************
"""



Comentarios sobre la versión: V.0. (0)


No hay comentarios
 

Comentar la versión: V.0.

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7419