这一题是得到数据点(0,3),(1,5),(2,4),(3,1)并得到它的三次样条表达式和画出三次样条后的图图形。

以及对数据点(-1,3),(0,5),(3,1),(4,1),(5,1)并得到它的三次样条表达式和画出三次样条后的图图形。

用函数spline可以直接得到,都是如果是要求自然三次样条呢?那就可以在数组y的左右两侧添0。如:

csa = spline(ax,[0 ay 0]);再用xxa = linspace(0,3,1000);plot(xxa,ppval(csa,xxa));进行绘图。linespace是将0~3分成1000份,然后ppval是求三次样条在不同的xxa上的值。MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method'),其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 'method'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'cubic'立方插值.缺省时表示线性插值。注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。

最后要输出表达式的话这个还是有点复杂的:使用以下函数。        pp=interp1(ax,ay,'spline','pp');        breaks=pp.breaks; %breaks的第i和i+1个元素为m和n        coefs=pp.coefs; %假设coefs的第i行为a b c d,     接着再用一个循环得出每个表达式输出各个表达式即可。

一下是我的代码,写的有一点粗糙,希望别见怪啊!

% use natural cubic spline to interpolate data point    % a、(0,3),(1,5),(2,4),(3,1)    % b、(-1,3),(0,5),(3,1),(4,1),(5,1) function page_178_1_natural_spline_script ax = [0 1 2 3]; ay = [3 5 4 1];  %对数据点(0,3),(1,5),(2,4),(3,1)进行三次样条建模,并输出表达式和图像 bx = [-1 0 3 4 5]; by = [3 5 1 1 1];%对数据点(-1,3),(0,5),(3,1),(4,1),(5,1)进行三次样条建模,并输出表达式和图像 csa = spline(ax,[0 ay 0]); xxa = linspace(0,3,1000); subplot(1,2,1); plot(ax,ay,'o',xxa,ppval(csa,xxa),'-'); xlabel('a x 0~3'); ylabel('a y'); title('equation a'); csb = spline(bx,[0 by 0]); xxb = linspace(-1,5,10000); subplot(1,2,2); plot(bx,by,'o',xxb,ppval(csb,xxb),'-'); xlabel('b x -1~5'); ylabel('b y'); title('equation b');

pp=interp1(ax,ay,'spline','pp'); breaks=pp.breaks; %breaks的第i和i+1个元素为m和n coefs=pp.coefs; %假设coefs的第i行为a b c d,      %breaks的第i和i+1个元素为m和n那么在区间[m,n]的函数表达式就是      %a(x-m)^3+b(x-m)^2+c(x-m)+d syms x disp('对于数据点(0,3),(1,5),(2,4),(3,1)的三次样条表达式为:'); for i = 1:3     y = coefs(i,1)*((x - breaks(i))^3) + coefs(i,2)*((x - breaks(i))^2) + coefs(i,3)*((x - breaks

(i))) + coefs(i,4) end ppb=interp1(bx,by,'spline','pp'); breaksb=ppb.breaks; %breaks的第i和i+1个元素为m和n coefsb=ppb.coefs; %假设coefs的第i行为a b c d, %breaks的第i和i+1个元素为m和n那么在区间[m,n]的函数表达式就是 %a(x-m)^3+b(x-m)^2+c(x-m)+d syms x disp('对于数据点(-1,3),(0,5),(3,1),(4,1),(5,1)的三次样条表达式为:'); for i = 1:4    y = coefsb(i,1)*((x - breaksb(i))^3) + coefsb(i,2)*((x - breaksb(i))^2) + coefsb(i,3)*((x -

breaksb(i))) + coefsb(i,4) end

matlab中如何画三次样条,Matlab之三次样条画图和表达式相关推荐

  1. matlab中怎么画冲激函数,matlab怎么画冲激函数波形,这些知识你不一定知道

    在学习理工科的过程中, matlab软件的使用是一个不可或缺的过程.对于初学者来说,学习matlab的时候编写一些程序是非常头疼的.那么,matlab怎么画冲激函数波形呢?下面让我来给大家介绍下吧,希 ...

  2. matlab中的分数次方,matlab中如何画出幂函数指数为分数时比如y=x^(1/3)的完整图像...

    matlab中如何画出幂函数指数为分数时比如y=x^(1/3)的完整图像以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ...

  3. matlab 第一类修正贝塞尔函数,零阶贝塞尔函数 在MATLAB中怎样画出零阶修正贝塞尔函数...

    第二类修正贝塞尔函数的零阶和一阶,分别怎样用mat回忆终究只是回忆,它只代表一段过去,一段历史,回忆再美也只是曾经,告别过去,期待未来. 书上说 (0和1都是下标) K0(z), the zeroth ...

  4. matlab中dist的命令,matlab dist函数

    dist--欧式距离加权函数(Euclidean distance weight function) 语法: Z = dist(W,P) df = dist('deriv') D = dist(pos ...

  5. matlab中错误使用fmincon,MATLAB中fmincon 函数问题

    MATLAB中fmincon 函数问题 Matlab的fmincon优化问题 请问: 各位高手帮忙看看我的程序又什么问题?显示错误 Error in ==> Fun at 33 [w,fval] ...

  6. 根据坐标如何在matlab中l连成曲线,matlab中,如何将两条曲线画在一个坐标系里,plot(x1,x2,y1,y2)还是怎样...

    matlab中,如何将两条曲线画在一个坐标系里,plot(x1,x2,y1,y2)还是怎样以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快 ...

  7. matlab中minigrid,[转载][转载]matlab画地图的工具:worldmap和m_map

    matlab画地图的工具:worldmap和m_map *用MATLAB画世界地图并加散点 clear;clc; worldmap([-55 -30],[-110 -60]); h1=axesm('M ...

  8. matlab中绘制正四边形,matlab画任意三维四边形

    用matlab画三维图 mesh函数是用来画三维网格图的,但是要用meshgrid来产生格网矩阵!有时我们要在图上用标点来显示某些数值的重要性,就要用到mesh和plot3两个函数.>>  ...

  9. matlab中集合的表示,Matlab常用命令集合

    1.常用命令-->管理命令和函数 addpath添加目录到MATLAB搜索路径doc在Web浏览器上现实HTML文档help显示Matlab命令和M文件的在线帮助helpwin helpdesk ...

最新文章

  1. django中聚合aggregate和annotate GROUP BY的使用方法
  2. linux 挂载u盘
  3. python int函数详解,python int()函数
  4. 人脸识别的时候,一定要穿上衣服!否则 ...
  5. drf6 权限和频率控制组件
  6. [转] ArcEngine 产生专题图
  7. php 调用带返回多个结果集的方法,PHP中有多个结果集?
  8. 调整Linux磁盘分区大小
  9. 前端复习笔记(一)——HTML
  10. 关于参数的写法规则,参数引用几种写法
  11. matlab2018a 安装指南
  12. WPS全部常用快捷键
  13. Windows10上安装VS2017社区版操作步骤
  14. 这个在线抠图工具,好用又免费,告别Photoshop繁杂操作
  15. 二维码名片页面的样式设计
  16. 专访Databricks辛湜,谈Spark排序比赛摘冠及生态圈热点-2014
  17. 亲历:IT 从业者避免猝死攻略 v1.0
  18. BBR 拥塞控制算法blog笔记
  19. 跟我学 UML 系统建模
  20. 米什金版货币金融学简答及一些知识点

热门文章

  1. 获取请求的ip php,如何获取请求服务器的IP
  2. Linux AH00558: apache2: Could not reliably determine the server‘s fully qualified domain name
  3. 关于Window audio服务未运行的解决方案
  4. 2019年第十六届中国研究生数学建模竞赛A题 试题
  5. 将.csv文件用Excel 2016打开
  6. 自建类ChatGPT服务:本地化部署与远程访问教程
  7. macbook 上怎样截图,以及对截图进行编辑
  8. 计算机职称分类汇总,全国职称分类汇总表.doc
  9. process exited with code 3228369023
  10. 在“人货场”这三个因素中,最影响电商直播效果的是哪一个?