Для последней части моего кода мне нужно вывести максимальную скорость и угол, под которым скорость максимальна, но мы не можем использовать функцию max.Пока мой код:
#This program calculates and plots the position and velocity of a piston
import numpy as np
import matplotlib.pyplot as plt
def piston_position(r,l,a):
#input: r = radius (cm), l = length (cm), a = angle (radians)
#output: x = position (cm)
x = (r * np.cos(a) + ((l**2) - (r**2) * (np.sin(a)**2)**0.5))
return x
def piston_velocity (r, l, a, w):
#input: r = radius (cm), l = length (cm), a = angle (radians), w = angular velocity (radians/seconds)
#output: v = velocity (cm/s)
v = (-r * w * np.sin(a) - ((r**2 * w * np.sin(a) * np.cos(a))/((l**2 - r**2 *np.sin(a)**2)**0.5)))
return v
a = np.linspace(0,360,30)
x1 = piston_position(3,15,a)
v1 = piston_velocity(3,15,a,100)
x2 = piston_position(5,15,a)
v2 = piston_velocity(5,15,a,100)
plt.figure(1)
plt.subplot(211)
plt.plot(a,x1, 'b^--', label ='r=3cm', mfc = 'r', color = "black")
plt.plot(a,x2, 'bs--', label ='r=5cm', mfc = 'b', color = "black")
plt.title ("Subplot for Position")
plt.ylabel ("Position (cm)")
#plt.xlabel ("Angle (degrees)") --- Note: caused an overlap in text
plt.legend()
plt.subplot(212)
plt.plot(a,v1, 'b^--', label ='r=3cm', mfc = 'r', color = "black")
plt.plot(a,v2, 'bs--', label ='r=5cm', mfc = 'b', color = "black")
plt.title ("Subplot for Velocity")
plt.ylabel ("Velocity (cm/s)")
plt.xlabel ("Angle (degrees)")
plt.legend()
plt.show()
a3 = np.array(a)
v3 = sorted(piston_velocity(3,15,a3,100))
v4 = piston_velocity(5,15,a3,100)
for i in range(0,len(v3)):
print((int(a3[i])),int(v3[i]))
Имея код, который я имею, я возвращаю все значения углов и скорости, и я не уверен, как вывести только максимальную скорость с соответствующим углом.
Iцени помощь!