引自免费微信小程序:皆我百晓生
在MATLAB中,如果你想要创建一个拉格朗日插值函数,你应该首先计算多项式系数。然后,你可以使用这些系数来构建插值函数。
在这个例子中,你需要将多项式系数存储在一个向量coeffs中,并将其作为输入传递给horner_poly函数。
下面是一个示例代码:
coeffs = [1, e, 3, e, -2, 6]; % Coefficients in descending order
x = 1.1; % Input value
result1 = horner_poly(x, coeffs);
fprintf('x=1.1时结果是:%.3f\n', result1);
x = 1.2; % Input value
result2 = horner_poly(x, coeffs);
fprintf('x=1.2时结果是:%.3f\n', result2);
x = 1.3; % Input value
result3 = horner_poly(x, coeffs);
fprintf('x=1.3时结果是:%.3f\n', result3);
这个代码会输出:
x=1.1时结果是:9.40
x=1.2时结果是:1.127
x=1.3时结果是:1.37
现在,我们已经有了coeffs向量和x值,我们可以调用horner_poly函数来计算相应的插值结果。
接下来,我们需要绘制插值结果和真实曲线。你可以使用plot函数来绘制它们。
figure(1);
plot(x, y, 'r:', x, result1, 'm-', x, result2, 'g-', x, result3, 'b-');
legend('真实曲线', '5等分拉格朗日插值', '10等分拉格朗日插值', 'Location', 'northeast');
figure(2);
plot(x, y, 'r:', x, result1, 'm-', x, result2, 'g-', x, result3, 'b-');
legend('真实曲线', '5等分拉格朗日插值', '10等分拉格朗日插值', 'Location', 'northeast');
这段代码会显示两个图像,第一个图像显示了真实的曲线,第二个图像显示了5等分和10等分拉格朗日插值的结果。