数学建模~~追逐仿真问题

目录

1.前景介绍

2.题目描述

3.核心思路

4.思路分析

5.代码分析

5.1准备工作

5.2设置循环

5.3终止循环

5.4绘制图形

5.5完整代码


1.前景介绍

今天上午的数学建模培训王老师介绍的这个数学建模相关的经验真的是让我受益匪浅,让我对于数学建模有了更加清晰的认识,数学建模除了优化类,评价类,预测类问题,还有就是今天的追逐仿真问题,就是在一个坐标系里面去解决问题,下面就是一个简单的案例;

2.题目描述

正方形的四个顶点上面都有一个人,四个人之间相互追逐,这个题目就是想要我们画出来这个追逐的轨迹;(下面可能会使用1,2,3,4分别代表ABCD四个顶点)

3.核心思路

追逐仿真问题核心思路就是把这个连续的问题离散成为一系列的特定的状态;

就是每一次追逐的过程,都会产生一个状态的画面:下面就是一系列的特定的状态(部分截图,方便大家的理解);

就是A向上边走一个步长,B向左边走一个步长,C向下D向右,这个样经过一轮之后就组成了一个下面的新的正方形,然后按照这个逻辑继续进行下去;

4.思路分析

我们可以假设这个边长是1,每一次走0.05,也就是步长为0.05,每次经过一个步长之后重新去计算这个点的坐标和对应的方向向量;

我们首先要确定这4个顶点的坐标,每次更新之后还有去确定这4个顶点的新的坐标,实际上确定的是这4个直线的方向向量;

这个实际上是一个循环,当这4个点里面的某两个之间的距离小于我们的步长的时候,这个循环实际上就会停止,因为这个时候我们再走一步就会相遇了,所以这个时候就需要停止运行了;

最后我们使用plot函数进行绘制动图,绘制出来整个过程的动画,并且使用pause把这个过程逐个展示出来;

5.代码分析

5.1准备工作

我们首先确定这四个点的坐标以及之间的方向向量,设置步长为0.05,DD为记录这个过程中的4个点的坐标的变化情况,并且把这个坐标的相关数据放置在DD矩阵里面去;

DD是一个2*4的矩阵,这个矩阵的每一列代表一个坐标,第一类10就是A点的坐标,11就是B点的坐标,以此类推,相当于这个矩阵的第一行就是横坐标,第二行就是纵坐标;

V表示的就是方向向量,这个后面的投影也是使用的方向向量进行计算的,我们的这个V实际上是有拼接得到的,2-1求解两个点之间的方向向量,3-2,4-3同样可以求解,这个时候没有办法去求解1-4就是1,4这两个点之间的

这个就是第一次计算得到的方向向量结果展示:

5.2设置循环

我们假设这个循环次数是1000次,实际上肯定是不会进行这么多次的循环,我们中间满足某一个条件的时候会终止这个循环;

dx就是每走一步在x方向上面的变化量L就是步长,后面乘以的相当于就是cos角,就是这个步长在x方向上面的投影,cos的计算就是△x/(△x^2+△y^2)^0.5,这个实际上就是我们的cos的计算过程,就是利用的向量的知识,同理这个dy就是计算的在y方向上面的投影长度;

计算出来这个dx,dy之后,我们要更新这个位置坐标,我们原来的位置坐标是放置在D这个矩阵里面的,我们把这个D+dxy实际上得到的就是走一步之后得到的新的位置坐标;

得到新的坐标,我们的这个新的方向向量也是需要进行更新的,V就是更新的新的方向向量,DD记录每一次这个里面的4个顶点的坐标的具体数值;

5.3终止循环

上面也介绍到了,两个顶点之间的距离小于步长L的时候这个循环就会停止,我们计算两个顶点之间的距离,可以自己去写一个式子(我下面的注释就是的),也可以调用norm函数,参数使用减号进行连接,两个方式是等效的,选择合适的即可;

5.4绘制图形

plot的第一个参数就是x坐标,第二个参数就是y坐标,但是我们的D(1,:)和D(2,:)只能关联上12,23,34,这个14没有建立联系,所以我们使用矩阵的拼接把两个点额外的搞上去;

hold就是新的图形不会覆盖原来的图形;

pause就是每一次绘制完成之后停顿时间为0.1秒,方便我们观察这个过程;

5.5完整代码

clear;
clc;
D=[1 1 0 00 1 1 0];%%计算方向向量
V=[D(:,2:end)-D(:,1:end-1) D(:,1)-D(:,end)];%%设定步长大小
L=0.05;
DD=[];for i=1:1000%%分别计算xy方向上的投影长度dx=L*V(1,:)./((V(1,:).^2+V(2,:).^2).^0.5);dy=L*V(2,:)./((V(1,:).^2+V(2,:).^2).^0.5);dxy=[dx;dy];D=D+dxy;DD=[DD;D];%%计算新的方向向量V=[D(:,2:end)-D(:,1:end-1) D(:,1)-D(:,end)];%%循环结束条件if norm(D(:,2)-D(:,1))<=Lbreak;end% if ((D(1,2)-D(1,1)).^2+(D(2,2)-D(2,1)).^2).^0.5<=L%     break;% end%%绘制图形plot([D(1,:) D(1,1)],[D(2,:) D(2,1)],'r');hold on;pause(0.1);
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/398076.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单的docker学习 第13章 CI/CD与Jenkins(下)

第13章 CI/CD 与 Jenkins 13.13 自由风格的 CI 操作(最终架构) 前面的架构存在的问题是&#xff0c;若有多个目标服务器都需要使用该镜像&#xff0c;那么每个目标服务器都需要在本地构建镜像&#xff0c;形成系统资源浪费。若能够在 Jenkins 中将镜像相撞构建好并推送到 Har…

【区块链+乡村振兴】福建三明某县农业农村局:茶叶认标购茶区块链溯源平台 | FISCO BCOS应用案例

为了有效打击市场上茶叶假冒伪劣、以次充好的违法行为&#xff0c;从而激励企业参与维护的积极性&#xff0c;促进茶叶产业的良 性循环&#xff0c;进而塑造高品质品牌价值&#xff0c;福建省三明市某县农业农村局基于 FISCO BCOS 建设了茶叶认标购茶区块链溯源平台&#xff0c…

linux内核驱动:GIC中断总结

目录 前言一、整体介绍二、GIC的模块功能说明三、函数接口、数据结构和驱动文件驱动文件数据结构 四、中断使用流程五、中断的扩展 前言 本文基于linux5.10.xxx总结gic使用&#xff0c;gic版本为gicv3&#xff0c;包括gic结构、驱动代码、使用等&#xff0c;等&#xff0c;处理…

入门学习使用overleaf和latex

文章目录 1.下载对应的latex论文模板2.overleaf平台的使用2.1overleaf平台的介绍2.2overleaf平台模板文件的上传2.3latex语法的学习2.3.2 分段(如下图显示)2.3.3 其他2.3.4简单latex实操2.3.5 换行符和换页符2.3.6左右居中对齐2.3.7 字体设置2.3.8插入固定位置图片2.3.9文字包围…

基于区块链的数字身份应用开发(上)

基于区块链的数字身份应用开发(上&#xff09; 任务一&#xff1a;环境准备 &#xff08;1&#xff09;更新镜像源 apt update&#xff08;2&#xff09;安装openssl、jdk、git &#xff08;3&#xff09;配置JAVA_HOME环境变量 echo "export JAVA_HOME/usr/lib/jvm/j…

HarmonyOS.FA开发流程

开发环境配置 1、DevEco Studio的安装 2、DevEcoStudio模拟运行工程&#xff1a;运行Tools->Device Manager&#xff0c;使用已认证的HW开发者联盟帐号Login&#xff08;在DP平台申请测试者权限&#xff09;&#xff0c;点击"允许"授权&#xff0c;选择一个设备运…

Windows10、ARM开发板、虚拟机Ubuntu可同时上网

一、Windows10端设置 1、打开网络配置 2、打开适配器 3、将window连接的wifi网卡设置为共享模式 4、查看本地连接的ip 到此&#xff0c;window10端设置完毕 二、设置虚拟机端&#xff08;Ubuntu&#xff09; 1、打开网络配置 2、打开适配器 3、查看本地连接的网卡名称 4、配置…

docker RUN覆盖容器主进程命令

docker容器启动失败正常都是由于启动主进程退出导致的&#xff0c;主进程启动命令往往都是由镜像Dockerfile文件最后的ENTRYPOINT或CMD定义的&#xff0c;此时可覆盖主进程启动命令&#xff0c;更换一个挂起的命令即可。我常用挂起命令&#xff1a;/bin/bash 1、检查容器启动主…

Maven的理解与应用

Maven使用 一、Maven的含义 Maven是一个构建项目的工具&#xff0c;也是一个管理项目的工具 二、Maven的应用 构建项目 管理依赖 做项目的热部署 基于项目做多模块&#xff08;modle&#xff09;的构建 三、Maven的安装 注意&#xff1a;maven本身不需要安装&#xff0c;下…

机器学习笔记:门控循环单元的建立

目录 介绍 结构 模型原理 重置门与更新门 候选隐状态 输出隐状态 模型实现 引入数据 初始化参数 定义模型 训练与预测 简洁实现GRU 思考 介绍 门控循环单元&#xff08;Gated Recurrent Unit&#xff0c;简称GRU&#xff09;是循环神经网络一种较为复杂的构成形式…

【网络编程】UDP通信基础模型实现

udpSer.c #include<myhead.h> #define SER_IP "192.168.119.143" #define SER_PORT 7777 int main(int argc, const char *argv[]) {//1.创建int sfd socket(AF_INET,SOCK_DGRAM,0);if(sfd -1){perror("socket error");return -1;}//2.连接struct…

element-ui周选择器,如何获取年、周、起止日期?

说明 版本&#xff1a;vue2、element-ui2.15.14 element-ui的日期选择器可以设为周&#xff0c;即typeweek&#xff0c;官方示例如下&#xff1a; 如果你什么都不操作&#xff0c;那么获取的周的值为&#xff1a; value1: Tue Aug 06 2024 00:00:00 GMT0800 (中国标准时间)如…

asp.net医院权限管理系统

医院管理的设计与实现程序 医院管理系统asp.netsqlserver 医院权限管理系统sqlserver 挂号管理 挂号类型管理 挂号登记 挂号查询 药品管理 计量单位管理药 品分类管理 药品编辑 病人资料 病人资料录入 病人资料编辑 病人资料查询 住院管理 住院登记 住院查询办理出院 病例管理 …

鸿蒙HarmonyOS开发:如何灵活运用动画效果提升用户体验

文章目录 一、动画概述1、动画的目的 二、显式动画 (animateTo)1、接口2、参数3、AnimateParam对象说明4、示例5、效果 三、属性动画 (animation)1、接口2、参数3、AnimateParam对象说明4、系统可动画属性4、示例5、效果 一、动画概述 动画的原理是在一个时间段内&#xff0c;…

HAProxy原理及实例

目录 目录 haproxy简介 haproxy的基本信息 haproxy下载并查看版本 haproxy的基本配置信息 global配置 ​编辑多进程和多线程 启用多进程 启用多线程 haproxy开启多线程和多进程有什么用 proxies配置 defaults frontend backend listen socat工具 实例&#xff1a…

Particle Swarm Optimization粒子群算法

目录 1.粒子群算法入门 1.1 简单的优化问题 1.1.1 盲目搜索 1.1.2 粒子群算法流程图 1.1.3 粒子群算法的核心公式 1.1.4 预设参数 1.1.5 初始化粒子的位置和速度 1.1.6 计算适应度 1.1.7 循环体&#xff1a;更新粒子速度和位置 1.1.8 模型改进 2.深入研究粒子群算法 …

CLEFT 基于高效大语言模型和快速微调的语言-图像对比学习

CLEFT: Language-Image Contrastive Learning with Efficient Large Language Model and Prompt Fine-Tuning github.com paper CLEFT是一种新型的对比语言图像预训练框架&#xff0c;专为医学图像而设计。它融合了医学LLM的预训练、高效微调和提示上下文学习&#xff0c;展…

【Linux】线程同步与互斥

目录 线程相关问题 线程安全 常见的线程安全的情况 常见的线程不安全的情况 可重入函数与不可重入函数 常见不可重入的情况 常见可重入的情况 可重入与线程安全的关系 联系 区别 线程同步与互斥 互斥锁 使用 死锁 死锁的四个必要条件 如何避免死锁 条件变量 同…

Unity读取Android外部文件

最近近到个小需求,需要读Android件夹中的图片.在这里做一个记录. 首先读写部分,这里以图片为例子: 一读写部分 写入部分: 需要注意的是因为只有这个地址支持外部读写,所以这里用到的地址都以 :Application.persistentDataPath为地址起始. private Texture2D __CaptureCamera…

【JavaEE】初步认识多线程

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【Java】登神长阶 史诗般的Java成神之路 &#x1f3b7; 一.线程 1.概念 线程&#xff08;Thread&#xff09;是在计算机科学中&#xff0c;特别是操作系统领域里的一个关键概念。它是操作系统能够进行…