【三维虚拟仿真】与【数据模型计算仿真】

2021-07-30  本文已影响0人  昵称违法

一、三维仿真与数据仿真的差别

【三维虚拟仿真】举例:虚拟工厂,工业仿真.....其实他属于3D可视化仿真(VR),这里只列举基于业务流程的仿真。

【数据模型计算仿真】更多偏向计算(三维仿真也有计算,但更多调用底层的三位引擎进行GPU计算),用数学模型对某业务进行模拟仿真,通过给定的数据和参数,用模型计算来推动仿真的过程,最终给出结果,并对结果进行解释。

三维虚拟仿真在调试程序的时候,因为你知道给定条件下大概会输出什么结果,所以调试比较方便,【比如柴油机车三维仿真时,按下启动按钮后,各个面板的指示灯、仪表要显示什么信息,是很明确的,程序正不正确,看看VR的输出结果就知道,比如发动机启动后,转速表却为0,这肯定不正确,或者发动机在转,但是没有粒子效果,那一定是代码错了,没有做事件关联】。

而用【数学模型】进行仿真的时候,给定条件下会出什么结果,好多是未知的,所以更多依赖【模型合理性】和【代码正确性】来保证计算结果是可信的。

二、数据仿真时,如何确保程序的正确性、健壮性.....

1、写好文档【需求、设计、测试文档】,定期搞一搞“回头看”(自动狗头)
2、规范编码、反复测试代码
3、多检查程序代码,特别是数据引用是否正确,计算公式是否正确......
4、请人挑错【别人愿意帮你挑错,简直是洪福啊】
5、无论科班还是非科班的同学,特别是毕业好几年的人,要定期补习硬件知识【组成原理、体系结构...】、软件知识【数据结构、算法、软件工程】、如果你还要设计模型,那么除了是【业务专家】以外,你还得有【深厚的数学功底】......
6、项目文档(资源)的管理也很重要(很多人自己做过的东西,却怎么也找不到)。管理好你的【配置数据】、【各种文档】、【程序源码】、【结算结果】、【结果分析和解释文档】等等。
7、每天锻炼身体......健壮的程序,需要健壮的身体 :D

写函数的时候,一定要写注释
包含以下信息:
【输入的参数】......
【处理逻辑】......
【输出的参数】......

这样别人改你的程序才不会刨你的坟,自己来改的话,也会轻松些......人生苦短,光活着就已经用尽全力了,所以,不要干自己折磨自己的事情....


"""
====作者====
。。。。。。
====日期====
。。。。。。
====维护记录====
。。。。。。

====功能====
生成每个交易【月份】->【板块集合】映射表
需要配合大盘交易日,每个有交易的月份都要生成数据,如果没有板块,板块信息为[]


====in====
df = ym_bankuai_df              ,每月强势板块信息表
dapan_days_df = dapan_days_df   ,大盘交易日表


=====每月强势板块信息表=====结构如下
Row │ 日期        板块  年    月   月份
    │ Any         Any   Any   Any  String
────┼──────────────────────────────────────
  1 │ 2018-07-31  yj    2018  7    2018-07
  2 │ 2018-07-31  yc    2018  7    2018-07
  3 │ 2018-08-31  yj    2018  8    2018-08
  4 │ 2018-08-31  yz    2018  8    2018-08
  5 │ 2018-08-31  yc    2018  8    2018-08
  6 │ 2018-08-31  yx    2018  8    2018-08
  7 │ 2018-09-30  yc    2018  9    2018-09
  8 │ 2018-09-30  yj    2018  9    2018-09

=====大盘交易日表=====结构如下
 Row │ day         年     月
     │ Date        Int64  Int64
─────┼──────────────────────────
   1 │ 2009-12-03   2009     12
   2 │ 2009-12-04   2009     12
   3 │ 2009-12-07   2009     12
   4 │ 2009-12-08   2009     12
   5 │ 2009-12-09   2009     12
   6 │ 2009-12-10   2009     12
   7 │ 2009-12-11   2009     12
   8 │ 2009-12-14   2009     12

====逻辑====
根据大盘日期信息,逐月统计该月的强势板块,生成一个unique的数组

====out===
df【月份】->【强势板块集合】表

Row │ 月份     年     月     板块
    │ String   Int32  Int32  Array…
────┼────────────────────────────────────────────────────
  1 │ 2018-07   2018      7  Any["yj", "yc"]
  2 │ 2018-08   2018      8  Any["yj", "yz", "yc", "yx"]
  3 │ 2018-09   2018      9  Any["yc", "yj", "yx"]
  4 │ 2018-10   2018     10  Any["yj", "yc"]
  5 │ 2018-11   2018     11  Any["yc", "yz"]
  6 │ 2018-12   2018     12  Any[]
  7 │ 2019-01   2019      1  Any["yx"]
  8 │ 2019-02   2019      2  Any["yx"]
  9 │ 2019-03   2019      3  Any["yx", "yz", "yc"]
 10 │ 2019-04   2019      4  Any["yc"]
 11 │ 2019-05   2019      5  Any["yx"]
 12 │ 2019-06   2019      6  Any["yx"]
"""
function gen_ym_inds_df(; df = ym_bankuai_df, dapan_days_df = dapan_days_df)
    begin_date = df.日期[1]
    end_date = df.日期[end]
    dapan_ym_df = gen_dapan_yyyy_mm(dapan_days_df, begin_date, end_date)
    dapan_ym_df[!, "板块"] = [[] for i = 1:size(dapan_ym_df, 1)]

    for r in eachrow(dapan_ym_df)
        ym = r.月份
        q_df = @linq df |> where(:月份 .== ym)
        if size(q_df, 1) == 0
            r.板块 = []
        else
            r.板块 = q_df.板块 |> unique
        end
    end

    return dapan_ym_df
end

上一篇 下一篇

猜你喜欢

热点阅读