原代碼直接使用稀疏數據點繪圖:
x = [0:5:30];
p = [0.00, 0.058, -2.094, 33.88, -246.6, 688, -181.0];
y = polyval(p, x);
plot(x, y, 'r')
因采樣點過少(僅 7 個),導致曲線呈現折線狀,不平滑。
x = 0:5:30;
y = [0.00, 0.058, -2.094, 33.88, -246.6, 688, -181.0];
% 2階多項式擬合
p = polyfit(x, y, 2);
disp('二階擬合多項式:');
f = poly2str(p, 'x'); % 顯示擬合函數表達式
% 加密采樣點
x1 = 0:2:30; % 步長從 5 縮小為 2
y1 = polyval(p, x1); % 在密集點上計算擬合值
% 繪圖
plot(x1, y1, 'r-', 'LineWidth', 1.5);
grid on;
xlabel('x'); ylabel('y');
title('平滑的多項式擬合曲線');
通過「擬合趨勢 + 密集采樣」,即可將稀疏離散點轉為平滑連續曲線,顯著改善視覺效果。