尝试绘制矩阵的列,但遇到一些错误

时间:2020-09-06 16:14:30

标签: python python-3.x loops matrix nested-loops

我正在尝试绘制系统的频率响应函数。在绘制不同阻尼值d和变化频率omega的幅度时,我遇到了一些困难。最后,我应该构造一个尺寸为600 * 9的矩阵tf。并且此tf的每一列都是针对omega绘制的。但是我在执行时遇到了一些错误。以下是我尝试执行的方法。

import matplotlib.pyplot as plt
import numpy as np
import sympy as sp
m = 1;
k = 1;
d = np.arange(0.1, 1, 0.1);
omegan = sp.sqrt(k/m);
omega = np.arange(-1, 5, 0.01);
s = sp.I*omega;
tf=np.zeros((len(omega), len(d)))

for p in range(0, len(omega)): 
    for q in range(0, len(d)): 
      tf[p,q]=(1/(m*omega[p])**2)/((((omegan/(omega[p]))**2)-1) + (sp.I*2*(d[q]))*(omegan/(omega[p])))
      
      
mag = np.abs(tf);      
np.shape(mag)

plt.plot(tf[:,1], omega, color='blue', linewidth=3)
plt.show()

0 个答案:

没有答案