当前位置: 首页 > news >正文

姜启源数学模型第五版第五章火箭发射升空

姜启源数学模型第五版第五章例题内容复现

  • 数学建模背景
  • 1.学习内容
    • 火箭发射升空
    • 理论知识
  • 2.例题
  • 3.问题分析
    • 不考虑空气阻力的模型
    • 考虑空气阻力的模型
  • 4.代码内容复现
    • 不考虑空气阻力
    • 考虑空气阻力模型

数学建模背景

首先先简单的介绍数学建模是一个怎么样的内容
数学建模是一种将数学方法和技术应用于实际问题解决的过程。它通过建立数学模型来描述、分析和预测现实世界中的各种问题.

数学建模的内容可以包括以下几个方面:

1.问题定义(问题重述):明确问题的目标、约束条件和需求。
2.建立数学模型:根据问题的特点和要求,选择适当的数学方法和技术,建立描述问题的数学模型。
3.模型分析:对建立的数学模型进行分析,推导出模型的性质和特征。
4.模型求解:利用数学工具和计算机技术,求解数学模型以得出问题的解决方案。
5.模型验证和评估:验证模型的有效性和准确性,并评估解决方案的可行性和可行性。
6.结果解释和应用:解释数学模型的结果,提供对问题的洞察力,并将模型的解决方案应用于实际情况。

1.学习内容

所学习的内容的理论基础的描述
简单描述一下本文当中所要使用到的一些数学建模的理论基础的相关知识,重点在于简单了解数学建模相关知识点的应用场景,避免生搬硬套

火箭发射升空

单级小型火箭的发射
考察火箭垂直于地面发射、上升的过程:火箭垂直向上发射后,燃料以一定的速率 燃烧,火焰向后喷射,对火箭产生向前的推力,在克服地球引力和空气阻力的同时,推动 火箭加速飞行.燃料燃尽后火箭依靠获得的速度继续上升,但在引力和阻力的作用下速 度逐渐减小,直到速度等于零,火箭达到最高点.建立数学模型研究火箭上升高度、速度 和加速度的变化规律以及与火箭质量、燃料推力等因素的关系
显然,这个虚拟的场景只是实际发射火箭最初的一个阶段,若不施加其他手段,火箭将从最高点自由下落
火箭发射、上升过程所遵循的基本规律是牛顿第二定律,火箭在运动中受到燃料燃 烧的推力、地球引力和空气阻力的联合作用,其中推力与引力的作用是明确和易于处理的,空气阻力随着火箭速度的增加而变大,但二者之间的数量关系则不易确定.下面先 不考虑空气阻力,建立相对简单的模型,再通过简化、合理的假定将阻力引人模型.

理论知识

本道题当中最重要的就是动力学相关的公式以及积分直接的结合,所以大家只要知道微分方程以及牛顿第二定律
将二阶微分方程化成一阶微分方程组:
{ y 1 ′ = y 2 y 1 ( 0 ) = 1 ( 初值 ) y 2 ′ = α y 2 + β y 1 + c y 2 ( 0 ) = 1 ( 初值 ) \left\{\begin{matrix} &y^{\prime}_1=y_2 \ & y_1(0)=1(初值) \\ &y^{\prime}_2=\alpha y_2+\beta y_1+c \ & y_2(0)=1(初值) \end{matrix}\right. {y1=y2 y2=αy2+βy1+c y1(0)=1(初值)y2(0)=1(初值)
牛顿第二定律:
F = m a F=ma F=ma

2.例题

由于时间的关系,在每一张当中都尽可能地会挑一道两道题进行描述

问题与假设设小型火箭初始质量为 m 0 = 1600 k g m_0=1600kg m01600kg,其中包括 m 1 = 1080 k g m_1=1080kg m1=1080kg燃料. 火箭从地面垂直向上发射时,燃料以 r = 18 k g / s r=18kg/s r=18kg/s的速率燃烧,对火箭产生 F = 27000 N F=27000N F=27000N的恒定推力.燃料燃尽后火箭继续上升,直到达到最高点.因为火箭上升高度与地球半 径相比很小,所以可认为整个过程中受到的地球引力不变,重力加速度取 g = 9.8 m / s 2 g=9.8m/s2 g=9.8m/s2。建立火箭上升高度、速度和加速度随时间变化的数学模型,给出燃料燃尽时火箭的高 度、速度和加速度以及火箭到达最高点的时间和高度

3.问题分析

对题目进行简单的分析

不考虑空气阻力的模型

模型建立设火箭t=0时从地面x=0向上发射,火箭高度为 x ( t ) x(t) x(t),速度为 x ˙ ( t ) \dot{x}(t) x˙(t) ,加速度为 x ¨ ( t ) \ddot{x}(t) x¨(t)。火箭的质量记为 m ( t ) m(t) m(t),随燃料燃烧而减少,有 m ( t ) = m − r t m(t)=m-rt m(t)=mrt。燃料燃尽的 m时间记为 t 1 t_1 t1,显然 t 1 = − 60 s t_1=-60s t1=60s,t以后火箭质量保持为 m 0 − m 1 = 520 k g m_0-m_1=520kg m0m1=520kg。火箭到达最高点的时间记为 t 2 t_2 t2 t 2 t_2 t2 v ( t 2 ) v(t_2) v(t2)=0确定.
火箭从 x = 0 x=0 x=0处零初速地发射,上升过程中燃料燃烧阶段受到推力 F F F和重力 m ( t ) g m(t)g m(t)g的作用,按照牛顿第二定律可以写出
( m 0 − r t ) x ¨ = F − ( m 0 − r t ) g , 0 ≤ t ≤ t 1 , t 1 = m 1 r , x ( 0 ) = x ˙ ( 0 ) (m_0-rt)\ddot{x}=F-(m_0-rt)g,0≤t≤t1,t1=\frac{m_1}{r},x(0)=\dot{x}(0) m0rtx¨=Fm0rtg0tt1t1=rm1x0=x˙(0)燃料燃尽后火箭只受重力作用,于是
( m 0 − m 1 ) x ¨ = − ( m 0 − m 1 ) g , t 1 < t ⩽ t 2 \left(m_{0}-m_{1}\right) \ddot{x}=-\left(m_{0}-m_{1}\right) g, \quad t_{1}<t \leqslant t_{2} (m0m1)x¨=(m0m1)g,t1<tt2
接下来就是分情况进行公式的推导以及计算,计算内容如下:
在这里插入图片描述

考虑空气阻力的模型

考虑空气阻力的模型将空气阻力与火箭的飞行速度进行了联系,得到了如下表达式
( m 0 − r t ) x ¨ = F − k x ˙ 2 − ( m 0 − r t ) g , 0 ⩽ t ⩽ t 1 , t 1 = m 1 / r , x ( 0 ) = x ˙ ( 0 ) = 0 ( m 0 − m 1 ) x ¨ = − k x ˙ 2 − ( m 0 − m 1 ) g , t 1 < t ⩽ t 2 \begin{array}{c} \left(m_{0}-r t\right) \ddot{x}=F-k \dot{x}^{2}-\left(m_{0}-r t\right) g, 0 \leqslant t \leqslant t_{1}, t_{1}=m_{1} / r, x(0)=\dot{x}(0)=0 \\ \left(m_{0}-m_{1}\right) \ddot{x}=-k \dot{x}^{2}-\left(m_{0}-m_{1}\right) g, t_{1}<t \leqslant t_{2} \end{array} (m0rt)x¨=Fkx˙2(m0rt)g,0tt1,t1=m1/r,x(0)=x˙(0)=0(m0m1)x¨=kx˙2(m0m1)g,t1<tt2
将第一个式子改写
在这里插入图片描述
以此为基础建立模型,绘制对应图像

4.代码内容复现

时间原因,直接进行代码的书写

不考虑空气阻力

根据已知的内容计算可得到的具体值,在后续代码的书写当中直接代入

import numpy as np
m0=1600
F=27000
m1=1080
r=18
t1=60.0
g=9.8
v1=-g*60+(F/r)*np.log(m0/(m0-r*60))
x1=-1/2*g*60**2+F*(m0-r*60)*(np.log(m0-r*60)-1)/r**2+((F*np.log(m0))*60)/r-F*m0*(np.log(m0)-1)/r**2
print(v1)
print(x1)
1097.8951449785993
23656.36247839604
#不考虑空气阻力下的方程
from scipy.integrate import odeint
from scipy.integrate import solve_ivp
import numpy as np
import pylab as plt
import math
m0=1600
F=27000
m1=1080
r=18
t1=60.0
g=9.8
t=np.linspace(0,200,200)
v=[]
x=[]
a=[]
for i in range(0,200):if t[i]<=60:a=np.hstack([a,-g+F/(m0-r*t[i])])v=np.hstack([v,-g*t[i]+(F/r)*np.log(m0/(m0-r*t[i]))])x=np.hstack([x,-1/2*g*t[i]**2+F*(m0-r*t[i])*(np.log(m0-r*t[i])-1)/r**2+((F*np.log(m0))*t[i])/r-F*m0*(np.log(m0)-1)/r**2])else:a=np.hstack([a,-g])v=np.hstack([v,-g*(t[i]-t1)+v1])x=np.hstack([x,-1/2*g*(t[i]-t1)**2+v1*(t[i]-t1)+x1])# k=0.3
plt.figure(figsize=(10,4))
plt.subplot(131)
plt.plot(t,x[:])
plt.xlabel('$t$')
plt.ylabel('$x(t)$')plt.subplot(132)
plt.plot(t,v[:])
plt.xlabel('$t$')
plt.ylabel('$v(t)$')plt.subplot(133)
plt.plot(t,a[:])
plt.xlabel('$t$')
plt.ylabel('$a(t)$')plt.show()

请添加图片描述

考虑空气阻力模型

使用到的是scipy.integrate当中的odeint进行计算

from scipy.integrate import odeint
from scipy.integrate import solve_ivp
import numpy as np
import pylab as plt
from sympy import symbols,diff
k=0.3
m0=1600
F=27000
m1=1080
r=18
t1=m1/r
g=9.8
def dx(x,t):x1,x2=xif t<60:return [x2,-g+(F-k*x2**2)/(m0-r*t)]elif t>=60:return [x2,-g-(k*x2**2)/(m0-m1)]# dz=lambda z,t:[z[1],-g+(F-k*z[1]**2)/(m0-r*t)]
t=np.linspace(0,80,1000)
x0=[0,0]
# solve=odeint(dz,[0,0],t)
solve=odeint(dx,x0,t)
# result=solve_ivp(dz,[0,60],[0,0],method='RK45',t_eval=None)
# plt.re('text',usetex=True)
time = np.array(t) # 时间数据
velocity = np.array(solve[:,1]) # 速度数据# 计算时间间隔
dt = time[1:] - time[:-1]# 使用中心差分法计算加速度
acceleration = np.zeros_like(velocity)
acceleration[1:-1] = (velocity[2:] - velocity[:-2]) / (2 * dt[1:])# 处理边界条件
acceleration[0] = (velocity[1] - velocity[0]) / dt[0]
acceleration[-1] = (velocity[-1] - velocity[-2]) / dt[-1]#print(acceleration)
#print(np.size(acceleration))
plt.figure(figsize=(14,4))
plt.subplot(131)
plt.plot(t,solve[:,0])
plt.xlabel('$t$')
plt.ylabel('$s(t)$')
plt.subplot(132)
plt.plot(t,solve[:,1])
plt.xlabel('$t$')
plt.ylabel('$v(t)$')
plt.subplot(133)
plt.plot(t,acceleration)
plt.xlabel('$t$')
plt.ylabel('$a(t)$')
plt.show()

请添加图片描述

相关文章:

姜启源数学模型第五版第五章火箭发射升空

姜启源数学模型第五版第五章例题内容复现 数学建模背景1.学习内容火箭发射升空理论知识 2.例题3.问题分析不考虑空气阻力的模型考虑空气阻力的模型 4.代码内容复现不考虑空气阻力考虑空气阻力模型 数学建模背景 首先先简单的介绍数学建模是一个怎么样的内容 数学建模是一种将数…...

局域网中电脑共享文件给手机

学习资源&#xff1a; 局域网共享&#xff1a;这样设置&#xff0c;你可以轻松拷贝任何电脑的文件。_哔哩哔哩_bilibili 可以实现什么效果&#xff1f; 连接同一个WIFI&#xff0c;电脑端为服务端&#xff0c;提供共享文件&#xff0c;手机是客户端&#xff0c;可以读取服务端…...

线段树练习

P1198 [JSOI2008] 最大数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) // Problem: P1198 [JSOI2008] 最大数 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P1198 // Memory Limit: 128 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://c…...

Mybatis映射.动态sql.分页

介绍&#xff1a; 动态SQL是MyBatis提供的一种动态生成SQL语句的方式&#xff0c;可以根据不同的条件生成不同的SQL语句&#xff0c;从而实现更加灵活的查询和操作。 在MyBatis的映射文件中&#xff0c;可以通过使用if、choose、when、otherwise、foreach等标签来实现动态SQL…...

springboot向resources下写文件的两种方式

文章目录 方式一&#xff1a;方式二&#xff1a; 方式一&#xff1a; import java.io.File; import java.io.FileWriter; import java.io.IOException;public class WriterFileUtils {private static final String prefix "classpath:";public static void writeFi…...

Sloare flare网卡信息

详细的安装信息 https://github.com/Xilinx-CNS/onload/tree/master/scripts 进行下载 Solarflare网卡开发&#xff1a;openonload 安装与调试_openonload安装_Erice_s的博客-CSDN博客 cns-sfnettest测试 cns-sfnettest 下载 https://github.com/Xilinx-CNS/cns-sfnettes…...

Redis知识点整理

第一部分&#xff1a;Redis基础知识点 1、数据类型 5种常用基础类型&#xff1a;string,hash,list,set,zset – 字符串&#xff0c;Hash表&#xff0c;List顺序集合&#xff0c;Set无序集合&#xff0c;ZSet有序集合3中特殊类型&#xff1a;bitmap-字节地图, hyperloglog-统计…...

React笔记(一)初识React

一、React概述 1、什么是react react的官网:React 用于构建用户界面的 JavaScript 库&#xff0c;它也是一个渐进式的用于构建用户界面的javascript框架 2、主要特征 声明式&#xff1a;使用原生JS编写的页面存在着开发效率低下、性能较差的情况&#xff0c;使用react大家就…...

C语言——指针进阶(一)

目录 ​编辑 一.字符指针 1.1 基本概念 1.2 面试题 二.指针数组 三.数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 3.3 数组指针的使用 四.数组参数、指针参数 4.1 一维数组传参 ​编辑 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 ​编辑 五.…...

【ArcGIS Pro二次开发】(62):复制字段

应网友需求&#xff0c;做了这么一个复制字段的小工具。 假定这样一个场景&#xff0c;手头有一个要素1&#xff0c;要素里有10个字段&#xff0c;另一个要素2&#xff0c;除了shape_area等图形字段外&#xff0c;没有其它字段。 现在的需求是&#xff0c;想把要素1中的8个字…...

【Tkinter系列02/5】界面初步和布局

本文是系列文章第二部分。前文见&#xff1a;【Tkinter系列01/5】界面初步和布局_无水先生的博客-CSDN博客 说明 一般来说&#xff0c;界面开发中&#xff0c;如果不是大型的软件&#xff0c;就不必用QT之类的实现&#xff0c;用Tkinter已经足够&#xff0c;然而即便是Tkinter规…...

2023年03月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;最佳路径 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 从三角形的顶部到底部有很多条不同的路径。对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;和最大的路径称为最佳路径。你的任务就是求出最佳路径上的…...

介绍一些编程语言— CSS 语言

介绍一些编程语言— CSS 语言 CSS 语言 简介 CSS&#xff0c;层叠样式表&#xff0c;是一种用来表现 HTML 或 XML 等文件样式的计算机语言。CSS 不仅可以静态地修饰网页&#xff0c;还可以配合各种脚本语言动态地对网页各元素进行格式化。 CSS 能够对网页中元素位置的排版进…...

一文讲清楚c/c++中的宏

一文讲清楚c/c中的宏 文章目录 一文讲清楚c/c中的宏一、如何理解这个“宏”字面的意思呢&#xff1f;二、c/c中的宏详解三、宏的使用场景 一、如何理解这个“宏”字面的意思呢&#xff1f; 在刚开始学习C语言的时候&#xff0c;始终有点分不清楚"宏"这个字面上的意思…...

typescript进阶语法

typescript进阶语法 interface 接口定义 interface userType {name:string,age:number,sex?:string }type接口定义 type userType {name:string,age:number,sex?:string } type userType username # 固定值写法 let user:userType age # 报错 只能等于usernamepick摘取…...

宝塔终端 查看 7003端口 占用 并且杀死

要查看端口是否被占用并杀死相关进程&#xff0c;你可以按照以下步骤执行&#xff1a; 打开宝塔面板&#xff0c;进入服务器管理页面。在左侧导航栏中选择「工具」&#xff0c;然后选择「终端」进入宝塔终端界面。输入以下命令查看端口占用情况&#xff1a;netstat -tuln | gr…...

可解释性的相关介绍

一、可解释性的元定义&#xff08;Meta-definitions of Interpretability&#xff09; The extent to which an individual can comprehend the cause of a model’s outcome. [1]The degree to which a human can consistently predict a model’s outcome. [2] 可解释性&am…...

AUTOSAR规范与ECU软件开发(实践篇)6.7 服务软件组件与应用层软件组件端口连接

在生成了BSW模块的代码后, 切换到ISOLAR-A系统级设计界面,会发现产生一些基础软件模块的服务软件组件: BswM、 ComM、 Det和EcuM等, 如图6.60所示。 图6.60 生成了BSW后的服务软件组件 此时, 如果涉及服务软件组件与应用层软件组件的交互, 就需要为应用层软件组…...

菜鸟教程《Python 3 教程》笔记(6):列表

菜鸟教程《Python 3 教程》笔记&#xff08;6&#xff09; 6 列表6.1 删除列表元素6.2 列表函数和方法6.2.1 max()、min()6.2.2 reverse()6.2.3 sort() 6 列表 出处&#xff1a; 菜鸟教程 - Python3 列表 6.1 删除列表元素 >>> list [Google, Runoob, 1997, 2000]…...

LeetCode-56-合并区间

题目描述&#xff1a; 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 可以使用 LinkedList&#xff0c;…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型&#xff0c;它将权限分配给角色&#xff0c;再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...