概念
最小二乘法多项式曲线拟合,依据给定m个点,并不要求这条曲线正确地经过这些点,而是曲线y=f(x)近似曲线y= φ(x)。
原理
[原理部分由个人依据互联网上资料进行总结,期望对大家能有用]
给定数据点pi(xi,yi),其中i=1,2,…,m。求近似曲线y= φ(x)。而且使得近似曲线和y=f(x)偏差最小。近似曲线在点pi处偏差δi= φ(xi)-y,i=1,2,...,m。
常见曲线拟合方法:
按偏差平方和最小标准选择拟合曲线,而且采取二项式方程为拟合曲线方法,称为最小二乘法。
推导过程:
1. 设拟合多项式为:
2. 各点到这条曲线距离之和,即偏差平方和以下:
3. 为了求得符合条件a值,对等式右边求ai偏导数,所以我们得到了:
.......
4. 将等式左边进行一下化简,然后应该能够得到下面等式:
.......
5. 把这些等式表示成矩阵形式,就能够得到下面矩阵:
6. 将这个范德蒙得矩阵化简后可得到:
7. 也就是说X*A=Y,那么A = (X'*X)-1*X'*Y,便得到了系数矩阵A,同时,我们也就得到了拟合曲线。
实现
运行前提:
Python运行环境和编辑环境;
,可用于快速绘制2D图表,和matlab中plot命令类似,而且使用方法也基础相同。
代码:
[python] view plain copy
# coding=utf-8
'''''
作者:Jairus Chan
程序:多项式曲线拟合算法
'''
import as plt
import math
import numpy
import random
fig = ()
ax = (111)
#阶数为9阶
order=9
#生成曲线上各个点
x = (-1,1,)
y = [((a*a-1)*(a*a-1)*(a*a-1)+)*(a*2) for a in x]
#(x,y,color='r',linestyle='-',marker='')
#,label="(a*a-1)*(a*a-1)*(a*a-1)+"
#生成曲线上各个点偏移一下,并放入到xa,ya中去
i=0
xa=[]
python曲线拟合原理代码样稿 来自淘豆网m.daumloan.com转载请标明出处.