加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Matlab Spline 三次样条插值多项式表达式问题

(2010-10-07 17:15:59)
标签:

定边

边界条件

导数

样条

插值

spline

表达式

coefs

matlab

三次样条插值

教育

分类: MATLAB学习

Matlab Spline pp.coefs

 

如何运用MATLAB 三次样条插值的问题,今天做作业,突然想用Matlab搞搞。

 

题目如下:

清华大学出版社的《数值分析(第5版)》

P49,20题。

x=[0.25 0.3 0.39 0.45 0.53];
y=[ 0.5 0.5477 0.6245 0.6708 0.7280 ]
pp=csape(x,y,'second',[0,0.0]);
disp(pp.coefs);

 

 

其中COEFS的含义是在Xi-Xi+1区间上的多项式是,例如COEFS数组第一行的意思是在X=0.25到X=0.3的区间上时表达式是-6.2652*(X-0.25)^3+0.9697*(X-0.25)^1+0.5;

 

   -6.2652    0.0000    0.9697    0.5000
    1.8813   -0.9398    0.9227    0.5477
   -0.4600   -0.4318    0.7992    0.6245
    2.1442   -0.5146    0.7424    0.6708

 

 

关于csape的用法引用自http://hi.baidu.com/ck436/blog/item/6fe40c46400d3c046b63e52b.html

 

 

csape,是计算在各种边界条件下的三次样条插值。

pp = csape(x,y,conds)

其中conds主要有以下的选项variational(自然边界条件,首末点二阶导数均为0),second(指定首末点的二阶导数),periodic(周期性边界条件,首末点的0~2阶导数相等),complete(给定导数情况,默认)

function pp = csape(x,y,conds,valconds)
%pp=csape(x,y,'变界类型','边界值'),生成各种边界条件的三次样条插值. 其中,(x,y)为数据向量
%边界类型可为:'complete',给定边界一阶导数.
            'not-a-knot',非扭结条件,不用给边界值.
            'periodic',周期性边界条件,不用给边界值.
            'second',给定边界二阶导数.
            'variational',自然样条(边界二阶导数为0)
% .
%例 考虑数据
         x | 1 2 4 5
        ---|-------------
         y | 1 3 4 2
%边界条件S''(1)=2.5,S''(5)=-3,
    x=[1 2 4 5];y=[1 3 4 2];
    pp=csape(x,y,'second',[2.5,-3]);pp.coefs
     xi=1:0.1:5;yi=ppval(pp,xi);
     plot(x,y,'o',xi,yi);

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有