概念
最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲 线y=f(x)的近似曲线y= e(x)。
原理
[原理部分由个人根据互联网上的资料进行总结,希望对大家能有用]
给定数据点pi(xi,yi)概念
最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲 线y=f(x)的近似曲线y= e(x)。
原理
[原理部分由个人根据互联网上的资料进行总结,希望对大家能有用]
给定数据点pi(xi,yi),其中i=1,2,…,m。求近似曲线y= e(x)。并且使得近似曲线
与y=f(x)的偏差最小。近似曲线在点pi处的偏差5i= e(xi)-y, i=1,2,...,m。
常见的曲线拟合方法:
使偏差绝对值之和最小
使偏差绝对值最大的最小
使偏差平方和最小
赤£/=£(心)-乂尸
『* i
按偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线的方法,称为
最小二乘法。
推导过程:
1.
设拟合多项式为:
y a? do 4- a\ .¥ + . JL + .
2.
各点到这条曲线的距离之和,即偏差平方和如下:
r]三 £ -国■十口 i …)「一
i=l
3.
4.
为了求得符合条件的a值,对等式右边求ai偏导数,因而我们得到了:
-2 Z - 0Q + HI 工 + . _. + 必-/ >1 -t ■ 0 J=j
-2 y g -同 4 c| 据 + …4 = 0
j=j
,g - + "t 4 ... + 此 J)| =0.
j=j
将等式左边进行一下化简,然后应该可以得到下面的等式:
如n + £.日4…+日& '.矽 i=\ j=J
■I* Jv Jr
j'= j 1=1. i= I.
,就可以得到下面的矩阵:
6.
将这个范德蒙得矩阵化简后可得到:
I -V|
1
*A=Y,那么A = (X'*X)-1*X'*Y,便得到了系数矩阵A,同时,我们也就
得到了拟合曲线。
实现
运行前提:
Python运行环境与编辑环境;
,可用于快速绘制2D图表,与matlab中的plot 命令类似,而且用法也基本相同。
代码:
[python] view plain copy
# coding=utf-8
2.
3.
作者:Jairus Chan
程序:多项式曲线拟合算法
'''
import as plt
import math
import numpy
import random
11.
fig = ()
ax = (111)
14.
#阶数为9阶
order=9
17.
#生成曲线上的各个点
x = (-1,1,)
y = [((a*a-1)*(a*a-1)*(a*a-1)+)*(a*2) for a in x]
#(
python 曲线拟合 原理 代码 来自淘豆网m.daumloan.com转载请标明出处.