#python #numpy #matplotlib
#python #numpy #matplotlib
Вопрос:
Я продолжаю получать сообщения об ошибках, такие как недопустимый синтаксис или что-то не определено.
здесь я определил зависимости
import math #Basic math library
import numpy as np #Numpy -> tools for working with arrays
import matplotlib.pyplot as plt #Matplotlib -> tools for plotting
здесь я определил константы
#CONSTANTS
pi = math.pi
omega_n = 30
xi = 0.05
beta = 0.1
здесь я определил функции
O = (1/((1-beta**2)**2 (2*xi*beta)**2)) #Capital Omega defined above
omega_d = omega_n*np.sqrt(1-xi**2) #Damped natural frequency
A = (2*xi*beta*np.cos(omega_n*t)*math.e**(-xi* omega_n* t)
C = 2*omega_n*(xi**2)*beta*math.e**(-xi*omega_n*t)
D = (1-beta**2)*np.sin(omega_d*t)
E = -2*xi*beta*np.cos(omega_d*t)
tmax = 60 #(sec) The max time
delta_t = 0.001 #(sec) The timestep
nPoints = tmax/delta_t #Number of equally spaced data points
t = np.linspace(0,tmax, int(nPoints)) # Time vector
ut = O* (A omega_d C) #Transientresponse
us = O* (D E) #Steady-state response
rt= ut us
построение графика
#Plotting
fig = plt.figure()
axes = fig.add_axes([0.1,0.1,2,1.5])
axes.plot(t,rt,label='Respond ratio of a damped system')
axes.set_xlim([0,tmax])
axes.set_xlabel('Time (sec)')
axes.set_ylabel('Respond ratio')
axes.set_title('Respond ratio-time history')
axes.grid()
axes.legend()
plt.show()
Комментарии:
1. Пожалуйста, укажите, где именно вы получаете ошибки (какие строки) для каждой ошибки.
Ответ №1:
Здесь есть несколько ошибок. Во-первых, в этой строке отсутствует скобка:
A = (2*xi*beta*np.cos(omega_n*t)*math.e**(-xi* omega_n* t))
Затем вы используете переменную t
в той же строке, но вы еще не определили t
. Вы определяете t
после этой строки. Аналогично, вам необходимо определить tmax/delta_t
, прежде чем использовать их в nPoints