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

news2024/9/25 19:24:09

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

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

请添加图片描述

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

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

相关文章

各种文件类型

1.配置文件 json app.json 是当前⼩程序的全局配置&#xff0c;包括了⼩程序的所有⻚⾯路径、界⾯表现、⽹络超时时间、底 部 tab 等。 普通快速启动项⽬ ⾥边的 app.json 字段的含义 1. pages 字段⸺⽤于描述当前⼩程序所有⻚⾯路径&#xff0c;这是为了让微信客⼾端知道…

NIO原理浅析(一)

IO简介 摘抄了下维基百科对IO的定义&#xff0c;Input/Output&#xff0c;输入和输出&#xff0c;通常指数据在存储器或者其他周边设备之间的输出和输入&#xff0c;输入是系统接收到信号或者数据&#xff0c;输出则是从系统发送的信号或数据。 Java IO 读写原理 Java中文件…

shell邮件发送脚本

先上整体代码 text.sh #!/bin/bash# 设置收件人邮箱 to"123456qq.com"# 设置发件人邮箱 from"21331qq.com"# 设置邮件主题 subject"Test Email"# 设置邮件内容 body"This is a test email."# 发送邮件 echo "${body}" | m…

运动耳机啥样的好用、最适合运动用的耳机推荐

在进行运动时&#xff0c;倾听音乐实际上是一种放松大脑、放松身体的小技巧。毕竟运动是一个耗费体力最多的活动&#xff0c;整个过程也往往令人感到乏味。如果有音乐作伴&#xff0c;你的运动就会变得更加轻松愉快。那么&#xff0c;哪种耳机适合运动呢&#xff1f;我正好对此…

气传导蓝牙耳机哪款好?好用的气传导耳机爆款推荐

​普通入耳式耳机戴久了容易诱发局部炎症。为了防止这些问题&#xff0c;不入耳耳机才是更好选择&#xff0c;不会滋生细菌、不会闷耳&#xff0c;那么&#xff0c;市面上都有哪些好用的气传导耳机呢&#xff1f;下面我为大伙带来最值得入手的气传导耳机&#xff0c;一起来看看…

【InsCode】InsCode打造的JavaSE与Linux命令互融的伪Linux文件系统小项目

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Ja…

初始Netty

文章目录 目录 文章目录 前言 一、netty 总结 前言 认识netty 一、netty Netty是一个基于Java的高性能网络应用框架&#xff0c;用于快速开发可扩展的网络服务器和客户端。它提供了易于使用的抽象API&#xff0c;使开发人员能够轻松地构建各种网络应用程序&#xff0c;包括…

U盘被分成了4个盘要怎么合并

原来是做为系统盘的&#xff0c;然后有一大概小半年没用&#xff0c;今天一看它自己分成了四个盘。 并且我一插入电脑就提示我格式化 其实根本不需要任何工具&#xff0c;操作前最好把U盘数据备份一下 首先把你的U盘插在电脑上 方法一 U盘被分成四个分区的原因有以下几种可…

Spring Cloud Alibaba-实现服务调用的负载均衡

1. 什么是负载均衡 通俗的讲&#xff0c; 负载均衡就是将负载&#xff08;工作任务&#xff0c;访问请求&#xff09;进行分摊到多个操作单元&#xff08;服务器,组件&#xff09;上进行执行。 根据负载均衡发生位置的不同,一般分为服务端负载均衡和客户端负载均衡。 服务端负…

一篇文章带你学好--->Git(超详细)

Git的详解与使用&#xff0c;一篇文章带你学习好git, ,Git是当前比较流行的版本控制工具 &#xff0c;它具有分布式的功能 &#xff0c;有助于我们在团队开发中提高开发效率 注意&#xff1a;敲黑板&#xff01;&#xff01;&#xff01; 带领你去使用git 配有图文解释 超详细 …

英文论文 | 学术写作 | 避免机翻 | 科研人

因为自己之前完成了几篇英文论文&#xff0c;最近在大修一篇&#xff0c;所以对英文论文写作这块有一些感悟&#xff0c;想跟大家分享下&#xff0c;肯定会有不恰当的地方&#xff0c;也希望大家能够在评论区指出&#xff0c;共同进步&#xff5e; 1 直接写英文&#xff0c;避免…

673. 最长递增子序列的个数

673. 最长递增子序列的个数 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;方法一&#xff1a;动态规划方法二&#xff1a;贪心 前缀和 二分查找 参考代码&#xff1a;__673最长递增子序列的个数__动态规划__673最长递增子序列的个数__贪心_前缀和_二分查找…

如何在测试和预发环境下调试支付宝微信小程序的h5

微信 开发者工具调试 1、使用开发者工具打开 2、点击蜘蛛形状的小图标&#xff0c;就会出现调试页面 支付宝 真机调试 下载 1、工具下载&#xff1a;蚂蚁开发者工具&#xff08;支付宝小程序开发者工具&#xff09;&#xff1a; 蚂蚁开发者工具官方下载_蚂蚁开发者工具最…

港联证券|指数或进入磨底阶段 短期关注环保、煤炭等板块

磨底历来都不是一天能达到的&#xff0c;比方2018年的政策底到商场底&#xff0c;半途也阅历两个多月时间。当下政策底出现之后至今也有近一个月时间&#xff0c;并且下跌量能不断缩短&#xff0c;心情面也降至冰点&#xff0c;种种迹象阐明离真正商场底的构成已经不远了。此时…

【Java】树结构SQL数据的如何去实现搜索

这里写自定义目录标题 需要实现的效果前端需要的json格式&#xff1a;一定是一个完整的树结构错误错误的返回格式错误的返回格式实现的效果 正确正确的返回格式正确的展示画面 后端逻辑分析代码总览 数据库表结构 需要实现的效果 前端需要的json格式&#xff1a;一定是一个完整…

LinkedList的顶级理解

目录 1.LinkedList的介绍 LinkedList的结构 2.LinkedList的模拟实现 2.1创建双链表 2.2头插法 2.3尾插法 2.4任意位置插入 2.5查找关键字 2.6链表长度 2.7遍历链表 2.8删除第一次出现关键字为key的节点 2.9删除所有值为key的节点 2.10清空链表 2.11完整代码 3.…

PowerJob容器的使用(创建一个外置动态加载的任务)

1.使用容器的模板生成功能 2. 解压导入到IDEA中&#xff0c;下载依赖&#xff0c;添加处理器 3. 打包成jar 4. 上传项目到容器 5. 启动容器--部署jar 6. 复制一份上篇文章写的测试单机执行的任务实例&#xff0c;把执行配置修改从外置&#xff08;动态加载&#xff09; &…

scratch计算圆的面积和周长 2023年5月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch计算圆的面积和周长 一、题目要求 1、准备工作 2、功能实现 二、案例分析

vue 简单实验 自定义组件 传参数 props

1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"todo-list-app"><todo-item v-bind:todo"todo1"></todo-item> </div> <script> const ListR…

IIS短文件泄漏漏洞修改

升级netFramework至4.0以上版本 2.关闭Web服务扩展- ASP.NET&#xff08;不使用的可以关闭&#xff09; 3.CMD关闭NTFS 8.3文件格式的支持&#xff08;1代表关闭&#xff0c;0代表开启&#xff09; 不同系统关闭命令稍有区别&#xff0c;该功能默认是开启的&#xff0c;对于大多…