欢迎使用CSDN-markdown编辑器

数学模型和决策

一、 前言

数学离我们并不遥远, 数学要解决的就是我们生活中会碰到的各种问题, 我们可以用数学 去描述实际碰到的问题, 然后从计算中厘清一些事物间的关系, 并做出预测, 虽然模型并不能完 全代表真实的情况, 但是只要这个模型包含了那些最具影响力的主导向, 我们就可以从计算中 去预测和掌握趋势, 填补了用感觉和经验来做预测的一些缺点和不足, 至少有数学当基础的决 策会让人增添许多信心, 最近常常听到警察和抗议民众发生冲突, 让人开始对两个族群战争的 数学模型感到兴趣, 在此尝试了一些计算来描述和解释。

二、 内容

dxdt = x(a - by)
dydt = -y(c - dx)

这类型的方程, 最早由美国统计学家 Alfred James Lotka 和意大利数学家 Vito Volterra 独立发表, 用来描述掠食者与猎物之间数量随时间变化的关系, 而本文则是用来描述两个族群生 长和战争的模型, 所讨论的对象有不同的角色关系。
考虑两个族群, 假设其族群内的个体数不增加, 而且两个族群发生战争, 造成双方个体的 数量下降, 我们将使用以下的模型来进行仿真。

dAdt = - k1 AB
dBdt = - k2 AB

其中 A, B 代表两个种族个别的个体数量

A(0) = A0>0,B(0)=B0>0,k1,k2 > 0

为什么这个方程式要这么列呢 ? 先想想看譬如有 10 个种族 A 的个体和 10 个种族 B 的个体, 一单位时间内平均相遇 3 次, 只要种族 A 和种族 B 的单一个体相遇, 就算一次, 那么如 果种族 A 的个体数变成 30 个, 种族 B 的个体数维持不变, 是不是一单位时间内平均相遇次 数就会变成 9 次, 此时如果种族 B 的个体数变成 20 个, 那么一单位时间内平均相遇次数就会 变成 18 次, 也就是说, 一单位时间内平均相遇次数正比于族群 A 和族群 B 的个体数, 我们不 仿假定一单位时间内平均相遇次数为 kAB, 又假设在一次相遇中族群 A 的个体死亡的机率为 PA, 族群 B 的个体死亡的机率为 PB , 那么 PAkAB 和 PBkAB 就可以分别代表族群 A 和 族群 B 一单位时间内平均死亡的个体数, 我们令 PAk = k1, PBk = k2, 就可以列出如下的方程序

dAdt = - k1 AB
dBdt = - k2 AB

接下来我们把 A 和 B 解出来:

dAdB=k1k2k2dA=k1dBk2A+C1=k1B

将 (2) 式带回 (1) 式中, 得:

dAdt=A(k1A+C1)dAA(k2A+C1)=1dt

(k2k2Ak2k2A+C1)dAC1=t+C2

Ln(k2A)Ln(k2A+C1)=C1t+C1C2

1+C1k2A=eC1tC1C2

A=C1k2(eC1tC1C21) 将 A 代回 (2) 式中可得

B(t)=C1eC1tC1C2k1(eC1tC1C21)

由初始条件可得
C1=k1B0k2A0.C2=Ln(k2A0k1B0)k1B0k2A0

其中这个 C1 在这个战争中具有特别的意义,

C1>0,t,A(t)0,B(t)B0k2k1A0

C1>0,t,A(t)A0k1k2B0,B(t)0

C1>0BA,

C1>0AB,

C1AB,

C1=k1B0k2A0,

A0B0AB,

k1=PAk,k2=PBk,

PAA,BPBB,A

k1=PAk,k2=PBk,

k1,k2BA,k1B0k2A0BA,C1=k1B0k2A0BA,C1AB

如果考虑个体数会增生, 把原本的数学模型修改一下。 考虑两个族群, 假设其族群内的个体数会增加, 而且两个族群发生战争, 造成双方个体的数量下降, 我们将使用以下的模型来进行模拟。

dAdt=mAk1AB
dBdt=mBk2AB

A,B,A(0)=A0>0,B(0)=B0>0,k1,k2,m>0,,mAmB,mAmBm1Am2B,m1m2,,

解:

k2dAdtk1dBdt=m(k1Ak2B)d(k2Ak1B)dt=m(k2Ak2B)

(k2Ak1B)=C1emt

dAdtdBdt=dAdB=A(mk1B)B(mk2A)mk2AAdA=mk1BBdB

mlnAk2A=mLnBk1B+C2

mLn(AB)=k2Ak1B+C2=C1emt+C2

A=BeC1emt+C2m,(3)

A=C1emt+C1emt+C2mk2eC1emt+C2mk1,B=(C1emtk2eC1emt+C2mk1

代入初始值可得 C1=k2A0k1B0,C2=mln(A0B0)k2A0+k1B0

C1,

C1>0,t

A=C1emt+C1emt+C2mk2eC1emt+C2mk1=C1emt(eC1emt+C2mk2eC1emt+C2mk1)=(A0k1k2B0)emt

B0

C1<0,t

A0

B=C1emtk2eC1emt+C2mk1C1k1emt=(B0k2k1A0)emt

解释:
C1=k2A0k1B0>0,AB,,AA0B0,,B,C1<0,BA,,BB0k2K1A0,,A

结语

数学常常给人一种不食人间烟火的感觉, 其实我们生活中会碰到许多的困难和问题要去解 决或是做决策, 譬如对奕、 经济、 军事、 医学、 民生, 这些都可以从建构数学模型或是进行统计 来帮我们做预测, 弥补经验和感觉的不足, 譬如说我们都知道消息传递快速, 一传十, 十传百, 但是实际上到底有多快? 如果我们没有建立起一个模型进行计算, 我们很难掌握某种我们关心 的量随时间推移其大小的变化, 而这个量的大或小可能就会决定一个策略的成败, 就如同前面 提到的群体 A 和群体 B 的战争模型一样, 打赢的大量增生, 打输的几乎被消灭, 这是天差地远 的结果, 一个决策的好坏影响真的很大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值