Базовый Python: уравнение и график с использованием Jupyter Notebook не работают

#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