返回目录

line.m

text/plain
520 bytes
2025-10-15 18:46:51

文件预览

% 分段线性插值
% 注释的地方需要修改
clear

xd=[1,2];          % 插值节点,逗号分隔
yd=[2,3];          % 插值节点对应的函数值,逗号分隔
x0=1.7;            % 求值节点

n=length(xd);
pp=zeros(n-1,4);
y=@(x)zeros(size(x));
for k=1:n-1
    pp(k,1:2)=[0,yd(k)]+(yd(k+1)-yd(k))/...
        (xd(k+1)-xd(k))*[1,-xd(k)];
    pp(k,3:4)=xd(k:k+1);
    y=@(x)y(x)+polyval(pp(k,1:2),x).*(x>=xd(k) & x<xd(k+1));
end
y0=feval(y,x0);
y0(x0==xd(n))=yd(n);

vpa(y0,7)                                % 结果有效数字位数