多项式拟合
n次多项式拟合
一、用最小二乘法进行n次拟合原理
给定一组数据
作n次拟合曲线,转化为均方误差
的极小问题。
得到法方程:
,其中
解法方程得到a0,a1,…,an.
注意:当拟合多项式阶数n>5时,法方程的系数矩阵时病态的。
二、算例
数据集:
x = -3,-2,-1,0,1,2,3
y = 4,2,3,0,-1,-2,-5
程序实现:
#n次拟合曲线:y=a0+a1x+a2x^2+...+anx^n
import numpy as np
x_array = np.array([-3,-2,-1,0,1,2,3])
y_array = np.array([4,2,3,0,-1,-2,-5])
n = 2 #方程的次数(n<5)
m = len(x_array)#方程个数
A = np.ones(m).reshape((m,1))
for i in range(n):
A = np.hstack([A,(x_array**(i+1)).reshape((m,1))])
from numpy.linalg import solve
X = solve(np.dot(A.T,A),np.dot(A.T,y_array.T))
print(X)

输出结果:[ 0.66666667 -1.39285714 -0.13095238]
结果可视化:

多项式展开系数
Declare @A int=7; Declare @w nVarchar(3000)=” Declare @s nVarchar(3000)=” Declare @sql nvarchar(4000)=” Select @w
0716-常数时间,线性时间,多项式时间
常数时间,意思就是无论n是什么值运算所花时间都一样。 线性时间则是说多大n就花多少时间。 多项式时间则意味着随着n增大,n每增加1
多项式时间
多项式时间是指一个问题的计算时间不大于问题规模的多项式倍数,多项式时间代表的是一类时间复杂度的统称。这里的计算时间不是具体
计算方法(二):n次多项式插值
插值法的基本思想 基本思想: 给出函数y=f(x)y=f(x)y=f(x)的一组观测点(函数表) xxx x0x_0x0 x1x_1x1 …\ldots… xnx_nxn
周期函数的拟合
周期函数的拟合flyfish类似sin函数的拟合import numpy as np import matplotlib.pyplot as plt x= np.arange(1, 362, 1) y = np
文章回顾
大家看了本文n次多项式拟合的精彩教程资源内容,是不是对n次多项式拟合了解更多,真心希望n次多项式拟合能帮助到你, 小编会一直给你带来更多教程资源文章信息。