当前位置: 首页 > news >正文

【优化组合】基于遗传算法求解不同投资比例的收益附matlab代码

✅作者简介:热爱科研的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电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除

 

相关文章:

  • 什么是JavaScript(快速入门)
  • 树莓派PICO入门教程
  • 深入理解计算机系统——第五章 Optimizing Program Performance
  • 【JDBC实战】水果库存系统 [设计阶段]
  • 【前端之旅】JavaScript进阶笔记
  • JVM运行时参数
  • 【Android】-- 数据存储(二)(存储卡上读写文件、Application保存数据)
  • 消息队列|RabbitMQ入门概述
  • 并发(5)线程之间的协作
  • Vue 新手期练手出现问题记录与解决方案——Vue练手项目“小问题“,强迫症患者福音——持续更新ing
  • 公钥密码学中的简单数学基础
  • docker简洁版
  • 牛客网面试必刷TOP101之——判断某种二叉树以及寻找最近公共祖先节点
  • leetcode——最长回文子串——百日算法成就第五天5%
  • Java_Stream流式计算
  • HTTP中GET与POST的区别 99%的错误认识
  • Java深入 - 深入理解Java集合
  • mac修复ab及siege安装
  • Python socket服务器端、客户端传送信息
  • quasar-framework cnodejs社区
  • rc-form之最单纯情况
  • 爱情 北京女病人
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 构建二叉树进行数值数组的去重及优化
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 聚类分析——Kmeans
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 排序算法之--选择排序
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 阿里云服务器购买完整流程
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • # centos7下FFmpeg环境部署记录
  • (3)(3.5) 遥测无线电区域条例
  • (day6) 319. 灯泡开关
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (力扣)1314.矩阵区域和
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (转) Android中ViewStub组件使用
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core引入性能分析引导优化
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • @html.ActionLink的几种参数格式
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [android] 手机卫士黑名单功能(ListView优化)
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [C++]:for循环for(int num : nums)
  • [CSS]盒子模型
  • [Intel Edison开发板] 05、Edison开发基于MRAA实现IO控制,特别是UART通信