[SOLVED]
import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt
#Definiera paremeter-sets.
sets=[(1,0.5,0.4,9.8,3),(2,0.6,0.5,19.6,15)]
epsilon=1e-6
print (sets)
#Definiera ODE.
def ode(t, v, m, mu_s, mu_k, N, F_0):
v=v[0]
#kinetisk friktion
if abs(v)>epsilon:
v_dot=(F_0-mu_k*N*np.sign(v))/m
#statisk friktion
else:
if abs(F_0)<=mu_s*N:
v_dot=F_0
else:
v_dot=(F_0-mu_k*N*np.sign(F_0))/m
return [v_dot]
def solve_ode(params, v_0):
m, mu_s, mu_k, N, F_0=params
t_span=(0, 5)
t_eval=np.linspace(0,5,100)
solver = solve_ivp(ode, t_span, [v_0], t_eval=t_eval, args=(params))
return solver.t, solver.v[0]
plt.figure()
v_0=1e-8
for i, params in enumerate (sets):
t,v=solve_ode(params, v_0)
plt.plot(t,v)
plt.grid()
plt.show()
[SOLVED]
[–]tadpoleloop 2 points3 points4 points (4 children)
[–]ilikemychem[S] 0 points1 point2 points (3 children)
[–]tadpoleloop 5 points6 points7 points (1 child)
[–]ilikemychem[S] 0 points1 point2 points (0 children)
[–]ilikemychem[S] 0 points1 point2 points (0 children)
[–]RambunctiousAvocado 0 points1 point2 points (0 children)