首页 > 解决方案 > 如何修复此语法错误?活塞位置

问题描述

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

感谢您对这个问题的任何帮助!谢谢你。

标签: pythonnumpymatplotlib

解决方案


解析器很困惑,因为你离开了右括号)~

def piston_position (t, r1, l):
    return (r1 * np.cos(t) + ((l**2) - (r1**2) * (np.sin(t)**2)**0.5))

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


推荐阅读