光孤子的程序,难道没有人用python做吗?会的帮帮我吧

光孤子示意图

自己瞎折腾,准备用python 试试做孤子脉冲的图

但是一下午就弄了一个示意图。色散长度的参数是错误的。但总算有图出来了,下一步慢慢改。特别得感谢这位博主的分享,他的是MATLAB代码
转自筹码°的博客。参考他的代码,修改的。只是尝试一下,多数是人家写的。我只改了一点点,试试Python的效果。

```python
import numpy as np

import mpl_toolkits.mplot3d
from  matplotlib import pyplot as plt
#from matplotlib import animation
from scipy.fftpack import fft,ifft
import matplotlib
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import LinearLocator, FormatStrFormatter

from pylab import *
#注意时间域与频域的选择问题
T = 40
#时间窗口
tn = 2 ** 10
# 时间区域个数(2 ^ M个)
dt = T/tn
#选择的时间步长  np.linspace(2,10,num=5,endpoint=False)
t = (np.linspace(1, tn)- (tn+1)/2)*dt
w = wn(T, tn)
#傅里叶域频率, 调用计算频率函数

b = 0.03
c = (-j*w**2)/2+j*b*w** 3
dz = 0.1
#迭代时选择的步长
#步长的选择影响计算效率
z = np.linspace(0, 101, dz)
print(z)
# 位置坐标

# 输入初始脉冲
u = np.cosh(t)/np.sinh(t)
print(u[0:])
#plt.plot(t,  abs(u))
#plt.show()


figure = plt.figure()

ax = Axes3D(figure)

X = t

#Y = t
Z=z
#网格化数据

X, Z = np.meshgrid(X, Y)


Y = abs(u)

ax.plot_surface(X,Y, Z ,  rstride=1, cstride=1, cmap='rainbow')

plt.show()


#*******************************************************************************************#

可能是步长问题,图怪怪的,看来还有很多巨大错误
可能是步长问题,图怪怪的,看来还有很多巨大错误,管他呢,总算是有图出现了。
搜索学了几种画法,都不行,只有这个也许将来能用,下一步把步长匹配好,进行迭代传输,我就算是把Python孤子的思路,基本理清了,但是迭代,需要分步处理矩阵,这里numpy的迭代处理方法还不会。

下面是又一个版本的画法。也许这个才是正确的方法。

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
fig=plt.figure()
ax=Axes3D(fig)
t=np.arange(-2,2,0.1)
print(t)
y=np.arange(1,20,1)
#生成网格点坐标矩阵。
t,y=np.meshgrid(t,y)
print(t)
print(y)
z=np.cosh(t)/np.sinh(t)*0.2

#绘制3D曲面
ax.plot_surface(t,y,abs(z[0:20,:]),rstride=2,cstride=2,cmap='rainbow')
# rstride(row)指定行的跨度  # cstride(column)指定列的跨度
#ax.view_init(elev=300,azim=300)
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬码工琪老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值