martes, 3 de julio de 2018

Valores de un polinomio en Python

Reto: Polinomio

Dado el polinomio y=x^4-3x^2+2 calcular el valor de y para valores de x que varían en el rango -2, +2 con incremento de 0,1.




Gráfico obtenido con Excel

Método 1

Importamos la librería numpy con el alias np. Esta librería nos permite acceder a funciones y comandos matemáticos, como por ejemplo arange que nos proporciona un rango similar a range pero además acepta un tercer argumento que es el paso o incremento utilizado.
Usamos round para controlar los decimales que se obtienen en los cálculos.

import numpy as np
for x in np.arange(-2.0, 2.1, 0.1):
  y= round(x,1)**4-3*round(x,1)**2+2 
  print(round(x,1),round(y,4))


Método 2

Usando una función que nos de el valor de y para un cierto x. Para no usar la librería numpy hemos utilizado un pequeño truco para poder utilizar range y obtener incrementos no enteros. Lo que hacemos es variar los valores del rango entre -20 y +20 de uno en uno, y luego dividir entre 10.
En este caso no hemos utilizado round y debido a ello obtenemos unos valores con muchos decimales que no serían los correctos, ya que los cálculos no se realizan con la precisión necesaria.

def y(x):
  return pow(x,4)-3*pow(x,2)+2

for k in range(-20,21):
  k/=10
  print(k,y(k))

No hay comentarios:

Publicar un comentario