Você está na página 1de 2

import matplotlib.

pyplot as plt
import numpy as np

# Función para ajustar un polinomio cúbico a los nodos dados


def ajustar_polinomio_cubico(nodos):
x_vals = nodos[:, 0]
y_vals = nodos[:, 1]

coefs = np.polyfit(x_vals, y_vals, 3)


polinomio_cubico = np.poly1d(coefs)

return polinomio_cubico

# Función para añadir nodos


def agregar_nodos():
nodos = []
while True:
try:
x = float(input("Ingrese el valor de x (o ingrese un valor no numérico
para finalizar): "))
y = float(input("Ingrese el valor de y: "))
except ValueError:
break # Salir si se ingresa un valor no numérico

nodos.append((x, y))

return np.array(nodos)

# Añadir nodos
nodos = agregar_nodos()

# Ajustar polinomio cúbico


polinomio_cubico = ajustar_polinomio_cubico(nodos)

# Graficar nodos
plt.scatter(nodos[:, 0], nodos[:, 1], label='Nodos', color='red')

# Graficar polinomio cúbico ajustado


x_vals = np.linspace(min(nodos[:, 0]), max(nodos[:, 0]), 100)
y_vals = polinomio_cubico(x_vals)
plt.plot(x_vals, y_vals, label='Polinomio Cúbico Ajustado', color='blue')

plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.title('Ajuste de Polinomio Cúbico')
plt.grid(True)
plt.show()

# Imprimir el polinomio
print("Polinomio cúbico ajustado:")
print(polinomio_cubico)

# Solicitar un número y imprimir el valor del polinomio en ese número


try:
numero_evaluar = float(input("Ingrese un número para evaluar el polinomio: "))
resultado_evaluacion = polinomio_cubico(numero_evaluar)
print(f"El valor del polinomio en {numero_evaluar} es: {resultado_evaluacion}")
except ValueError:
print("No se pudo evaluar el polinomio. Se ingresó un valor no numérico.")

Você também pode gostar