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

📄 secsample.m

📁 这个是matlab经典教程的一个关于差值的源代码
💻 M
字号:
function [f,f0,fd0] = SecSample (x,y,y_1,x0)
syms t;
f = 0.0;
f0 = 0.0;

if(length(x) == length(y))
    if(length(y) == length(y_1))
        n = length(x);
    else
        disp('y和y的导数的维数不相等!');
        return;
    end
else
    disp('x和y的维数不相等!');
    return;
end                  %维数检查

for i=1:n
    if(x(i)<=x0)&& (x(i+1)>=x0)
        index = i;
        break;
    end
end                          %找到x0所在区间

d = y_1(1)*(x(2)-x(1))/2+y(1);
for i=2:n-1
    d = d + y_1(i)*(x(i+1)-x(i-1))/2;
end

h = x(index+1) - x(index);   %x0所在区间长度
f = y_1(index+1)*(t-x(index))^2/2/h + ...
        y_1(index)*(t-x(index+1))^2/2/h + d;     %x0所在区间的插值函数
fd = (t-x(index))*y_1(index+1)/h + y_1(index)*(x(index+1)-t)/h;  
                                  %x0所在区间的插值函数的导数
f0 = subs(f,'t',x0);        %x0处的插值
fd0 = subs(fd,'t',x0);     % x0处的导数插值

⌨️ 快捷键说明

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