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
   44   45   46   47   48   49   50   51   52   53   54