✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
20世纪40年代,生物模拟就已成为计算科学的一个组成部分,对机 器智能的强烈渴望大大推动了仿生学的发展, 对大规模优化问题有效 求解的现实需求,也大大推动了GA的产生,1962年美国J. Holland教授 受达尔文进化论的启发,首次提出了GA算法的思想,并于1975年发表了 著名的"Adaptaiton in Natural and Artificial Systems".GA是一 种崭新的全局优化算法, 它通过自然选择,遗传,变异等作用机制, 实 现各个个体的适应性的提高.
⛄ 部分代码
%Generic Algorithm for function f(x1,x2) optimum
clear all;%清变量
close all;%关闭所有图像
clc%清屏
%Parameters
Size=200;%%群空间
G=1000;%最大迭代次数
n=7;%投资数量
lamd=1;%(1) λ值
cov=xlsread('data');%各种房地产的收益率协方差
% r=[9.18 10.17 9.24 10.93 8.45 10.13 10.38];%期望收益率
r=[0.0918 0.1017 0.0924 0.1093 0.0845 0.1013 0.1038];%期望收益率
x=rand(Size,n); %Initial Code
for i=1:Size
xx(i,:)=x(i,:)/sum(x(i,:));%%初始化群体
end
%Main Program
for k=1:1:G%循环次数
time(k)=k;
%%%%%%%%%%%%%%计算适应度函数
for s=1:1:Size
f1=0;
f2=0;
for i=1:n
f1=f1+xx(s,i)*r(i);
end
for i=1:n
for j=1:n
f2=f2+xx(s,i)*xx(s,j)*cov(i,j);
end
end
F(s)=exp((1-lamd)*f1-lamd*sqrt(f2)); %%%将目标函数分成多部分,这样简单明了
end
Ji=1./F;%%%%%适应度函数
%****** Step 1 : Evaluate BestJ ******
BestJ(k)=min(Ji);%%%%%%最小的适应度值
fi=F; %目标函数值
end
disp('投资比例为:')
BestS %投资比例
figure(1); %绘图
plot(time,bfi);
xlabel('迭代次数');ylabel('适应度');
title('不同投资比例下的适应度变化曲线')
⛄ 运行结果
⛄ 参考文献
[1]李龙. 基于Matlab遗传算法的最优投资组合选择.
❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除