Page 49 - 数学建模算法与应用
P. 49
第二章 常用建模函数详解
y(m) = y(m)/r(m);
end
end
% 计算拟合系数
th = (A\y)’;
ye = polyval(th, x);
err = norm(y - ye)/norm(y);
yi = polyval(th, xi);
将上面的代码保存为 polyfits.m 文件。
使用上面的程序代码,对基础数据进行 LS 多项式拟合。在 MATLAB 的命
令窗口中输入下面的程序代码:
clear all;
clc;
x = [-3:1:3]’;
y = [1.650 0.0751-0.6965 0.0591 0.6268 0.3516 1.6961]’;
[x,i] = sort(x);
y = y(i);
xi = min(x) + [0:100]/100*(max(x)-min(x));
N = 1:4;
for i=1:4
N = 2*i-1;
[th,err,yil] = polyfits(x,y,N,xi);
subplot(2,2,i);
plot(x,y,’o’);
hold on;
plot(xi,yil,’-’);
grid on;
end
得到的拟合结果如图 2-2 所示。
从上面的例子可以看出,LS 方法其实是 WLS 方法的一种特例,相当于将每
39

