5.6 matlab曲线拟合案例(股票预测问题、算法的参数优化问题)

1、股票预测问题
已知一只股票在2016年8月每个交易日的收盘价如下表所示,试预测其后面的大体走势。
在这里插入图片描述

x = [2 3 4 5 8 9 10 11 12 15 16 17 18 19 22 23 24 25 26 29 30];
y = [7.74 7.84 7.82 7.78 7.91 7.97 7.9 7.76 7.9 8.04 8.06 8.11 8.08 8.13 8.03 8.01 8.06 8.0 8.3 8.41 8.28];
p = polyfit(x,y,3)   %三次多项式拟合


x1 = [31 32 33];
xi = [x x1];

y1 = [8.27 8.17 9.54];
plot(x,y,'*',xi,polyval(p,xi),x1,y1,'rp')
legend('原散点图','多项式拟合曲线')

5.6 matlab曲线拟合案例(股票预测问题、算法的参数优化问题)_第1张图片
红五角星代妻的是三个新的数据,虽然拟合曲线仍然经过了这三个数据的区域,但是三个数据都离曲线较远,所以这次预则的结果并没有太大的参考价值。

2、算法的参数优化问题
在群体智能优化算法的设计中,搜索行为具有一定的随机性,以免于陷入局部最优。但是,随机性参数的设置却是一个普遍性的多样性增加,但是难以收敛;若随机性太低,算极有可能陷入局部最优。已知某算法随机性参数与多样性、收敛性的关系分别如表l和表2所示,其中收敛性与多样性数据都已经转换为与算法性能相关的统一度量。现在算法的设计者既不愿意降低收敛性,又不愿意牺牲多样性,想要在两者之间取得一个平衡点。请问怎么确定随机性参数?
在这里插入图片描述

x = 0.03:0.03:0.3;
y1 = [0.01 0.01 0.02 0.03 0.06 0.07 0.13 0.17 0.25 0.37];
y2 = [0.85 0.76 0.68 0.62 0.54 0.52 0.5 0.49 0.48 0.47];
plot(x,y1,'*',x,y2,'o')
legend('多样性','收敛性')

5.6 matlab曲线拟合案例(股票预测问题、算法的参数优化问题)_第2张图片分析可知:
①随机性参数的增长导致多样性增加,收敛性降低。所以不管随机性参数如则何取值,都无法同时获得最大的收敛性和多样性。
②两者同等重要,则取平衡点。
③平衡点最佳位置是多样性和收敛性相等的地方。
解决方案:
第一步:分别对多样性和收敛性进行拟合,得到拟合曲线。
第二步:找到两曲线的交点。该点所应的随机性参数取值即为最优值

y1 = [0.01 0.01 0.02 0.03 0.06 0.07 0.13 0.17 0.25 0.37];
y2 = [0.85 0.76 0.68 0.62 0.54 0.52 0.5 0.49 0.48 0.47];

p1 = polyfit(x,y1,2);   %对多样性曲线进行二次多项式拟合
p2 = polyfit(x,y2,2);    %对收敛性曲线进行二次多项式拟合
p = p1-p2;               %求两曲线的交点,令p1=p2即可,构造p=p1-p2多项式
xi = roots(p);          %求多项式p的根,xi =-1.14150.3162,舍掉负根

%扩大采样点的范围,并计算相应的多项式函数值

xj = 0:0.03:0.36;
yj1 = polyval(p1,xj);
yj2 = polyval(p2,xj);
yi = polyval(p1,xi(2));

%绘制散点拟合曲线以及有效解所应的点
plot(x,y1,'*',x,y2,'o',xj,yj1,xj,yj2,xi(2),yi,'rp')
legend('多样性散点图','收敛性散点图','多样性拟合曲线','收敛性拟合曲线','有效解对应的点')

5.6 matlab曲线拟合案例(股票预测问题、算法的参数优化问题)_第3张图片

你可能感兴趣的:(matlab基础知识,matlab)