我正在尝试编写python代码以绘制以恒定角速度旋转的曲轴的活塞位置。等式:x = rcos(theta)+ sqrt(l ^ 2-(r ^ 2)(sin ^ 2(theta)))
到目前为止,我已将其写出:
import numpy as np
import matplotlib.pyplot as plt
def piston_position (t, r1, l):
return (r1 * np.cos(t) + ((l**2) - (r1**2) * (np.sin(t)**2)**0.5)
t = np.linespace(0,361,50)
y5 = piston_position(t,3,15)
plt.plot(t,y5)
plt.show()
我在t = np.linespace(0,361,50)上不断收到语法错误,说语法无效。我不确定为什么这是不正确的,因为在以前的代码中,相同的方法可以正常工作:
import numpy as np
import matplotlib.pyplot as plt
def yFall (t,v0,y0):
return (-9.8*t*t/2+v0*t+y0)
t = np.linspace(0,3,11)
y5 = yFall(t,5,30)
plt.plot(t,y5, 'b^--', mfc = 'r')
plt.title ("position")
plt.ylabel ("time")
plt.xlabel ("speed")
plt.show()
非常感谢您提供有关此问题的帮助!谢谢。
答案 0 :(得分:0)
由于您没有使用右括号)
〜
def piston_position (t, r1, l):
return (r1 * np.cos(t) + ((l**2) - (r1**2) * (np.sin(t)**2)**0.5))
这会导致python尝试理解下一个代码块,并将其作为数值公式的一部分。因此,它报告语法错误。