Untitled
unknown
plain_text
2 years ago
1.1 kB
13
Indexable
import numpy as np
# inputs
a=float(input())
b=float(input())
sn=int(input())
#a=np.random.uniform(5,20)
#b=np.random.uniform(2,10)
#a=1
#b=1
#sn=3
R = 1
dt = 10**-4
t = np.arange(-np.pi/2, np.pi/2, dt)
x = R*np.sin(t)
y = -R*np.cos(t)
dx = np.gradient(x, dt)
dy = np.gradient(y, dt)
#q1
Fx1 = a * np.cos(np.pi/6)
Fy1 = a * np.sin(np.pi/6)
#q2
Fx2 = b*y/R
Fy2 = -b*x/R
#q3
Fx3 = -a * y**2
Fy3 = b * x**3 * y
#q4
x_R = np.linspace(-R, R, int(2/dt))
y_R = np.zeros_like(x_R)
dx_R = np.gradient(x_R, dt)
dy_R = np.gradient(y_R, dt)
Fx4 = -a * y_R**2
Fy4 = b * x_R**3 * y_R
W1 = np.sum(Fx1*dx*dt + Fy1*dy*dt)
W2 = np.sum(Fx2*dx*dt + Fy2*dy*dt)
W3 = np.sum(Fx3*dx*dt + Fy3*dy*dt)
W4 = int(np.sum(Fx4*dx_R*dt + Fy4*dy_R*dt))
#q5
F_conservative = (3 * b**2 * y) + (2 * a * y)
if np.allclose(F_conservative, 0):
ans5 = 1
elif not np.allclose(F_conservative, 0):
ans5 = 2
else:
ans5 = 3
if sn==1:
print(W1)
elif sn==2:
print(W2)
elif sn==3:
print(W3)
elif sn==4:
print(W4)
elif sn==5:
print(ans5)
Editor is loading...
Leave a Comment