数模国赛——多波束测线问题模型建立研究分析

news2024/11/28 6:48:25

第一次参加数模国赛,太菜了~~~~意难平

问题一

画出与测线方向垂直的平面和海底坡面的交线构成一条与水平面夹角为𝐀的斜线的情况下的示意图进行分析,将覆盖宽度分为左覆盖宽度和右覆盖宽度,求出它们与海水深度和𝐀、𝐀(复制的原因,没复制对,懒得改了)的关系。根据所列关系式,我们先计算出各个点位的海水深度,再求出覆盖宽度与重叠率,得出在 测线距中心点处的距离-600m 时的海水深度 为85.711553m,覆盖宽度为 297.3525571m,与前一条测线的重叠率为 33.639959%,具体计算结果如表 1 所示。
在这里插入图片描述

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
pi = math.pi
tan1_point5=math.tan(1.5/180*pi)
angle_degrees = 1.5
angle_radians = math.radians(angle_degrees)
tan_value = math.tan(angle_radians)##事先算出 tan1.5 的值
print("tan(1.5 degrees) =", tan_value)
angle_degrees1 = 60
angle_radians1 = math.radians(angle_degrees1)
tan_value1 = math.tan(angle_radians1)##事先算出 tan60 的值
m=200*tan_value
##分别求出海水深度然后合并
value=70
2
ans1=[]
for i in range(1,5):
ans1.append(value-i*m)
ans1.reverse()
ans1.append(70)
ans2=[]
for i in range(1,5):
ans2.append(value+i*m)
D=ans1+ans2
D.reverse()
##计算覆盖宽度 W
w1=[]
w2=[]
W=[]
for i in range(len(D)):
x1=(D[i]*tan_value1)/(1-tan_value1*tan_value)
x2=(D[i]*tan_value1)/(1+tan_value1*tan_value)
w1.append(x1)
w2.append(x2)
W.append(x1+x2)
print(w1)
print(w2)
print(W)
##计算重叠率
x=[-800,-600,-400,-200,0,200,400,600,800]
y1=[]
y2=[]
for i in range(len(W)):
y1.append(x[i]-w1[i])
y2.append(x[i]+w2[i])
print(y1)
print(y2)
chongdie=[]
for i in range(1,len(W)):
chongdie.append((y2[i-1]-y1[i])/(y2[i-1]-y1[i-1]))
print(chongdie)

问题二

在这里插入图片描述
在这里插入图片描述

clc
clear
3
format long;%设置长小数格式
a=1.5/180*pi;
t=8;
D0=120;
theta=120/180*pi;
d=0.3*1852;%海里转化成米
for nbeta=1:1:t
beta=(nbeta-1)*pi*(360)/t*(t-1)/180/(t-1);
%检查 beta+pi/2 是否是 pi 的倍数
%如果 beta+pi/2 是 pi 的倍数,那么将 k1 设置为 0
%并将 k 设置为 a 的正切值的绝对值。
if mod(beta+pi/2,pi)==0;
k1=0;
k=abs(tan(a));
else
k=abs(tan(a)/sqrt(1+(tan(beta+pi/2))^2));
if 3*pi/2 > beta && pi/2 < beta;
k1=-tan(a)/sqrt(1+(tan(beta))^2);
else
k1=tan(a)/sqrt(1+(tan(beta))^2);
end
end
%深度计算
for n=1:1:t
x=(n-1)*d;
D(nbeta,n)=D0+x*k1;
end
%计算 w
for m=1:1:t
w1(nbeta,m)=D(nbeta,m)*sin(theta/2)/sin(pi/6-atan(k));
w2(nbeta,m)=D(nbeta,m)*sin(theta/2)/sin(pi/6+atan(k));
W(nbeta,m)=(w1(nbeta,m)+w2(nbeta,m))*cos(atan(k));
end
end

问题3

在这里插入图片描述
在这里插入图片描述

import numpy as np
import math
import geatpy as ea
class MyProblem(ea.Problem): 
def __init__(self):
4
name = 'MyProblem' 
M = 1 
maxormins = [1] 
-1:
Dim = 2 )
varTypes = [0] * Dim 
lb = [math.pi/2, 0] 
ub = [ math.pi, 2*1852] 
lbin = [ 0, 0] 
ubin = [ 0, 0] 
# 调用父类构造方法完成实例化
ea.Problem.__init__(self,
name,
M,
maxormins,
Dim,
varTypes,
lb,
ub,
lbin,
ubin)
def evalVars(self, Vars): # 目标函数
beta= Vars[:, [0]]
f = Vars[:, [1]]
score = 4*1852*1852*2/(-np.cos(beta)*f)
#先把角度转化为弧度
angle_degrees_1 = 1.5
angle_radians_1 = math.radians(angle_degrees_1)
angle_degrees_60 = 60
angle_radians_60 = math.radians(angle_degrees_60)
k=np.arctan(1/(np.sin(beta)*np.tan(angle_radians_1)))
D=[]
for d in range(23,216):
D.append(abs(np.sin(k)*d*np.sin(angle_radians_60)/np.sin(k-angle_radians_60))+abs(np.sin(k)*(d+f*np.si
n(beta)*np.tan(angle_radians_1))*np.sin(angle_radians_60)/np.sin(k+angle_radians_60))
+f*np.cos(beta)-0.2*d*np.sin(angle_radians_60)*(abs(np.sin(k)/np.sin(k+angle_radians_60))+abs(np.sin(k
)/np.sin(k-angle_radians_60))))
D.append(0.1*d*np.sin(angle_radians_60)*(abs(np.sin(k)/np.sin(k+angle_radians_60))+abs(np.sin(k)/np.si
n(k-angle_radians_60))))
5
-abs(np.sin(k)*d*np.sin(angle_radians_60)/np.sin(k-angle_radians_60))+abs(np.sin(k)*(d+f*np.sin(beta)*n
p.tan(angle_radians_1))*np.sin(angle_radians_60)/np.sin(k+angle_radians_60))
+f*np.cos(beta)
CV=np.hstack(D)
return score, CV
if __name__ == '__main__':
# 实例化问题对象
problem = MyProblem()
# 构建算法
algorithm = ea.soea_DE_rand_1_bin_templet(
problem,
ea.Population(Encoding='RI', NIND=100),
MAXGEN=200, 
logTras=1) 
algorithm.mutOper.F = 0.5 
algorithm.recOper.XOVR = 0.7 
# 求解
res = ea.optimize(algorithm,
verbose=True,
drawing=1,
outputMsg=True,
drawLog=False,
saveFlag=True)
print(res)

问题4

在这里插入图片描述
在这里插入图片描述

%读取数据
[X1,X2,X3]=xlsread("C:\Users\JJH\Desktop\CUMCM2023Problems\B 题\附件.xlsx");
x=X1(1,2:end);
y=X1(2:end,1);
z=X1(2:end,2:end);
cha=diff(z,1,2);
he=sum(cha(1,1:end));
average=he/250
[X Y]=meshgrid(x,y);
subplot(3,2,[1 2]);
meshz(X,Y,z);
subplot(3,2,3);
z1=triu(z);
meshz(X,Y,z1)
6
subplot(3,2,4);
z2=triu(z,-50);
meshz(X,Y,z2)
subplot(3,2,5);
z3=tril(z);
meshz(X,Y,z3)
subplot(3,2,6);
z4=tril(z,-50);
meshz(X,Y,z4)
shading interp

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

纷享销客荣获最佳制造业数字营销服务商奖

2023年10月26日&#xff0c;第二届中国制造业数智化发展大会在上海盛大召开。本次大会汇聚了制造行业的顶尖企业和专家&#xff0c;共同探讨如何通过数字化转型赋能企业自身成长&#xff0c;实现信息化向数字化的升级转型。 在本次盛会上&#xff0c;纷享销客以其卓越的基本面、…

[激光原理与应用-75]:西门子PLC系列选型

目录 一、西门子PLC PLC系列 二、西门子PLC S7 1200系列 2.1 概述 2.2 12xx系列比较 三、西门子 PLC 1212C系列 四、主要类别比较 4.1 AC/DC/RLY的含义 4.2 AC/DC/RLY与DC/DC/DC 4.3 直流输入与交流输入比较 4.4 继电器输出与DC输出的区别 一、西门子PLC PLC系列 …

人工智能与卫星:颠覆性技术融合开启太空新时代

人工智能与卫星&#xff1a;颠覆性技术融合开启太空新时代 摘要&#xff1a;本文将探讨人工智能与卫星技术的融合&#xff0c;并介绍其应用、发展和挑战。通过深入了解这一领域的前沿动态&#xff0c;我们将展望一个由智能卫星驱动的未来太空时代。 一、引言 近年来&#xf…

【华为OD题库-018】AI面板识别-Java

题目 Al识别到面板上有N(1<N≤100)个指示灯&#xff0c;灯大小一样&#xff0c;任意两个之间无重叠。由于AI识别误差&#xff0c;每次识别到的指示灯位置可能有差异&#xff0c;以4个坐标值描述Al识别的指示灯的大小和位置(左上角x1,y1&#xff0c;右下角x2.y2)。请输出先行…

可视化协作软件有哪些?这10款神器助力团队合作!

可视化协作已经成为一个时下热门词汇&#xff0c;问题是对其并没有一个清晰的定义。有人认为它代表了一个云端环境&#xff0c;具有能够使办公室、混合办公和远程员工一起工作的功能。其他人则认为可视化协作不过是数字化白板而已。 随着这个术语变得更加流行&#xff0c;许多…

番外---9.0 firewall 网络

### 网络配制方式&#xff1a; 00&#xff1a;依据图形界面形式配置&#xff08;nmtui&#xff09;&#xff1b; 01&#xff1a;命令形式配置(nmcli)&#xff1b; 02&#xff1a;使用系统菜单配置&#xff1b; 00&#xff1a;依据图形界面形式配置&#xff08;nmtui&#xff0…

【Redis】进阶篇--用JAVA代码操作Redis

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Redis的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Java连接Redis 1.导入pom依赖 ​2.Ja…

Spring Boot中解决跨域问题(CORS)

1. 跨域介绍 首先解释什么是跨域&#xff0c;跨域就是前端和后端的端口号不同&#xff1b;会产生跨域问题&#xff0c;这里浏览器的保护机制&#xff08;同源策略&#xff09;。 同源策略&#xff1a;前端和后端的协议、域名、端口号三者都相同叫做同源。 我们看一下不同源&am…

SAP SD 定价 删除不满足条件的的条件类型

项目上的需求&#xff1a;当销售订单行项目类别满足条件时&#xff0c;根据配置表&#xff0c;删除不满足条件的的条件类型。 直接上增强点&#xff0c;bapi也能跑到这个位置。

优思学院|领导力是什么?与管理能力有何不同?领导力也能够后天培养!

什么是领导力&#xff1f; 在现代商业世界中&#xff0c;领导力不再仅仅是指挥下属&#xff0c;而是一种复杂的技能&#xff0c;需要具备多方面的能力和特质。领导力是指一个人能够影响、激励和指导他人&#xff0c;以达成共同目标的能力。与管理能力相比&#xff0c;领导力更…

JavaScript:事件循环机制(EventLoop)

一、理解进程、线程 进程是操作系统中的基本概念之一&#xff0c;指的是一个正在运行中的程序&#xff0c;包括了程序的执行代码、数据、资源等。操作系统为每个进程分配一定的系统资源&#xff0c;例如内存空间、文件和设备等&#xff0c;以便进程能够正常运行。 线程是进程…

【jvm】虚拟机栈之方法返回地址

目录 一、说明二、方法退出三、代码示例四、截图示例 一、说明 1. 存放调用该方法的pc寄存器的值。 2. 一个方法的结束&#xff0c;有两种方式&#xff1a;正常执行完成和出现未处理的异常的非正常退出 3. 无论通过哪种方式退出&#xff0c;在方法退出后都返回到该方法被调用的…

【lvgl】linux开发板搭建环境

前言 本章介绍如何在linux开发板准备好了fb0的情况下移植lvgl。 抓取源码 git clone https://github.com/lvgl/lvgl.git git clone https://github.com/lvgl/lv_drivers.git git clone https://github.com/lvgl/lv_demos.git git clone https://github.com/lvgl/lv_port_lin…

【Docker】手把手教你使用Docker搭建kafka【详细教程】

目录 前提条件 1.安装Zookeeper 1.1运行ZooKeeper容器 2.运行Kafka容器 2.1启动Kafka容器 3.验证 3.1进入Kafka容器 3.2查看容器状态 3.3查看容器日志 3.4重新启动容器 3.5创建测试主题 前提条件 1. 安装Docker: 确保你已经在你的Windows机器上安装了Docker。你可以…

升级智能监控,真香!

随着社会的发展与进步&#xff0c;传统依赖看的监控已经无法满足大众的需求&#xff0c;不够智能、识别不精准&#xff0c;传统监控的弊端也日益显现&#xff0c;智能监控升级迫在眉睫。 升级智能监控&#xff0c;不仅能够促进公共安全&#xff0c;同时也能促进社会文明的发展…

Vue3多页面开发实践

前言&#xff1a; 项目需求&#xff0c;把项目中的一个路由页面单摘出来作为一个新的项目。项目部署到服务器上后&#xff0c;通过一个链接的形式可以直接访问到新项目的页面。 解决方式&#xff1a; 使用Vue多页面方式打包项目 实现步骤&#xff1a; 1、在项目的src目录下&am…

四、二叉树

树是常用的数据存储方式&#xff0c;由于树中存在大量的指针结构&#xff0c;所以树的有关操作相对来说是比较难的。 一、 树的定义 这里用二叉树来举例子 使用结构体的方式实现二叉树: struct BinaryTreeNode {int data;BinartTreeNode* left;BinartTreeNode* right; };使用…

柯桥俄语考级培训,俄语专八如何备考

1.用好真题 真题一共分为&#xff1a;口语表述、听力、词汇语法句法、文学常识、国情、阅读理解、俄汉互译、作文等部分。 第一&#xff0c;要自己动手做真题&#xff0c;然后对答案&#xff0c;看错题错在什么地方&#xff0c;还有哪些知识点是盲区。 第二&#xff0c;分析每…

linux下sqlplus登录oracle显示问号处理办法

问题描述 昨天紧急通过rpm按安装方式给客户装了一台linux的19c数据库&#xff0c;操作系统是CentOs Stream release 9&#xff0c;过程不再回忆了… 今天应用发现sqlplus登入后部分显示问号&#xff1f;&#xff0c;需要处理下 原因分析&#xff1a; 很明显&#xff0c;这就是…

Android ConstraintLayout分组堆叠圆角ShapeableImageView

Android ConstraintLayout分组堆叠圆角ShapeableImageView <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…