c语言解一维波动方程,python绘制一维波动方程(初学者)
我刚开始学习如何用Python编码.我有兴趣
>如何复制u [x,t]矩阵.我尝试返回u,这使我出错.
>如果此代码中for循环的位置正确并且可以正常运行.
>最重要的是,如何为该一维波方程制作动画,在其中我可以看到波是如何从高斯演化成并分裂成两个相同高度的波的.
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
dx=0.1 #space increment
dt=0.05 #time increment
tmin=0.0 #initial time
tmax=2.0 #simulate until
xmin=-5.0 #left bound
xmax=5.0 #right bound...assume packet never reaches boundary
c=1.0 #speed of sound
rsq=(c*dt/dx)**2 #appears in finite diff sol
nx = int((xmax-xmin)/dx) + 1 #number of points on x grid
nt = int((tmax-tmin)/dt) + 2 #number of points on t grid
u = np.zeros((nt,nx)) #solution to WE
#set initial pulse shape
def init_fn(x):
val = np.exp(-(x**2)/0.25)
if val<.001:>
return 0.0
else:
return val
for a in range(0,nx):
u[0,a]=init_fn(xmin+a*dx)
u[1,a]=u[0,a]
#simulate dynamics
for t in range(1,nt-1):
for a in range(1,nx-1):
u[t+1,a] = 2*(1-rsq)*u[t,a]-u[t-1,a]+rsq*(u[t,a-1]+u[t,a+1])
# Where is the code that is needed to run the simulation?
我看到一些动画代码对我来说太复杂了.有人可以帮我解决上面提到的问题吗?谢谢!
解决方法:
在文件末尾执行以下操作:
fig = plt.figure()
plts = [] # get ready to populate this list the Line artists to be plotted
plt.hold("off")
for i in range(nt):
p, = plt.plot(u[i,:], 'k') # this is how you'd plot a single line...
plts.append( [p] ) # ... but save the line artist for the animation
ani = animation.ArtistAnimation(fig, plts, interval=50, repeat_delay=3000) # run the animation
ani.save('wave.mp4') # optionally save it to a file
plt.show()
这是mp4的gif:
标签:matplotlib,animation,waveform,python,numpy
来源: https://codeday.me/bug/20191121/2049615.html
c语言解一维波动方程,python绘制一维波动方程(初学者)相关推荐
- 层次聚类python_用python绘制层次聚类图
层次聚类(Hierarchical clustering)代表着一类的聚类算法,这种类别的算法通过不断的合并或者分割内置聚类来构建最终聚类. 聚类的层次可以被表示成树(或者树形图(dendrogram ...
- python 读取图片转换为一维向量_对Python中一维向量和一维向量转置相乘的方法详解...
对Python中一维向量和一维向量转置相乘的方法详解 在Python中有时会碰到需要一个一维列向量(n*1)与另一个一维列向量(n*1)的转置(1*n)相乘,得到一个n*n的矩阵的情况.但是在pyth ...
- python画三维平面-Python 绘制酷炫的三维图步骤详解
通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...
- 用python绘制漂亮的图形-用python绘制图形的实例详解
1.环境系统:windows10 python版本:python3.6.1 使用的库:matplotlib,numpy 2.numpy库产生随机数几种方法import numpy as npnumpy ...
- python画动图-Python绘制动态水球图过程详解
先来看看绘制的动态水球图: 没有安装PyEcharts的,先安装PyEcharts: # 安装pyecharts模块,直接安装就是最新的版本pip install pyecharts 安装好PyEch ...
- python怎么画条形图-python绘制条形图方法代码详解
1.首先要绘制一个简单的条形图 import numpy as np import matplotlib.pyplot as plt from matplotlib import mlab from ...
- python绘制简单直方图-python plotly绘制直方图实例详解
python plt怎么绘制直方图 # /usr/bin/python# -*- coding: utf-8 -*-import numpy as npfrom matplotlib import p ...
- r语言ggplot2 多线图绘制图例_plotnine: Python版的ggplot2作图库
腾讯课堂 | Python网络爬虫与文本数据分析 同样的基本作图任务,plotnine比matplotlib和seaborn代码量少,更美观.所以我又重新发一遍,大家可以先收藏起来,后面总有用到的时候 ...
- Opencv一维直方图的绘制
下面是我参考<opencv3编程入门>写的绘制一维直方图的代码 using namespace cv; using namespace std; #define byte uchar #d ...
最新文章
- Exchange 2013学习(二),关于约会、会议和事件
- Activity栈管理(二):Launch Mode
- Java解析HTML
- python线程join
- Spring RestTemplate中几种常见的请求方式
- CAN词典 - CANdictionary
- SCOI2020游记
- Scikit-learn 秘籍 第三章 使用距离向量构建模型
- AFTER触发器与INSTEAD OF触发器的区别
- python中%s是什么意思_python中的%s%是什么意思
- eclipse jar打包 jar line too long 异常处理方法
- igs无法分配驱动器映射表_左神算法基础:哈希函数和哈希表
- TeamTalk 配置模块详解
- 搜索引擎优化(step-by-step)
- excel怎么录入身份证号码快速方便?
- 算力进化!新华三打造“一体·两中枢”全新智慧计算体系
- mysql汉字转拼音首字母_一个效率很高的汉字转拼音首字母的函数
- 安卓手机屏幕分辨率怎么调整
- ag-grid 学习
- vm中装linux换iso文件报错该光盘无法被挂载,虚拟机VMware下安装RedHat Linux 9.0 图解教程...
热门文章
- java 空语句_Java空语句怎么写才正确?这样的Java基础知识才是你需要的
- hadoop 开启防火墙_Hadoop部署一Hadoop安装
- windows2003 服务器安全配置的建议
- 青云服务器安全设置器2.3最新版版提供下载
- QT-QT简介,QT环境与工具链(day1)
- 13.jQuery选择器
- Luogu P3251 [JLOI2012]时间流逝 期望dp
- jsp+servlet+mysql增删改查
- sql server转oracle需要注意的几点
- JNI错误记录--JNI程序调用本地库时JVM崩溃