如何在MATLAB中编写一个实现二次多项式(抛物线)插值的函数代码示例?
时间: 2024-12-15 11:30:18 浏览: 3
在MATLAB中,可以使用内建的`polyfit`函数来计算一组数据点的最佳二次多项式拟合,然后使用`polyval`函数进行插值。下面是一个简单的代码示例:
```matlab
function [p, x] = quadratic_interpolation(x_data, y_data)
% 计算二次多项式拟合
p = polyfit(x_data, y_data, 2); % 第二阶多项式,即二次函数
% 新的数据点范围
x_new = linspace(min(x_data), max(x_data));
% 使用拟合的多项式在新点上进行插值
y_new = polyval(p, x_new);
% 返回多项式的系数和新的插值点
return
end
% 示例数据
x_data = [1, 2, 3, 4, 5];
y_data = [4, 7, 12, 19, 28]; % 这些数据是二次函数y = x^2 + 1的样本点
[p, x_new] = quadratic_interpolation(x_data, y_data);
% 绘图展示结果
plot(x_data, y_data, 'o', 'MarkerSize', 8, 'DisplayName', 'Data Points');
hold on;
plot(x_new, polyval(p, x_new), '-r', 'LineWidth', 2, 'DisplayName', 'Quadratic Interpolation');
legend('show');
阅读全文