0

我正在尝试编写一个 MATLAB 函数,该函数在 X 中插入数据点以创建自然三次样条,类似于 interp1 但不使用 interp1。该函数接受输入向量 x 和 c(来自系统 Ac=Y)和我想要插值的数据点的向量 X。

我的功能差不多完成了,我将系统置于矩阵形式,找到了 y 值、系数 a、b、c 和 d,但我不知道如何评估 X 值以获得我的估计值 Y。

例如,这就是我目前所拥有的:

%cubic spline interpolation
n = length(x);
N = length(X);
Y = zeros(size(X));
for i = 1:n-1
    for j = 1:N
        while x(i) <= X(j) &&  x(i+1) >= X(j)
            Y(j) = a(i)*(X(j)^3) + b(i)*(X(j)^2) + c(i)*X(j) + d(i);
break
        end
    end
    
end

我的问题是为什么这不起作用?我知道 interp1 找不到自然样条曲线,但我对 MATLAB 很陌生,所以我只是使用这个内置函数作为图形应该如何显示的参考,而我的函数完全错误。我希望这有点道理。任何帮助都会很棒。

4

0 回答 0