pm模型matlab算法,基于遗传算法的投影寻踪模型Matlab源码

基于遗传算法的投影寻踪模型Matlab源码

%% “投影寻踪+遗传算法优化”的主仿真程序

% GreenSim团队原创作品,转载请注明

% Email:greensim@163.com

% GreenSim团队主页:http://blog.sina.com.cn/greensim

%

[color=red]欢迎访问GreenSim——算法仿真团队→[url=http://blog.sina.com.cn/greensim]http://blog.sina.com.cn/greensim[/url][/color]

%% 第一步:仿真参数设置

clear

clc

close all

load Q5.txt

DD=Q5;%导入D矩阵

[n,p]=size(DD);

np=15; %训练样本的个数,前面1~np个样本用于建立模型,剩下的样本用于预测

if np>=n

error('用于预测的样本个数不能大于或等于样本总数,请重新设置');

end

year=1:np;%选择参与计算的样本,默认选择全部

Factor=1:p;%选择部分指标,默认选择全部

D=DD(year,Factor);

K=50; %迭代次数

N=30; %种群规模

Pm=0.3; %变异概率

LB=-ones(1,p); %决策变量的下界

UB=ones(1,p); %决策变量的上界

Alpha=0.1; %窗口半径系数,典型取值0.1b

%% 调用遗传算法优化投影寻踪模型的程序

[BESTX,BESTY,ALLX,ALLY]=GAUCP(K,N,Pm,LB,UB,D,Alpha)

%% 以下均为整理输出结果

%所有数据都在workspace里,最值得关注的三个数据是

%

Z 投影指标值,和参考文献里的符号是一致的

%

Best_a 最佳投影向量,参考文献里也是用的符号a,这里加了个前缀Best,表示最佳

%

BESTY 投影寻踪模型中的目标函数的变化情况,文献中的模型是最大化模型,这里按照惯例,对其加了个负号成为最小化模型

Best_a=(BESTX{K})';%方向向量

disp('最佳投影向量为');

disp(Best_a);

d=zeros(np,p);

DDjmax=max(DD);

DDjmin=min(DD);

for i=1:np

d(i,:)=(DD(i,:)-DDjmin)./(DDjmax-DDjmin);

end

Z=zeros(np,1);

for i=1:np

Z(i)=abs(sum(Best_a.*d(i,:)));

end

Z=abs(Z);

%%

figure(2)%投影散布图

plot(year,abs(Z),'bd','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b','MarkerSize',5);

%axis([1,12,0,2.5]);%图形边界根据需要显示

grid on

xlabel('Year','FontName','Times New Roman','FontSize',12);

ylabel('Projective Value','FontName','Times New

Roman','Fontsize',12);

%%

figure(3)

[newZ,I]=sort(Z);

newyear=year(I);

plot(year,abs(newZ),'bd','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b','MarkerSize',5);

%axis([1,12,0,2.5]);%图形边界根据需要显示

grid on

xlabel('Year','FontName','Times New Roman','FontSize',12);

ylabel('Projective Value','FontName','Times New

Roman','Fontsize',12);

%%

n2=n-np;

d2=zeros(n2,p);

for i=1:n2

d2(i,:)=(DD(i+np,:)-DDjmin)./(DDjmax-DDjmin);

end

Z2=zeros(n2,1);

for i=1:n2

Z2(i)=abs(sum(Best_a.*d2(i,:)));

end

Z2=abs(Z2);

disp('预测样本的投影预测值为');

disp(Z2);

%%

figure(4)%投影散布图

plot([Z;Z2],'bd','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b','MarkerSize',5);

hold on

plot((np+1):n,Z2,'bo','LineWidth',1,'MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',5);

legend('训练样本投影值','预测样本投影值');

%axis([1,12,0,2.5]);%图形边界根据需要显示

grid on

xlabel('Year','FontName','Times New Roman','FontSize',12);

ylabel('Projective Value','FontName','Times New

Roman','Fontsize',12);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于遗传算法投影寻踪模型是一种用于优化问题求解的算法模型。在MATLAB中,可以通过以下步骤实现该模型源码。 首先,需要定义问题的目标函数和约束条件。目标函数是要优化的指标,而约束条件是问题的限制条件。 接下来,通过编写遗传算法的核心代码实现优化过程。遗传算法主要包括初始化种群、选择操作、交叉操作、变异操作等。在MATLAB中,可以使用遗传算法工具箱提供的函数来简化遗传算法的实现过程。 然后,根据目标函数和约束条件,编写适应度函数来评估每个个体的适应度值。适应度函数的设计需要根据具体问题进行调整,以保证算法的收敛性和效率。 接下来,通过遗传算法的迭代过程,不断更新种群,使得适应度值逐渐趋向于最优解。可以根据具体问题需要,设置迭代的次数或者设置收敛条件,来控制算法的停止。 最后,通过遗传算法的搜索过程,得到最优解的种群。根据具体需求,可以输出最优解或者绘制最优解的图像等。 在编写源码的过程中,还需要注意遗传算法的参数设置,如种群大小、交叉率、变异率等。这些参数的选择需要根据实际问题进行调试和优化,以达到更好的求解效果。 综上所述,基于遗传算法投影寻踪模型MATLAB源码可以通过以上步骤实现,其中需要考虑问题的具体要求和遗传算法的参数选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值