如何解决此语法错误?活塞位置

时间:2018-10-16 00:15:59

标签: python numpy matplotlib

我正在尝试编写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()

非常感谢您提供有关此问题的帮助!谢谢。

1 个答案:

答案 0 :(得分:0)

由于您没有使用右括号)

,因此解析器感到困惑
def piston_position (t, r1, l):
    return (r1 * np.cos(t) + ((l**2) - (r1**2) * (np.sin(t)**2)**0.5))

这会导致python尝试理解下一个代码块,并将其作为数值公式的一部分。因此,它报告语法错误。