matlab——插值与拟合
@
前言
插值和拟合都是要求通过已知的数据去寻求某个近似函数,使得近似函数与与已知数据有较高的拟合精度。本文将介绍两者的区别,相应的算法以及如何用matlab实现。
一、拟合
1.定义
已知一组(二维)数据,即平面上的n个点\((x_i,y_i)\),\(i=1,2,...,n\),\(x_i\)互不相同,寻求一个函数(曲线)\(y=f(x)\),使\(f(x)\)在某种准则下与所有数据点最为接近,即曲线拟合得最好。
注意:拟合曲线不要求经过所有的数据点
2.三种判别准则
使偏差的绝对值最小;
使偏差的最大绝对值最小;
使偏差的平方和最小(即最小二乘法)。
3.最小二乘法
(1)一般形式
最小二乘法是解决拟合的最常用方法,基本思路是令
)\]
其中,\(r_k(x)\)为实现选定的一组线性无关的函数;\(a_k\)为待定系数\((k=1,2,...,m;m<n)\)
令
\]
\]
则有唯一解
\]
证明略
(2)常用函数
直线:\(y=a_1x+a_2\)
多项式:\(y=a_1x^m+...+a_mx+a_{m+1}\)(m一般为2或3)
双曲线(一支):\(y=\frac{a_1}{x}+a_2\)
指数曲线:\(y=a_1e^{a_2x}\)
注意:对于指数曲线,需要现转化为线性函数
(3)matlab实现
解方程组方法:
\]
易得
\]
注意是左除
多项式拟合方法:
a=polyfit(x0,y0,m);
y=polyval(a,x);
其中\(x_0,y_0\)是要拟合的数据,\(m\)为拟合的多项式次数,\(a\)为拟合多项式
\]
的系数向量\(a=[a(1),...,a(m),a(m+1)]\)。
二、插值
1.定义
在平面上给定一组离散点列,要求一条曲线,把这些点按次序连接起来,称为插值。
注意:拟合曲线必须经过所有的数据点
2.方法
(1)分段线性插值
分段线性插值,字面意思,就是把相邻两点用直线连接起来,记作\(I_n(x)\)。那么\(I_n(x)\)必经过所有数据点。\(I_n(x)\)可表示为\(I_n(x)=\sum\limits_{i=0}^{n}y_il_i(x)\),其中
\begin{cases}
\frac{x-x_{i-1}}{x_i-x_{i-1}},\quad x \in [x_{i-1},x_i],i\neq0 \\
\frac{x-x_{i+1}}{x_i-x_{i+1}}, \quad x \in [x_i,x_{i+1}] ,i\neq n \\
0
\end{cases}
\]
\(I_n\)具有良好的收敛性,即当\(n \rightarrow \infty\)时,\(I_n(x)=f(x)\)
分段线性插值适用于大多数情况。但如果对函数的光滑性要求较高时,就需要使用其它方法。
(2)拉格朗日插值多项式
\]
(3)样条插值
样条插值的优势在于产生的函数有连续的曲率,本质是一个具有一定光滑性的分段多项式。一般使用三次样条插值。
3.matlab实现
(1)一维插值函数
y=interp1(x0,y0,x,'...');
'linear'//线性插值(默认)
'spline'//三次样条插值
'nearest'//最近项插值
'cubic'//立方插值
\(x_0\)必须是单调的
(2)三次样条插值
y=interp1(x0,y0,x,'spline');
y=spline(x0,y0,x);
pp=csape(x0,y0);
y=fnval(pp,x);
(3)二维插值
interp2(x0,y0,z0,x,y,'...');
pp=csape({x0,y0},z0),z=fnval(pp,{x,y});//三次样条插值
用法同一维插值
总结
本篇文章只是非常非常非常粗略地介绍了插值与拟合及实现方法,省去了证明过程、函数的更多用法和优化等。欢迎指正。
matlab——插值与拟合的更多相关文章
- Matlab随笔之插值与拟合(上)
原文:Matlab随笔之插值与拟合(上) 1.拉格朗日插值 新建如下函数: function y=lagrange(x0,y0,x) %拉格朗日插值函数 %n 个节点数据以数组 x0, y0 输入(注 ...
- Matlab随笔之插值与拟合(下)
原文:Matlab随笔之插值与拟合(下) 1.二维插值之插值节点为网格节点 已知m x n个节点:(xi,yj,zij)(i=1…m,j=1…n),且xi,yi递增.求(x,y)处的插值z. Matl ...
- matlab学习——05插值和拟合(黄河小浪底调水调沙问题)
05插值和拟合 黄河小浪底调水调沙问题 data3.txt 1800 1900 2100 2200 2300 2400 2500 2600 2650 2700 2720 2650 32 60 75 8 ...
- matlab学习——05插值和拟合(一维二维插值,拟合)
05插值和拟合 1.一维插值 (1) 机床加工零件,试用分段线性和三次样条两种插值方法计算.并求x=0处的曲线斜率和13<=x<=15范围内y的最小值. x0=[0 3 5 7 9 11 ...
- matlab最小二乘法数据拟合函数详解
定义: 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可 以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小. ...
- Matlab插值计算各时刻磁法勘探日变观测值
Matlab插值计算各时刻磁法勘探日变观测值 在磁法勘探中,消日变影响的改正称为日变改正.进行日变改正时必须设立日变站,观测日变情况.根据日变数据和测点观测时间,对观测数据进行改正. 在本次磁法实习中 ...
- MATLAB插值
转自原文 MATLAB插值 插值问题 在应用领域中,由有限个已知数据点,构造一个解析表达式,由此计算数据点之间的函数值,称之为插值. 实例:海底探测问题 某公司用声纳对海底进行测试,在5×5海里的坐标 ...
- Python SciPy库——插值与拟合
插值与拟合 原文链接:https://zhuanlan.zhihu.com/p/28149195 1.最小二乘拟合 实例1 # -*- coding: utf-8 -*- import numpy a ...
- MATLAB实现插值和拟合
插值问题在应用领域中,由有限个已知数据点,构造一个解析表达式,由此计算数据点之间的函数值,称之为插值.实例:海底探测问题某公司用声纳对海底进行测试,在5×5海里的坐标点上测得海底深度的值,希望通过这些 ...
随机推荐
- RGB-D对红外热像仪和毫米波雷达标定
RGB-D对红外热像仪和毫米波雷达标定 Extrinsic Calibration of Thermal IR Camera and mmWave Radar by Exploiting Depth ...
- IPv6 与 IPv4现状
IPv6 与 IPv4现状 一.概述 (1) IPv4可提供bai4,294,967,296个地址,IPv6将原来的32位地址空间增大du到128位,数目是zhi2的128次方.能够对地球上每平方米d ...
- x86 cpu卷积网络的自动调谐
x86 cpu卷积网络的自动调谐 这是一个关于如何为x86cpu调整卷积神经网络的文档. 本文不会在Windows或最新版本的macOS上运行.要让它运行,需要将主体包装在 if __name__ = ...
- algorithm头文件下的常用函数
algorithm头文件常用高效函数 max() max(a, b)返回a和b中的最大值,参数必须是两个(可以是浮点型). 1 #include <iostream> 2 #include ...
- 编译原理-翻译程序(Translator)
分为编译程序(compiler)和解释程序(interpreter) 编译程序:把源程序(高级语言编写)转换成目标程序(汇编语言或机器语言编写). 解释程序:对源程序边翻译边执行. 编译型语言 优点: ...
- P5837 [USACO19DEC]Milk Pumping G
题目描述 Farmer John 最近为了扩张他的牛奶产业帝国而收购了一个新的农场.这一新的农场通过一个管道网络与附近的小镇相连,FJ 想要找出其中最合适的一组管道,将其购买并用来将牛奶从农场输送到小 ...
- 13:Linux虚拟机网络连接异常
这两个服务需要启动
- leetcode5698.基本计算器
给你一个整数数组 nums ,和两个整数 limit 与 goal .数组 nums 有一条重要属性:abs(nums[i]) <= limit . 返回使数组元素总和等于 goal 所需要向数 ...
- 『无为则无心』Python基础 — 11、Python中的数据类型转换
目录 1.为什么要进行数据类型转换 2.数据类型转换本质 3.数据类型转换用到的函数 4.常用数据类型转换的函数 (1)int()函数 (2)float()函数 (3)str()函数 (4)bool( ...
- external-provisioner源码分析(3)-组件启动参数分析
更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 external-provisioner源码分析(3)-组件启动参数分析 本文将对extern ...