我正在尝试对多种类型的阻尼进行振动放大系数的3D绘图。为了让那些不知道它是什么的人简化问题,基本上你有三个变量:
- beta,这个变量在0到无穷大之间变化,但是我想将其可视化为从0到3,在每0.2个间隔中。
- 阻尼比d,在0到无限范围内变化,但是我想在0到1的范围内以0.1的间隔绘制它。
- 最后一个变量nu,它是根据前两个变量变化的函数。
我的直觉告诉我应该用(X,Y,Z)=(beta,d,nu)绘制这个图表,但我刚开始使用这个库,对Python也不是很熟悉,只有在需要可视化或计算课堂问题时才会使用它。我尝试为beta和d创建了2个数组,但我不知道应该如何创建nu的数组,因为它取决于两者。
这是我现在拥有的代码片段:
import math
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
nu = []
b = [0.1 + i / 100 for i in range(0, 510)]
damp = [0.1 + i/10 for i in range(0,510)]
for d in damp:
nu_new = []
nu.append(nu_new)
for beta in b:
nu_new.append( math.sqrt(1+(2*d*beta)**2)/ math.sqrt((1-beta**2)**2+(2*d*beta)**2))
fig = plt.figure()
ax = Axes3D(fig)
ax.plot(b, d, nu)
plt.show()
我在试图绘制这个的过程中遇到了一些困难,如果你有任何建议,我会很高兴。