zoukankan      html  css  js  c++  java
  • Matlab插值函数

    1. x=0:2*pi;  
    2. y=sin(x);  
    3. xx=0:0.5:2*pi;  
    4.   
    5. %interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值  
    6. y1=interp1(x,y,xx);  
    7. figure  
    8. plot(x,y,'o',xx,y1,'r')  
    9. title('分段线性插值')  
    10.   
    11. %临近插值  
    12. y2=interp1(x,y,xx,'nearest');  
    13. figure  
    14. plot(x,y,'o',xx,y2,'r');  
    15. title('临近插值')  
    16.   
    17. %球面线性插值  
    18. y3=interp1(x,y,xx,'spline');  
    19. figure  
    20. plot(x,y,'o',xx,y3,'r')  
    21. title('球面插值')  
    22.   
    23. %三次多项式插值法  
    24. y4=interp1(x,y,xx,'cubic');  
    25. figure  
    26. plot(x,y,'o',xx,y4,'r');  
    27. title('三次多项式插值')  

    (1)    Nearest方法速度最快,占用内存最小,但一般来说误差最大,插值结果最不光滑。

    (2)    Spline三次样条插值是所有插值方法中运行耗时最长的,插值函数及其一二阶导函数都连续,是最光滑的插值方法。占用内存比cubic方法小,但是已知数据分布不均匀的时候可能出现异常结果。

    (3)    Cubic三次多项式插值法中,插值函数及其一阶导数都是连续的,所以插值结果比较光滑,速度比Spline快,但是占用内存最多。

    语法形式

    说明

    y=interp1(x,Y,xi)

    由已知点集(x,Y)插值计算xi上的函数值

    y=interp1(x,Y,xi)

    相当于x=1:length(Y)的interp(x,Y,xi)

    y=interp1(x,Y,xi,method)

    用指定插值方法计算插值点xi上的函数值

    y=interp1(x,Y,xi,method,’extrap’)

    对xi中超出已知点集的插值点用指定插值方法计算函数值

    y=interp1(x,Y,xi,method,’extrap’,extrapval)

    用指定方法插值xi上的函数值,超出已知点集处函数值取extrapval

    y=interp1(x,Y,xi,method,’pp’)

    用指定方法插值,但返回结果为分段多项式

    Method

    方法描述

    ‘nearest’

    最邻近插值:插值点处函数值与插值点最邻近的已知点函数值

    ‘liner’

    分段线性插值:插值点处函数值由连接其最邻近的两侧点的线性函数预测。Matlab中interp1的默认方法。

    ‘spline’

    样条插值:默认为三次样条插值。可用spline函数替代

    ‘pchip’

    三次Hermite多项式插值,可用pchip函数替代

    ‘cubic’

    同’pchip’,三次Hermite多项式插值

  • 相关阅读:
    试试SQLServer 2014的内存优化表
    备份数据库的时候设置 BufferCount 选项不正确导致 out of memory 的情况
    SQLSERVER复制优化之一《改变包大小》
    Tomcat配置域名和虚拟文件夹
    BZOJ 1798 [Ahoi2009]Seq 维护序列seq 线段树
    125 Valid Palindrome
    jquery.lazyload.js实现图片懒载入
    hdu 2176 取石子游戏
    算法练习--十进制 二进制互转
    JavaScript学习10:动态载入脚本和样式
  • 原文地址:https://www.cnblogs.com/zhangxinly/p/6258342.html
Copyright © 2011-2022 走看看