多项式使用最小二乘法拟合数据
最小二乘法
将所有的点利用初始得到的多项式的值和实际值的差的平方做和,这就是所谓的误差函数,而我们所要做的就是使该误差函数取得它的极小值。
E=∑(f(xi)−yi)2E=\sum(f(x_i)-y_i)^2E=∑(f(xi)−yi)2
通常我们假设f(xi)=Axi2+Bxi+Cf(x_i)=Ax_i^2 + Bx_i+Cf(xi)=Axi2+Bxi+C之后的误差函数就如下所示:
E=∑(Axi2+Bxi+C−yi)2E=\sum(Ax_i^2 + Bx_i+C-y_i)^2E=∑(Axi2+Bxi+C−yi)2
对于该误差函数求令其最小的A,B,C的值,利用高等数学中的求偏导,令偏导数为0,求的各个参数。
∂E∂A∣=2∗∑(Axi2+Bxi+C−yi)∗xi2=0\left.\frac{\partial E}{\partial A}\right| = 2*\sum(Ax_i^2 + Bx_i+C-y_i)*x_i^2=0∂A∂E∣∣∣∣=2∗∑(Axi2+Bxi+C−yi)∗xi2=0
..................
以上为使用多项式去拟合数据的数学原理,以下使用python的程序实现一个简单的线性拟合程序:
#首先使用numpy生成x的序列
#导入相应的包
import numpy as np
from scipy.optimize import leastsq #最小二乘法函数
import matplotlib.pyplot as plt
#生成真实的模型
x = np.linspace(0,1,10)
ideal_y = np.sin(2*np.pi*x)#理想情况下的y值
#为了符合现实的情况,需要将真实模型的数据点加上正态分布的噪声
real_y = [np.random.normal(0,0.1)+t for t in ideal_y]
#建立多项式,并设定相应的初值
p = [2,1,1]
F = np.poly1d(p)#生成一个多项式$f(x)=2*x^2+x+1$
predict_y = F(x)#
def error(p,x,y):ret = (np.poly1d(p))(x) -yreturn ret
#最小二乘法求得多项式的各个系数
p_init = np.random.rand(M+1)#M为最高次的次数x^M,该p_init就是初始的多项式的各个系数
p_lsq = leastsq(error,p_init,args=(x,real_y))
p_lsq[0]#该项为通过最小二乘得到的系数
leastsq(误差函数,表述函数的参数,args()表示数据点)
具体的代码在Github上:Github代码
多项式使用最小二乘法拟合数据相关推荐
- MATLAB与最小二乘法拟合数据
1.前言:学习并记录的原因 最小二乘法是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配. 最小平方差法在误差估计.不确定度.系统辨识及预测.预报等数据处理诸多学科领域得到广泛应用的数 ...
- 计算机数值方法之最小二乘法拟合多项式C语言
给定数据点(xi ,yi),用最小二乘法拟合数据的多项式,并求平方误差. 有了之前多个程序的磨练,这次程序非常简单,用公式算出矩阵中的待求数值,再用高斯消元法求出a0和a1,写出拟合方程,再带入x,y ...
- 数学建模最小二乘法拟合_从寻找谷神星的过程,谈最小二乘法实现多项式拟合...
科学史上众星云集,璨若星河.这些牛人基本上都是天才,但也不乏无名之辈凭借匪夷所思.骇世惊俗的猜想而跻身于巨星之列.比如,门捷列夫,整了一张留空的元素周期表,引得全世界的化学家去做填空题.还有一位德国的 ...
- python多项式拟合_Python 普通最小二乘法(OLS)进行多项式拟合,最小二乘法拟合二次多项式,多元函数拟合。如 电...
Python 普通最小二乘法(OLS)进行多项式拟合,最小二乘法拟合二次多项式,多元函数拟合.如 电 多元函数拟合.如 电视机和收音机价格多销售额的影响,此时自变量有两个. python 解法:imp ...
- 【Matlab】最小二乘法拟合多项式
前言 在最近的电机项目中,有遇到有传感器数据并不线性的问题,然后想要用最小二乘法做个曲线拟合,反过来去校准不线性的传感器的数据,因此记录一下使用最小二乘法来拟合多项式的曲线的步骤.本篇从最小二乘法的原 ...
- 趣学python3(38)--多项式最小二乘法拟合
class numpy.poly1d(c_or_r, r=False, variable=None)[source] 参数: c_or_r:array_like 多项式的系数,或者如果第二个参数的值是 ...
- 某类疾病发生率的数据最小二乘法拟合
% 某类疾病发生率的数据最小二乘法拟合 % 2022/12/5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 设定样本值 x=1:1:19; % 定义样本范围 y=[0.8 ...
- Python 最小二乘法拟合多项式
最小二乘法拟合多项式 一.功能 二.最小二乘法拟合多项式 三.运行结果 一.功能 利用最小二乘法去拟合直线.任意项高阶多项式. 二.最小二乘法拟合多项式 示例: import random i ...
- matlab 最小二乘法拟合_机器学习十大经典算法之最小二乘法
点击上方"计算机视觉cv"即可"进入公众号" 重磅干货第一时间送达 最小二乘法概述 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找 ...
最新文章
- Genome-scale de novo assembly using ALGA 使用ALGA进行 基因组规模的从头组装
- 查看UNIX/Linux资源占用的top命令
- 软文推荐:常用 Java 静态代码分析工具的分析与比较
- [Redux/Mobx] Redux中异步action和同步action最大的区别是什么?
- LeetCode 2023. 连接后等于目标字符串的字符串对
- pytorch自定义图片输入
- python 2.7.9 安装beautifulsoup4
- 如何创建带有.的文件夹
- mysql递归查询树
- 一天搞懂深度学习—学习笔记2(CNN)
- 解决maven中ojdbc14:11.2.0.1.0错误
- 联想服务器万全T260G3系统,联想万全T260G3服务器电子教室更易管理
- 我的世界java版怎么打开游戏菜单_我的世界游戏界面设置方法
- Cipher Block chaining
- [GKCTF 2021]excel 骚操作
- 分享Three.js 泛光(眩光)效果实现
- 热力夏季运动会java,夏季运动会作文(精选8篇)
- -bash: /usr/local/soft/jdk1.8.0_321/bin/java: 无法执行二进制文件
- python基础练习题与期末复习总结
- 前端开发问题——css设置背景样式效果无法显现
热门文章
- HTML5网页设计阶梯教程(4)——创建表格和设置单元格的大小
- java数组求最小值
- flink1.15源码笔记(run模式简单带过,主要看run-application)
- git to GitHub
- no such file or directory, scandir '.../node_modules/node-sass/vendor'
- java jdk版本_java-jdk各版本特性概述
- 排序算法之——归并排序 C语言实现
- python中常见的魔法方法 magic method
- 一、C语言结构体数组
- oracle添加用户及权限