2022全国大学生数学建模A题的思路与解法

article/2025/8/23 13:18:47

题目回顾与写在前面

  • 首先,我们队在历经了千辛万苦之后,光荣得获得了  省三......
  • 队伍构成 物理*2 + 计算机*1
  • 队伍分工  计算机-->受力分析  物理-->数值计算
  • 总评:图一乐,狠乐!物理系,计算机系嘛,不怎么看建模的啦!
    • 如果只是考虑力学问题的话,我们分析得肯定还不太到位,但是这个题肯定很好分析
    • 所以,这个题主要在数值计算上

 思路

基本假设

1.海水是无粘及无旋的。

2.浮子在线性周期微幅波作用下会受到波浪激励力(矩)、附加惯性力(矩)、兴波阻尼力(矩)和静水恢复力(矩)。

3.忽略中轴、底座、隔层及 PTO的质量和各种摩擦。

4.初始浮子和振子平衡于静水中。

问题一的求解

 

问题一浮子振子整体的受力分析

问题一振子在浮子参考系下的受力分析

数值求解

4级显式Runge-Kutta方法

求解过程的代码:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import matplotlibmatplotlib.rcParams["font.sans-serif"] = ["SimHei"]
matplotlib.rcParams["axes.unicode_minus"] = Falsedef runge_kutta4(df, a, b, h, y0):num = len(y0)x = np.arange(a, b+h, h)w = np.zeros( (x.size, num) )w[0, :] = y0for i in range(x.size - 1):s0 = df(x[i], w[i, :],i*h)s1 = df(x[i] + h/2., w[i, :] + h * s0 / 2.,i*h)s2 = df(x[i] + h/2., w[i, :] + h * s1 / 2.,i*h)s3 = df(x[i+1], w[i, :] + h * s2,i*h)w[i+1,:] = w[i,:] + h * (s0 + 2*(s1+s2) + s3) / 6.return x, wdef df(x, variables,i):th1, th2, om1, om2 = variablesA = np.zeros((2, 2))b = np.zeros(2)A[0, 0] = 2433+6201.535A[0, 1] = 2433A[1, 0] = 2433A[1, 1] = 2433b[0] = 6250*np.cos(1.4005*i)-10045*4*np.arctan(1)*th1*(th1<=0.999989731)-10045*4*np.arctan(1)*0.999989731*(th1>0.999989731)-656.3616*om1b[1] = -80000*th2-10000*om2dom1, dom2 = np.linalg.solve(A,b)return np.array([om1,om2,dom1,dom2])a, b = 0.0,180.0
h = 0.01th10 = 0.1
th20 = 0.1
om10 = 0.1
om20 = 0.1y0 = np.array([th10, th20, om10, om20])# 计算求解
t, w = runge_kutta4(df, a, b, h, y0)th1 = w[:, 0]
th2 = w[:, 1]
om1 = w[:, 2]
om2 = w[:, 3]plt.plot([h*i for i in range(len(th1))],th1,label="x1")
plt.plot([h*i for i in range(len(th2))],th2,label="x2")
#plt.plot([i*h for i in range(len(om1))],om1,label="x1'")
#plt.plot([i*h for i in range(len(om2))],om2,label="x2'")
plt.xlabel("时间/s")
plt.ylabel("位移/m",rotation=True)
#plt.ylabel("速度/m*s^-1",rotation=True)
plt.legend()plt.title("x1 x2 随时间的变化量;求解步长 -m1"+str(h))
plt.savefig("x1 x2 随时间的变化量 求解步长 -m1"+str(h)+".jpg")
plt.show()#plt.title("x1' x2' 随时间的变化量;求解步长 "+str(h))
#plt.savefig("x1' x2' 随时间的变化量 求解步长 "+str(h)+".jpg")
#plt.show()import xlsxwriter as xls
#th1 = np.array(th1[::20])
#th2 = np.array(th2[::20])
#om1 = np.array(om1[::20])
#om2 = np.array(om2[::20])th1 = np.array(th1)
th2 = np.array(th2)
om1 = np.array(om1)
om2 = np.array(om2)workbook = xls.Workbook("1-1-000-m1.xlsx")
worksheet = workbook.add_worksheet("Sheet1")
headings = ["x1","x2","v1","v2"]
worksheet.write_row("A1",headings)
worksheet.write_column("A2",th1)
worksheet.write_column("B2",om1)worksheet.write_column("C2",th1+th2)
worksheet.write_column("D2",om1+om2)
workbook.close()

问题二

变步长搜索法

矩形法数值积分

问题二解法

60秒-80秒

80秒-100秒

100秒-120秒

 

最大平均功率/瓦特

290.141018

282.3656312

285.2766

289.2045

291.1627

291.2182

Beta值

38130

37850

37940

37970

37970

37970

Alpha值

0.098

0.1

0.1

0.1

0.1

0.1

 

问题三

 

数值解(类似一,二的解法)

物理量 \ 时间

10s

20s

40s

60s

100s

浮子垂荡位移

-0.685529938

-0.604544566

0.195435534

-0.156064651

0.142943636

浮子垂荡速度

0.5487404

-0.698097309

0.922311628

-0.867269801

-0.917710776

浮子纵摇角位移

0.0293679

0.001331413

-0.000590353

-0.002998229

-0.015015832

浮子纵摇角速度

-0.115251745

0.020961283

-0.03312735

0.042788285

0.051748796

振子垂荡位移

-0.764772476

-0.657517866

0.199876278

-0.159952226

0.168056577

振子垂荡速度

0.565213931

-0.788403868

1.017008287

-0.952503212

-0.997533033

振子纵摇角位移

0.030535835

0.001439153

-0.000618481

-0.003153401

-0.015074399

振子纵摇角速度

-0.117325818

0.019228743

-0.031151057

0.046614327

0.056193417

 

 问题四

 我们的优化模型:

小结

  • 这道题受力分析的成分要更大一点哈
  • 分析完了就数值计算
  • 受力分析不完整,我们就不放出来了,以后再完善吧。

http://chatgpt.dhexx.cn/article/eRtPM7KA.shtml

相关文章

2021数学建模A题详细思路

2021数学建模A题详细思路 适合遇到瓶颈&#xff0c;没有开始写论文&#xff0c;甚至还没有思路的同学“参考” 实在写不出论文的同学&#xff0c;也可以直接根据思路以及提供的资料&#xff0c;进行“语文建模”完成论文&#xff0c;至少交了就有个成绩。 2021数学建模国赛A…

2020 数学建模 A题

2020 数学建模 A 题 炉温曲线 感受体会 题目介绍原题题目分析整体热传到模型分析问题一问题二问题三问题四 核心&#xff1a;一维热传导模型模型参数设定温度间隙的温度分布&#xff09; 回流区过渡到 冷却区 之后 的温度电路板中心 区域 温度 变化的 机理 模型的求解问题一结论…

2017年数学建模大赛A题剖析(第一问求解间距思路分析)

第一问&#xff1a;间距问题 制作人&#xff1a;王代文一种典型的二维CT系统如图1所示&#xff0c;平行入射的X射线垂直于探测器平面&#xff0c;每个探测器单元看成一个接收点&#xff0c;且等距排列。X射线的发射器和探测器相对位置固定不变&#xff0c;整个发射-接收系统绕某…

全国大学生数学建模竞赛——2017A题(学习笔记)

目录 一、任务分析 二、题目一求解 题目分析&#xff1a; 模型建立&#xff1a; 模型求解&#xff1a; 3.1读数据&#xff0c;绘图 3.2探测器之间的距离计算 3.3小圆与发射—接收系统的相对运动 3.4提取小圆圆心位置坐标 三、题目二求解 一、任务分析 历年赛题 任…

PinPoint使用手册(图文并茂版)

用了一段时间PinPoint&#xff0c;感觉很有效果&#xff0c;值得推广&#xff0c;在这里把使用时总结出来的知识分享给大家&#xff0c;网上有很多Pinpoint安装部署的教程以及与其他APM比对的文章&#xff0c;这里就不赘述了&#xff0c;直接上图 01首页 02Server切换 03链路及…

Pinpoint部署和踩坑记录

pinpoint是韩国人开源的 APM (Application Performance Management/应用性能管理)工具 - Pinpoint。它基于google Dapper开发&#xff0c;目标就是为n(n>1)层架构开发新的跟踪平台&#xff0c;为n层架构的系统提供解决方案。pinpoint能够对基于java的大规模分布式系统和应用…

Pinpoint 技术架构及部署

目录 一、背景 二、简介 三、Pinpoint Collector 收集端 四、Pinpoint Web 五、Pinpoint Agent 六、监控效果图 七、其他 一、背景 随着项目微服务的进行&#xff0c;微服务数量逐渐增加&#xff0c;服务间的调用也越来越复杂&#xff0c;我们急切需要一个APM工具帮我们…

性能测试利器 — 全链路监控工具Pinpoint安装教程(非docker版本)

1、pinpoint介绍 1.1、相关简介 pinpoint是开源在github上的一款APM监控工具&#xff0c;它是由Java编写的&#xff0c;用于大规模分布式系统的监控&#xff1b;它对性能的影响最小(只增加约3%资源利用率)&#xff0c;安装agent是无侵入式的&#xff0c;只需要在被测试的Tomc…

pinpoint监控学习笔记

pinpoint分以下主要模块&#xff1a; pinpoint-agent&#xff0c;这个工程引用了其它核心jar&#xff0c;整个pinpoint监控的配置文件在这个项目中: pinpoint.config。 pinpoint-bootstrap: 这个工程定义了当jvm启动时&#xff0c;利用java instrument&#xff0c;实现对于后续…

Pinpoint 快速开始

Pinpoint有三个主要组件(collector, web, agent)&#xff0c;并使用HBase作为存储。Collector和Web被打包为单个war文件&#xff0c;而agent被打包以便可以作为java agent附加到应用。 Pinpoint quickstart 为agent提供一个示例TestApp&#xff0c; 并使用tomcat maven插件来启…

Pinpoint 一款强大的APM工具

背景 程序的监控一直是程序员最头痛的事情之一&#xff0c;现网程序有问题怎么办&#xff1f;看进程看端口 top/free/df 三件套&#xff1f;网络抓包&#xff1f;看日志&#xff1f;所以为了满足这些初级需求很多公司都做了主机监控&#xff0c;进程端口监听等功能&#xff0c…

pinpoint新增自定义插件监控

pinpoint&#xff1a;源码地址&#xff1a;https://github.com/pinpoint-apm/pinpoint.git 定义&#xff1a;基于Google的Dapper理论&#xff0c;通过在程序内部的class的方法&#xff0c;构造方法等地方埋点&#xff0c;通过Java-agent技术实现类增强的一种链路追踪的监控&…

pinpoint 安装 for spring cloud

pinpoint 安装 for spring cloud 1.环境说明2.安装步骤2.1 安装pinpoint2.2 安装agent2.2.1 下载2.2.2 agent配置2.2.3 JVM 配置2.2.4 日志中输出traceId 3.部署问题3.1 多个相同名称的项目放在一个pinpoint下监控3.2 agent id 过长问题&#xff08;最大长度不能超过24个字符&a…

利用Pinpoint搭建全链路监控系统

随着项目微服务的进行&#xff0c;微服务数量逐渐增加&#xff0c;服务间的调用也越来越复杂&#xff0c;我们急切需要一个APM工具帮我们监控各个服务的性能及对服务间的调用进行跟踪&#xff0c;而通过调研多个开源APM工具后&#xff0c;最终我们选择了Pinpoint。 简介 Pinp…

pinpoint安装部署(相关博客合集)

pinpoint安装部署 说明一、PinPoint介绍及工作原理1.1 确定部署的组件及服务 二、相关组件版本兼容情况2.1 确定版本 三、部署3.1 HBASE3.2 agent 说明 本博客写在搭建PinPoint之前&#xff0c;主要是用来记录查阅的相关博客资料&#xff0c;等到动手搭建完再更新实际部署操作…

分布式跟踪工具Pinpoint技术入门

本文初衷 因为工作需要&#xff0c;这周研究了一下APM&#xff08;Application Performance Management&#xff09;相关技术&#xff0c;看了些许资料&#xff0c;对比了各种技术的特点&#xff0c;最终选择Pinpoint作为性能监控工具&#xff0c;本文的主要目的是记录本人部署…

【Pinpoint】安装

文章目录 一. 下载1. 版本&#xff08;2.3.3&#xff09;2. [下载地址](https://github.com/pinpoint-apm/pinpoint/releases/tag/v2.3.3)3. 下载内容4. [hbase](http://archive.apache.org/dist/hbase/1.2.6/) 二. 安装1. 安装JDK82. 安装hbase1.2.61. 解压文件2. 修改sh文件3…

2、Pinpoint-Server端安装

0、本章节简介 安装Pinpoint服务端 采用Docker安装所以需要提前安装 docker和 docker-compose 本文使用的版本是Pinpoint:2.1版本 ps 由于Pinpoint依赖了很多的基础镜像&#xff0c;所以推荐不要在已经部署了程序的机器上部署&#xff0c;以免造成端口号冲突&#xff0c;推荐使…

pinpoint 介绍

基本概念 APM (Application Performance Management/应用性能管理)工具 为大规模分布式系统. 开发语言:Java. 特点: ● 低侵入性 不用改一行业务代码 ● 低性能影响(大约3%资源增长) ServerMap 可以直观的看到分布式系统拓扑结构和节点的事务数量. Realtime Active Thr…

Pinpoint--基础--02--架构设计

Pinpoint–基础–02–架构设计 1、整体架构 1.1、Pinpoint Collector 数据收集模块&#xff0c;接收Agent发送过来的监控数据&#xff0c;并存储到HBase部署在 Web 容器上 1.2、Pinpoint Web 监控展示模块&#xff0c;展示系统调用关系、调用详情、应用状态等&#xff0c;并…