Facebook
From Sharp Teal, 3 Years ago, written in Python.
Embed
Download Paste or View Raw
Hits: 77
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from numpy import sin, cos, tan, pi
  4. from scipy.optimize import fsolve
  5.  
  6. def eq_circuito(s,q):
  7.   A = s[0]
  8.   B = s[1]
  9.   f = np.empty(2)
  10.   f[0] = R*cos(q)+C1*cos(B)+C2*sin(B)-C4+S
  11.   f[1] = R*sin(q)-C1*sin(B)+C2*cos(B)-C3
  12.   return f
  13.  
  14. # Constantes:
  15. R = 40
  16. C1 = 75
  17. C2 = 8
  18. C3 = 20
  19. C4 = 100
  20.  
  21. # Chute inicial:
  22. S0 = np.array([pi/4,30])
  23. n = 100
  24. q = np.linspace(0,pi,n)
  25. Si = np.empty([n,2])
  26.  
  27. #print(Si)
  28. for k in range(n):
  29.   Si[k,:] = fsolve(eq_circuito,S0,q[k])
  30.   S0 = Si[k,:]
  31. plt.plot(q,Si[:,0])
  32. plt.figure()
  33. plt.plot(q,Si[:,1])