首页 > 编程语言 >python相平面 图形

python相平面 图形

时间:2024-10-04 19:44:22浏览次数:5  
标签:plt python np state odeint x2 平面 图形 x1

二阶非线性自治系统绘制相平面图。假设我们有一个简单的阻尼摆系统,其状态方程可以表示为:

\[ dx1/dt = x2 \\ dx2/dt = -cx2 - gsin(x1) \]


import numpy as np  
import matplotlib.pyplot as plt  
from scipy.integrate import odeint  
  
# 定义系统的状态方程  
def pendulum_eqs(state, t, c, g):  
    x1, x2 = state  
    dx1dt = x2  
    dx2dt = -c * x2 - g * np.sin(x1)  
    return [dx1dt, dx2dt]  
  
# 参数设置  
c = 0.2  # 阻尼系数  
g = 9.81 # 重力加速度  
  
# 初始条件  
initial_state = [np.pi/2, 0]  # 初始角度为π/2,初始速度为0  
  
# 时间设置  
t = np.linspace(0, 20, 10000)  # 从0到20秒,共10000个点  
  
# 使用odeint进行数值积分  
solution = odeint(pendulum_eqs, initial_state, t, args=(c, g))  
x1, x2 = solution.T  
  
# 绘制相平面图  
plt.figure()  
plt.plot(x1, x2, lw=0.5)  
plt.xlabel('Angle (radians)')  
plt.ylabel('Angular Velocity (rad/s)')  
plt.title('Phase Plane Plot of a Damped Pendulum')  
plt.grid(True)  
plt.axis('equal')  
plt.show()

image

标签:plt,python,np,state,odeint,x2,平面,图形,x1
From: https://www.cnblogs.com/redufa/p/18447176

相关文章

  • python 画向量图
    start_points和end_points数组分别表示向量的起点和终点。使用plt.quiver函数绘制向量(箭头)。plt.scatter用于绘制起点和终点(可选)。plt.legend添加图例。plt.title、plt.xlabel和plt.ylabel添加标题和轴标签。plt.grid(True)显示网格。plt.show()显示图像。im......
  • Python 高级编程:深入探索高级代码实践
    在Python编程的世界中,掌握高级概念和技术是提升编程能力的关键。本文将带领您深入探索Python的高级特性,通过实际的代码示例展示其强大之处。 1.装饰器(Decorators)装饰器是Python中非常强大的特性,它可以在不修改函数源代码的情况下,为函数添加额外的功能。以下是一个简单......
  • 【py】python实现矩阵的加、减、点乘、乘法
    好的,我将使用Python语言来解决这个问题。我们将使用NumPy库来创建数组和进行矩阵运算。以下是完整的代码:importnumpyasnp#(1)创建一个3x4的二维数组test1,数据值要求从0~1之间test1=np.random.rand(3,4)#(2)创建12个服从均匀分布的随机数,尺寸为3x4的二维数组t......
  • Python并发编程(2)——初始Python多线程
    左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。公众号:一点sir,关注领取python编程资料前言什么是多线程?为什么需要多线程?多线程的优点和缺点?...技术不是也不能成为空中楼阁,技术一定是要为需求服务的,什么有用,才去用什么。那么多线程对于编程人员来说,有用吗?肯......
  • Graphs in Python
    ProgrammingTask1:GraphsinPython[10%ofyourfinalmark]Deadline:Sunday6October2024,23:59 ThisisyourfirstprogrammingtaskofthismoduleisaboutgraphsandimplementingDijkstra’salgorithm.YouwillsubmitaSINGLEPYTHONFILE(main.py)......
  • 基于Python的自然语言处理系列(22):模型剪枝(Pruning)
            在深度学习领域,尤其是当模型部署到资源有限的环境中时,模型压缩技术变得尤为重要。剪枝(Pruning)是一种常见的模型压缩方法,通过减少模型中不重要的参数,可以在不显著降低模型性能的情况下提升效率。在本文中,我们将详细介绍如何在PyTorch中使用剪枝技术,并通过一些实......
  • 用python写一个脚本:将指定目录下及其所有子文件夹下的视频文件按中间时间切分成两部分
    代码:importosfrommoviepy.editorimportVideoFileClipdefsplit_video(video_path,output_dir):#加载视频文件clip=VideoFileClip(video_path)duration=clip.duration#计算中间时间点midpoint=duration/2#创建输出目录i......
  • Linux中 文字界面、X Window系统以及图形界面的关系
    Linux中文字界面、XWindow系统以及图形界面的关系在Linux系统中,文字界面(TTY)、XWindow系统(X11)以及图形界面(GUI)之间有明确的关系。下面分别解释它们的功能和相互之间的联系:1.文字界面(TTY)TTY(Teletypewriter)是Linux系统中的文本控制台。Linux系统默认提供了多个TTY,通常通过Ctr......
  • Linux磁盘爆满无法进入图形化界面解决方法
    Linux磁盘爆满无法进入图形化界面解决方法当Linux系统的磁盘空间满了之后,可能会导致系统的一些功能出现问题,包括无法进入图形化界面。以下是可能的原因:文件系统限制:Linux图形界面环境(如GNOME,KDE等)需要创建和读取大量的小文件来正常工作。如果磁盘空间不足,这些操作可能会失败,......
  • 2023-11-25 Matlab和Python在气象中的常用代码 180401
    目录画图横坐标添加月份PythonMatlab画图横坐标添加月份Pythonimportmatplotlib.pyplotaspltimportpandasaspdimportnumpyasnp#准备时间和温度数据start_date=pd.to_datetime('1996-12-01')#thenextdateend_date=pd.to_datetime('1998-12-01')#the......