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

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

  • 数学建模背景
  • 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=x
    if 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()

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

时序预测 | MATLAB实现SSA-XGBoost(麻雀算法优化极限梯度提升树)时间序列预测

时序预测 | MATLAB实现SSA-XGBoost(麻雀算法优化极限梯度提升树)时间序列预测 目录 时序预测 | MATLAB实现SSA-XGBoost(麻雀算法优化极限梯度提升树)时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实现SSA-XGBoost时间序列预测&#xff0c;麻…

老胡的周刊(第105期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 Piwigo[2] Piwigo 是一个开源的网络照片库软…

iOS App逆向之:iOS应用砸壳技术

在iOS逆向&#xff0c;有一项关键的技术叫做“iOS砸壳”&#xff08;iOS App Decryption&#xff09;。自iOS 5版本以来&#xff0c;苹果引入了应用程序加密机制&#xff0c;使得大部分应用都需要进行砸壳操作才能进行逆向分析。因此作为开发者、逆向工程师和安全研究人员都需要…

Wireshark流量分析例题

目录 前言 一、题目一(1.pcap) 二、题目二(2.pcap) 三、题目三(3.pcap) 四、题目四(4.pcap) 前言 Wireshark流量包分析对于安全来说是很重要的&#xff0c;我们可以通过Wireshark来诊断网络问题&#xff0c;检测网络攻击、监控网络流量以及捕获恶意软件等等 接下来我们…

OpenCV基础知识(9)— 视频处理(读取并显示摄像头视频、播放视频文件、保存视频文件等)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。OpenCV不仅能够处理图像&#xff0c;还能够处理视频。视频是由大量的图像构成的&#xff0c;这些图像是以固定的时间间隔从视频中获取的。这样&#xff0c;就能够使用图像处理的方法对这些图像进行处理&#xff0c;进而达到…

Vue 中hash 模式与 history 模式的区别

hash 模式&#xff1a; - 地址中永远带着 # 号&#xff0c;不美观。 - 兼容性比较好。 - 通过手机 app 分享地址时&#xff0c;如果 app 效验严格&#xff0c;该地址会被标记为不合法。 history 模式&#xff1a; - 地址干净&#xff0c;美观。 - 兼容性和 hash 模式相比…

Hadoop入门机安装hadoop

0目录 1.Hadoop入门 2.linux安装hadoop 1.Hadoop入门 定义 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下&#xff0c;开发分布式程序。充分利用集群的威力进行高速运算和存储。 优势 高可靠性&#xff1a;Hadoop底层维护多…

校招算法题实在不会做,有没有关系?

文章目录 前言一、校招二、时间复杂度1、单层循环2、双层循环 三、空间复杂度四、数据结构五、校招算法题实在不会做&#xff0c;有没有关系&#xff1f;六、英雄算法集训 前言 英雄算法联盟八月集训 已经接近尾声&#xff0c;九月算法集训将于 09月01日 正式开始&#xff0c;目…

项目经理——任劳任怨的“背锅侠”

很多人可能觉得项目经理在工作中只需要动动嘴皮子&#xff0c;然后跟其他关系人搞好关系就行了&#xff0c;但是其实他们负责整个项目的规划、执行和交付&#xff0c;是整个项目顺利进行的关键。然而&#xff0c;在项目中面临着各种各样的挑战和压力。那么&#xff0c;作为项目…

MyBatis之动态sql

目录 一、MyBatis动态sql 1.1 是什么 1.2 作用 1.3 优点 1.4 特殊标签 1.5 代码演示 二、#和$的区别 2.1 #使用 2.2 $使用 2.3 综合 2.4 代码演示 三、resultType与resultMap的区别 3.1 关于resultType 3.2 关于resultMap 3.3 两者区别 3.4 代码演示 一、MyBati…

【JavaEE基础学习打卡06】JDBC之进阶学习PreparedStatement

目录 前言一、PreparedStatement是什么二、重点理解预编译三、PreparedStatement基本使用四、Statement和PreparedStatement比较1.PreparedStatement效率高2.PreparedStatement无需拼接参数3.PreparedStatement防止SQL注入 总结 前言 &#x1f4dc; 本系列教程适用于JavaWeb初学…

StableVideo:使用Stable Diffusion生成连续无闪烁的视频

使用Stable Diffusion生成视频一直是人们的研究目标&#xff0c;但是我们遇到的最大问题是视频帧和帧之间的闪烁&#xff0c;但是最新的论文则着力解决这个问题。 本文总结了Chai等人的论文《StableVideo: Text-driven consistency -aware Diffusion Video Editing》&#xff…

【Java集合学习1】ArrayList集合学习及集合概述分析

JavaArrayList集合学习及集合学习概述 一、Java集合概述 Java 集合&#xff0c; 也叫作容器&#xff0c;主要是由两大接口派生而来&#xff1a;一个是 Collection接口&#xff0c;主要用于存放单一元素&#xff1b;另一个是 Map 接口&#xff0c;主要用于存放键值对。对于Col…

Kubernetes(K8S)使用PV和PVC做存储安装mysql

Kubernetes使用PV和PVC做存储安装mysql 环境准备什么是PV和PVC环境准备配置nfs安装nfs配置nfs服务端 创建命名空间配置pv和pvcpv的yaml文件pvc的yaml文件 部署mysql创建mysql的root密码的secret创建mysql部署的yaml部署mysql链接mysql外部链接内部链接 环境准备 首先你需要一个…

Feign在实际项目中使用详解

Feign在实际项目中使用详解 简介一 Feign客户端应该如何提供&#xff1f;二 Feign调用的接口要不要进行包装&#xff1f;2.1.问题描述2.2.问题解决 三 Feign如何抓取业务生产端的业务异常&#xff1f;3.1.分析3.2.Feign捕获不到异常3.3.异常被额外封装3.4.解决方案 案例源码 简…

4.网络设计与redis、memcached、nginx组件(一)

网络组件系列文章目录 第四章 网络设计与redis、memcached、nginx组件 文章目录 网络组件系列文章目录文章的思维导图前言一、网络相关的问题&#xff0c;网络开发中要处理那些问题&#xff1f;网络操作IO连接建立连接断开消息到达消息发送网络操作IO特性 二、网络中IO检测IO函…

springboot整合rabbitmq死信队列

springboot整合rabbitmq死信队列 什么是死信 说道死信&#xff0c;可能大部分观众大姥爷会有懵逼的想法&#xff0c;什么是死信&#xff1f;死信队列&#xff0c;俗称DLX&#xff0c;翻译过来的名称为Dead Letter Exchange 死信交换机。当消息限定时间内未被消费&#xff0c;…

上门服务系统|上门服务小程序如何提升生活质量?

上门服务其实就是本地生活服务的升级&#xff0c;上门服务包含很多行业可以做的。例如&#xff1a;厨师上门、上门家电维修、跑腿等等。如今各类本地化生活服务越来越受大家的喜爱。基于此市场愿景&#xff0c;我们来谈谈上门服务系统功能。 一、上门服务系统功能 1、预约服务…

Go 第三方库引起的线上问题、如何在线线上环境进行调试定位问题以及golang开发中各种问题精华整理总结

Go 第三方库引起的线上问题、如何在线线上环境进行调试定位问题以及golang开发中各种问题精华整理总结。 01 前言 在使用 Go 语言进行 Web 开发时&#xff0c;我们往往会选择一些优秀的库来简化 HTTP 请求的处理。其中&#xff0c;go-resty 是一个被广泛使用的 HTTP 客户端。…

Jetpack Compose UI架构

Jetpack Compose UI架构 引言 Jetpack Compose是我职业生涯中最激动人心的事。它改变了我工作和问题思考的方式&#xff0c;引入了易用且灵活的工具&#xff0c;几乎可轻松实现各种功能。 早期在生产项目中尝试了Jetpack Compose后&#xff0c;我迅速着迷。尽管我已有使用Co…