In this problem, we write a program to estimate the parameters for an unknown polynomial using the polyfit() function of the numpy package. 1
)Please plot the noisy data and the polynomial you found (in the same figure). You can use any value of m selected from 2, 3, 4, 5, 6.
2)Plot MSE versusorder m,for m = 1, 2, 3, 4, 5, 6, 7, 8respectively.Identify the best choice of m.
3)Change variable noise_scaleto 150, 200, 400, 600, 1000 respectively,re-run the algorithmand plot the polynomialswith the m found in 2). Discuss the impact of noise scale to the accuracy of the returned parameters.[You need to plot a figure like in 1) for each choice of noise_scale.]
4)Change variable number_of_samplesto 40, 30, 20, 10 respectively, re-ran the algorithm and plot the polynomialswith the m found in 2). Discuss the impact of the number of samples to the accuracy of the returned parameters.[You need to plot a figure like in 1) for each choice of number_of_samples.]
A simulateddataset will be providedas below.The polynomial used is y = 5 * x + 20 * x^2+ x^3.
Simulated data is given as follows in Python:
import matplotlib.pyplot as plt
import numpy as np
noise_scale = 100
number_of_samples = 50
x = 25*(np.random.rand(number_of_samples, 1) -0.8)
y = 5 * x + 20 * x**2 + 1 * x**3 + noise_scale*np.random.randn(number_of_samples, 1)