Начинающий программист пытается построить уравнение в python - PullRequest
0 голосов
/ 10 апреля 2020

enter image description here

Учитывая это уравнение для отклонения луча, меня просят построить его, но я продолжаю получать это сообщение об ошибке:

Вот мой код:

import math
import matplotlib.pyplot as plt
import scipy.constants
import numpy as np

p_l = 2.5
E = 50000
I = 30000
L = 600

fsy = 6
fsx = scipy.constants.golden

dx = 0.01
x_max = 100
x = np.arange(0.0, x_max + dx, dx)

v_x = ((p_l)/(E*I*L))*((-x**5)+(2(600**2)*(x**3))-(600**4)*x)

fig = plt.figure(figsize = (fsx, fsy))

plt.plot(x, v_x, color = 'k', linestyle = '-', linewidth = 2.0, marker = '.')

plt.title("Plot of v(x)", fontsize=15)
plt.xlabel(" ($s$)")
plt.ylabel("$y$ ($m$)")
plt.ylim(-105, 105)
plt.legend()
plt.show()

и вот сообщение об ошибке, которое я продолжаю получать:

TypeError                                 Traceback (most recent call last)
<ipython-input-37-4d6b17714a72> in <module>
     18 x = np.arange(0.0, x_max + dx, dx)
     19 
---> 20 v = ((p_l)/(E*I*L))*((-x**5)+(2(600**2)*(x**3))-(600**4)*x)
     21 
     22 fig = plt.figure(figsize = (fsx, fsy))

TypeError: 'int' object is not callable

Пожалуйста, помогите, если можете! Высоко ценится

1 Ответ

0 голосов
/ 10 апреля 2020

В Python вам нужно добавить символ * при умножении. Добавьте это между 2 и 600**2. Как показано ниже!

(2*(600**2)

v_x = ((p_l)/(E*I*L))*((-x**5)+(2*(600**2)*(x**3))-(600**4)*x)

Надеюсь, это поможет! Берегите себя!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...