cubic与spline都是Matlab的三次样条插值法,但是它们在插值点处仍然有着很微妙的区别,这个区别说明不了两种方法的好坏,只能根据实际情况进行合理筛选。以一维插值为例:

clc

clear

%% load data

load Fig1m

x1=Fig1m(:,1);y1=Fig1m(:,2);

m=x1;n=y1;

m(57)=0.0226;m(83)=0.0326;

m(95)=0.0374;m(97)=0.0378;m(99)=0.0382;

mx=0.0:0.0001:0.065;

ny=interp1(m,n,mx,‘cubic‘); % or ny=interp1(m,n,mx,‘pchip‘);

m1=log(1+mx);n1=ny.*(1+mx);

%% Cubic spline

figure(1)

H=plot(m1,n1,‘-‘,mx,ny,‘-‘,‘LineWidth‘,1.5,‘MarkerSize‘,5);

text(0.005,2.7,‘(a) cubic or pchip‘,‘interpreter‘,‘latex‘,‘fontsize‘,18);

xlabel(‘Strain‘,‘Interpreter‘,‘LaTex‘,‘fontsize‘,18);

ylabel(‘Stress (GPa) ‘,‘interpreter‘,‘latex‘,‘fontsize‘,18);

h=legend(H,‘in1‘,‘in2‘,‘Location‘,‘South‘);

po=get(h,‘Position‘ );

set(h,‘Position‘,[po(1)+0.1, po(2)+0.3, po(3), po(4)]);

h1 = findobj(get(h,‘Children‘),‘String‘,‘in1‘);

set(h1,‘String‘,‘$\sigma_{_E}-\epsilon_{_E}$‘,‘Interpreter‘,‘LaTex‘,‘fontsize‘,15);

h1 = findobj(get(h,‘Children‘),‘String‘,‘in2‘);

set(h1,‘String‘,‘$\sigma_{_E}-\epsilon_{_E}$‘,‘Interpreter‘,‘LaTex‘,‘fontsize‘,15);

h2 = findobj(get(h,‘Children‘),‘String‘,‘in1‘);

set(h2,‘String‘,‘$\sigma-\epsilon$‘,‘Interpreter‘,‘LaTex‘,‘fontsize‘,15);

axis([0 0.08 0 3]);

set(gca,‘xtick‘,0:0.02:0.08,‘ytick‘,0:0.5:3,‘fontsize‘,14);

legend(‘boxoff‘)

Xlim =get(gca,‘xlim‘);

Ylim=get(gca,‘ylim‘);

line([Xlim(1) Xlim(2)],[Ylim(2) Ylim(2)],‘color‘,‘k‘);

line([Xlim(2) Xlim(2)],[Ylim(1) Ylim(2)],‘color‘,‘k‘);

插值效果如下:

显然,从合理性上看,图(a)是我们所需要的,而图(b)在破浪处浮动过大,更不应该在端点处上挑。这就是说cubic或pchip的插值效果比spline在所给数据的情况下,要更合理一些(b)图须将上述代码做如下局部改变:

ny=interp1(m,n,mx,‘spline‘); % or ny=spline(m,n,mx);

text(0.005,2.7,‘(b) spline‘,‘interpreter‘,‘latex‘,‘fontsize‘,18);

如果,所考虑的数据点是正弦函数的部分数据点,那么样条函数插值后的比较程序可写为:

x=0:10;

y=sin(x);

xi=0:0.25:10;

%将插值方法定义为单元数组

strmod={‘nearest‘, ‘linear‘, ‘spline‘, ‘cubic‘};

%将图标定义为单元数组

str1b={‘(a) method=nearest‘, ‘(b) method=linear‘,...

‘(c) method=spline‘, ‘(d) method=cubic‘};

for i=1:4

yi=interp1(x,y,xi,strmod{i});

subplot(2,2,i)

plot(x,y, ‘ro‘ ,xi,yi, ‘b‘),xlabel(str1b(i))

end

得到的结果如下:

从这幅图中可以看到,spline插值明显比cubic要合理。而其它两种非三次样条插值(临近点插值‘nearest’和线性插值 ‘linear’)的效果均较差。

原文:http://www.cnblogs.com/panscience/p/5096631.html

matlab中内插cubic,cubic与spline插值点处的区别相关推荐

  1. matlab中内插cubic,matlab中二维插值中cubic方法的实现原理(个人见解)

    通过查找matlab的帮助程序,对离散数据格网化采用的方法有如下5种: griddata(..., METHOD) where METHOD is one of 'nearest'   - Neare ...

  2. matlab中的a‘与a.‘的不同之处

    在使用matlab的时候我们往往能够遇到,a'与a.',但是每次都比较困惑,这两者究竟有什么不同呢?这里做一下记录. 因为csdn没有matlab的代码块,所以使用的python的代码块书写,matl ...

  3. matlab ceil,matlab中的fix、round、floor、ceil的区别与含义

    1)fix(n)的意义是取小于n的整数(是向零点舍入的意思是往零的方向上靠),这是一类应用在整数取值上的函数,就如同以前我们所研究的求整问题,例如,fix(pi)=3;fix(3.5)=3;fix(- ...

  4. matlab里面floor是什么意思,matlab中的fix、round、floor、ceil的区别与含义

    1)fix(n)的意义是取小于n的整数(是向零点舍入的意思是往零的方向上靠),这是一类应用在整数取值上的函数,就如同以前我们所研究的求整问题,例如,fix(pi)=3;fix(3.5)=3;fix(- ...

  5. matlab中a2=poly(p2),插值与拟合matlab实现

    插值与拟合的Matlab实现 王正盛编写 在科技工程中,除了要进行一定的理论分析外,通过实验.观测数据,做分析.处理也是必不可少的一种途径.由于实验测定实际系统的数据具有一定的代表性,因此在处理时必须 ...

  6. matlab中离开网格的流量,数学建模【数据处理方法(一维、二维插值方法;数据拟合方法;插值and拟合的MATLAB实现)】...

    [学习网址:MOOC---郑州轻工业大学---数学建模与实验]数学建模专栏 笔记01[第1.2章][概述.软件介绍] 笔记02[第3章][数据处理方法] 笔记03[第4章][规划模型] 笔记04[第5 ...

  7. matlab函数插值是什么意思,Matlab中插值函数汇总和使用说明

    注:该文从链接地址http://blog.sciencenet.cn/blog-457143-679275.html转载. MATLAB中的插值函数为interp1,其调用格式为:  yi= inte ...

  8. MATLAB中的一维插值与函数拟合

    本文主要记录Matlab中常用的一维插值与函数拟合的使用方法 文章目录 前言 一.一维插值 二.函数拟合 2.1 多项式拟合 2.1.1多项式拟合指令 2.1.2 图形窗口的多项式拟合 2.2 指定函 ...

  9. matlab 中的三次样条插值函数spline使用说明

    GSS第一篇博客文章 DA matlab 中的三次样条插值函数spline使用说明 spline(x,y,xx) matlab 中的三次样条插值函数spline使用说明 spline(x,y,xx) ...

最新文章

  1. 悠悠二十载,Nginx创始人Igor宣布离职
  2. RxJava from 处理list时,其中有一个出错时如何继续发送下面的list内容。
  3. 内网渗透测试:隐藏通讯隧道技术(上)
  4. css3 下边框缓缓划过_一篇文章带你了解CSS3按钮知识
  5. [Oracle运维工程师手记] 如何从trace 文件,判断是否执行了并行
  6. window.onscroll
  7. win10管理凌乱桌面_用于管理凌乱的开源存储库的命令行技巧
  8. Node.js Path 模块
  9. Python多线程同步、互斥锁、死锁
  10. C++中的(unsigned int)代表的意思
  11. Tellico-经管你的收藏品
  12. mysql 自增长id string_Mysql中获取刚插入的自增长id的三种方法归纳
  13. Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)
  14. C/C++内存使用之malloc/free,new/delete
  15. 181025词霸有道扇贝每日一句
  16. 苹果手机指纹识别坏了怎么办?维修需要多少钱?
  17. 一眼就吸引人的网名「引人注目」
  18. jsp+ssm计算机毕业设计智能视频推荐网站【附源码】
  19. C语言volatile修饰的到底什么鬼?原来它在嵌入式开发是必须掌握的!
  20. 1875. 贝茜的报复

热门文章

  1. 热点drcom 破解
  2. 上传vip专享资源,瓜分奖金池
  3. Apple MFi认证是什么意思?
  4. 揭秘:寻找水军组织,宝妈兼职月入3000+
  5. ExoPlayer的使用之自定义UI界面
  6. 禅道开源版用户手册_禅道的安装与使用指南
  7. 如何获取注册高德Key使用的SHA1值
  8. 《认识突围:做复杂时代的明白人》读书笔记和自我理解感受
  9. 程序猿想平稳度过35岁中年危机?不妨试着考个研
  10. sql求平均日活_SQL 统计日活、月活指标