MATLAB 插值与拟合

MATLAB 插值与拟合一.1维插值函数1.通用接口:进行1维插值:vq=interp1([x,]v,xq[,method,extrapolation)#参数说明: x,v:分别指定样本点的x,y值;x默认为[1,2…length(v)](v为向量)或[1,2…size(v,1)](v为高维数组) #注意:要求x是单调的 xq:指定查询点(即求该点的插值) method:指定插值方法;可为’linear'(默认值;线性插值)/’nearest'(最近邻点插值)/’next'(下1个邻点

大家好,又见面了,我是你们的朋友全栈君。

一.插值
1.1维插值函数
(1)通用接口:

进行1维插值:vq=interp1([x,]v,xq[,method,extrapolation)
  #参数说明:
  	x,v:分别指定样本点的x,y值;x默认为[1,2...length(v)](v为向量)或[1,2...size(v,1)](v为高维数组)
  	  #注意:要求x是单调的
  	xq:指定查询点(即求该点的插值)
  	method:指定插值方法;可为'linear'(默认值;分段线性插值)/'nearest'(最近邻点插值)/'next'(下1个邻点插值)/'previous'(上1个邻点插值)/'pchip'(保形分段3次插值)/'cubic'(保形分段3次插值)/'v5cubic'(用于MATLAB5的3次卷积)/'makima'(修正了Akima公式的3次埃尔米特插值)/'spline'(3次样条插值)
  	  #注意:x等距时可使用快速插值,此时指定method为'*linear'等
  	extrapolation:指定外插策略;可为'extrap'(使用method计算)/标量值(返回该值)/NaN(默认值;返回NaN)
  	  #即当xq落在x外,如何处理
  	vq:返回插值

#实例:
>> x=[1,2,3,4];
>> v=[1,-1,3,9];
>> interp1(x,v,3.5)

ans =

     6

>> v=[1,1,1;-1,-1,-1;3,3,3;9,9,9];
>> interp1(v,3.5)

ans =

     6     6     6

(2)3次样条插值:

进行3次样条插值:s=spline(x,y[,xq])
  #参数说明:
  	x,y:分别指定样本点的x,y值

######################################################################################################################

csape()

(3)分段3次埃尔米特插值(保型分段3次插值):

pchip()

(4)分段多项式插值:

mkpp()

2.2维插值
(1)通用接口:

interp2()

二.拟合
1.1元多项式曲线拟合(Polynomial Curve Fitting):

进行1元多项式曲线拟合:[p,S,mu] = polyfit(x,y,n)
  #参数说明:
  	x,y:分别指定数据的x,y值
  	n:指定多项式的次数
  	p:返回按降幂排列的多项式系数
  	S:返回1个结构体,可用作polyval()的输入来获取误差估计值
  	mu:返回1个二元素向量,mu(1)为mean(x),mu(2)为std(x)
  	  #要求返回mu时,polyfit()会对x进行Z-Score Standarlization,这会改善多项式和拟合算法的数值属性

#实例:
>> polyfit([1,2,3],[1,4,9],1)

ans =

    4.0000   -3.3333

>> [p,S,mu]=polyfit([1,2,3],[1,4,9],1)

p =

    4.0000    4.6667


S = 

  包含以下字段的 struct:

        R: [2×2 double]
       df: 1
    normr: 0.8165


mu =

     2
     1

2.多元线性回归:

进行多元线性回归:[b,bint,r,rint,stats] = regress(y,X[,alpha])
  #设多元线性方程为y=b1*x1+b2*x2+...+bn*xn
  #参数说明:
  	y:指定数据点的y坐标;为column array
  	X:指定数据点的x坐标;为matrix(每列对应1个变量)
  	  #y,X的行数应相等;X(:,1)对应x1,X(:,2)对应x2...;若方程有常数项,应有某列全为1
  	alpha:指定置信水平;默认为0.05
  	  #将使用100*(1-alpha)%置信水平
  	b:返回超平面的各个系数构成的向量
  	  #b(1)为b1,b(2)为b2...
  	bint:返回1个矩阵,其中包含系数估计值的95%置信区间
  	r:返回由残差组成的向量
  	rint:返回1个矩阵,其中包含可用于诊断离群值的区间
  	stats:返回1个向量,其中包含R2统计量/F统计量及其p值,以及误差方差的估计值
  	  #X应包含1个全为1组成的列,以便正确计算模型统计量

3.曲线拟合工具箱(Curve Fitting Toolbox):

>> cftool%见下图

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136219.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【学习强化学习】十三、模仿学习介绍[通俗易懂]

    【学习强化学习】十三、模仿学习介绍[通俗易懂]文章目录参考资料1.模仿学习概述2.行为克隆2.1行为克隆缺点缺点1:观测非常有限缺点2:机器会完全模仿专家的行为缺点3:训练数据跟测试数据不匹配2.逆强化学习2.1概述2.2奖励函数2.2IRLvsGAN3.第三人称视角模仿学习4.练习4.1keywords参考资料https://datawhalechina.github.io/easy-rl/#/chapter11/chapter111.模仿学习概述模仿学习(imitationlearning,IL)又叫做示范学习(

    2022年9月19日
    0
  • static使用方法小结

    static使用方法小结

    2021年11月28日
    44
  • android之存储篇_存储方式总览

    作为一个完成的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、SQLite、Content Provider和File。由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Provider。  SQLite: SQLit

    2022年3月10日
    40
  • win10 使用 cmd 查看端口占用情况,关闭占用端口的相关程序「建议收藏」

    win10 使用 cmd 查看端口占用情况,关闭占用端口的相关程序「建议收藏」前言:工作中常用端口偶尔被占用,特写此文章记录1.查看被占用的端口号执行命令:netstat-ano|findstr端口号2.通过PID查看占用端口的程序执行命令:tasklist|findstrPID3.通过PID关闭占用的程序此方法可以通过cmd关闭也可以通过任务管理器关闭CMD执行命令:taskkill/T/F/PIDPID通过任务管理器找到对应的PID程序右键结束程序…

    2022年5月12日
    40
  • JsonPath用法详解

    JsonPath用法详解JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括Javascript、Python、PHP和Java。JSONPath的安装方法如下:pipinstalljsonpathJSONPath语法和XPATH语法对比JSON结构清晰,可读性高,复杂度低,非常容易匹配。JSONPath的语法与Xpath类似,如下表所示为JSONPath与XPath语法对比。下面使用一个JSON文档演示JSONPath的具体使用。JSON文档的内容如下:{

    2022年6月19日
    350
  • 重庆java培训机构哪个好_java培训班

    重庆java培训机构哪个好_java培训班前言说到CAS(CompareAndSwap),不得不先说一说悲观锁和乐观锁,因为CAS是乐观锁思想的一种实现。悲观锁:总是很悲观的认为,每次拿数据都会有其他线程并发执行,所以每次都会进行加锁,用完之后释放锁,其他的线程才能拿到锁,进而拿到资源进行操作。java中的synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁:总是很乐观认为,自己拿到数据操作的时候,没有其他线程来并发操作,等自己操作结束要更新数据时,判断自己对数据操作的期间有没有其他线程进行操作,如果有,则

    2022年10月4日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号