python">x = [0, 1, 2]; % x 坐标
y = [1, 2, 0]; % y 坐标
dy = [1, -1, 2]; % 导数值
X = linspace(0, 2, 100); % 生成 100 个插值点n = length(x); % 数据点的个数m = length(X); % 插值点的个数H = zeros(1, m); % 用于存储结果for k = 1:mxi = X(k); % 当前插值点% 计算每个分段的插值sum_val = 0;for i = 1:n-1% 构造 Hermite 插值的每一段if xi >= x(i) && xi <= x(i+1)% 计算 Hermite 插值多项式t = (xi - x(i)) / (x(i+1) - x(i)); % 归一化变量% Hermite插值的基函数h00 = 2*t^3 - 3*t^2 + 1;h10 = t^3 - 2*t^2 + t;h01 = -2*t^3 + 3*t^2;h11 = t^3 - t^2;% 计算当前段的插值sum_val = y(i)*h00 + dy(i)*(x(i+1)-x(i))*h10 + y(i+1)*h01 + dy(i+1)*(x(i+1)-x(i))*h11;endendH(k) = sum_val;end% 绘制插值结果
plot(X, H, 'r', x, y, 'bo');
legend('Hermite Interpolation', 'Data Points');
title('Piecewise Hermite Interpolation');
xlabel('x');
ylabel('y');
注:
在 Python 中,**
是一个 运算符,它有两种主要用途:
1. 幂运算(指数运算):
**
用于计算一个数的幂,即对一个数字进行指数运算。例如:
python">result = 2 ** 3 # 计算 2 的 3 次方
print(result) # 输出 8
在这个例子中,2 ** 3
计算的是 2 的 3 次方,结果为 8。