Ajuste de curvas ruidosas, funciones de seno con polinomios

Función lineal ajustada al ruido lineal

Contenido del programa: primero genere una imagen de dispersión lineal con ruido aleatorio, configure un polinomio de primer orden para que se ajuste a la imagen de dispersión y finalmente muestre la imagen de dispersión original y la función polinomial ajustada.

el código se muestra a continuación:

import numpy as np
import matplotlib.pyplot as plt
from numpy import polyfit

x = np.linspace(-5, 5, 100)
y = 4 * x + 1.5
noise_y = y + np.random.randn(y.shape[0]) * 2.5
plt.subplot(2,1,1)
plt.title("original image")
p = plt.plot(x, noise_y,'rx', marker="3")

plt.subplot(2,1,2)
# 用多项式进行拟合,在此用一次函数拟合
coeff = polyfit(x, noise_y, 1)
print(coeff)
plt.title("image after polynomial fitting")
p = plt.plot(x, coeff[0] * x + coeff[1], 'k-')
plt.show()

La pantalla de resultados:
inserte la descripción de la imagen aquí

Ajuste de una función seno con un polinomio

Aquí, se utilizan polinomios de tres grados, polinomios de cinco grados y polinomios de nueve grados para ajustar la función seno.

El código del programa es el siguiente:

import numpy as np
import matplotlib.pyplot as plt
from numpy import polyfit, poly1d

x = np.linspace(0,4*np.pi,200)
y = np.sin(x)
y3 = poly1d(polyfit(x,y,3))
y5 = poly1d(polyfit(x,y,5))
y9 = poly1d(polyfit(x,y,9))

plt.subplot(2,2,1)
plt.title("original image")
p = plt.plot(x, y)
plt.subplot(2,2,2)
plt.title("Third Order polynomials")
p = plt.plot(x, y3(x))
plt.subplot(2,2,3)
plt.title("fifth Order polynomials")
p = plt.plot(x, y5(x))
plt.subplot(2,2,4)
plt.title("ninth Order polynomials")
p = plt.plot(x, y9(x))
plt.show()

Los resultados obtenidos se muestran a continuación: Como
inserte la descripción de la imagen aquí
se puede ver en la figura, a medida que aumenta el coeficiente del polinomio, el efecto de ajuste es cada vez mejor. Cuando el polinomio es 9, la función seno se puede restaurar muy bien.

Supongo que te gusta

Origin blog.csdn.net/ximu__l/article/details/129354159
Recomendado
Clasificación