⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exp4_3.m

📁 使用matlab软件编制的计算程序
💻 M
字号:
% exp4_3.m --- 三次样条的学习

% ----------  外推样条  -------------
% [简介] 外推样条(extrapolated)
%        不需要附加端点条件(实际上根据下面要求等于补充了两个端点条件)
%        即第一区间的三次多项式是第二个区间的三次多项向左延长而得,
%        同样最后一个区间的是倒数第二个区间的向右延长而得
% [调用] pp = spline(x,y)
%        x,y 是插值点(采样点)
%        pp 是分段多项式,它是matlab的结构数组(暂不管它是什么,先学会使用)
%        它可被许多其它函数调用(如样条求值,样条积分,样条微分等)

% 插值点(x(i),y(i))为:
x=[0    1   2    3];
y=[0  0.5   2  1.5];
% 求三次样条:
pp = spline(x,y);
                           
% 作图:
xx = linspace(0,3,101);    % 加细插值点
yy = ppval(pp,xx);         % 这是专门的分段多项式求值命令(pp的格式要符合要求)
plot(x,y,'o',xx,yy,'-');   % 作图

% 看一看分段多项式的系数
P = pp.coefs               % P的第j行表示第j个三次多项式的4系数

% 把分段多项式写成我们习惯的样子
P1 = poly2str(P(1,:),'(x-0)')  % [注意]自变量是减插值点的
P2 = poly2str(P(2,:),'(x-1)')  
P3 = poly2str(P(3,:),'(x-2)')


% ----------  I型样条  -------------
% [简介] 在两个端点上附加一阶导数的值我们称为I型样条(matlab 叫 clamped '压紧的样条')
% [调用] 例如第一个端点和最后一个端点的导数分别为 0,1 可这样调用
%        pp = spline(x,[0,y,1]);
%        其它与前同,你不妨试一试.


% --------- 我的请教 -----------
% 其它样条(如自然样条等)应如何调用??

% ********  你的实验  ********
% 【实验一】 样条插值的收敛性
% 用样条对exp4_2.m发生Runge现象的函数插值,看看效果
%
% 【实验二】 一个有趣的例子
% 把下面一段程序拷贝为一个单独的程序运行(把行前的'%'去掉)
% 剪一个你喜欢的图形或者把你的手放在计算机屏幕上,
% 用出现的十字标来选择图形上的一些点(全部选完后回车)
% 看看计算机为你画了什么?

% figure
% set(gcf,'menubar','none')
% axes('position',[0 0 1 1])
% [x,y] = ginput;
% n = length(x);
% s = (1:n)';
% t = (1:0.05:n)';
% u = spline(s,x,t);
% v = spline(s,y,t);
% clf reset
% plot(x,y,'.',u,v,'-')





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -