Advertisement
mirosh111000

Система (3)

May 30th, 2023
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.55 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. def dx_dt(x, y):
  5.     return -3*x + 3*y
  6. def dy_dt(x, y):
  7.     return -5*x + 2*y
  8.  
  9.  
  10. A = np.array([[-3, 3],
  11.               [-5, 2]])
  12. B = np.array([0, 0])
  13. stat_point = np.linalg.solve(A, B)
  14. print(f"Стаціонарна точка: ({stat_point[0]}, {stat_point[1]})")
  15.  
  16. eigenvalues, eigenvectors = np.linalg.eig(A)
  17. print("lambda: ", eigenvalues)
  18.  
  19. if eigenvalues[0] != eigenvalues[1] and np.iscomplexobj(eigenvalues[0]) == False:
  20.  
  21.     if (eigenvalues[0] < 0) and (eigenvalues[1] < 0):
  22.         print(f'Харкатер точки спокою: стійкий визел ; Стійкість точки спокою: асимптотично стійка.')
  23.  
  24.     if (eigenvalues[0] > 0) and (eigenvalues[1] > 0):
  25.         print(f'Харкатер точки спокою: нестійкий визел ; Стійкість точки спокою: нестійка.')
  26.  
  27.     if (eigenvalues[0] > 0 and eigenvalues[1] < 0) or (eigenvalues[0] < 0 and eigenvalues[1] > 0) :
  28.         print(f'Харкатер точки спокою: сідло ; Стійкість точки спокою: нестійка.')
  29.  
  30. elif np.iscomplexobj(eigenvalues[0]) == True:
  31.  
  32.     if (eigenvalues[0] < 0) and (eigenvalues[1] < 0):
  33.         print(f'Харкатер точки спокою: стійкий фокус ; Стійкість точки спокою: асимптотично стійка.')
  34.  
  35.     if (eigenvalues[0] > 0) and (eigenvalues[1] > 0):
  36.         print(f'Харкатер точки спокою: нестійкий фокус ; Стійкість точки спокою: нестійка.')
  37.  
  38.     if (eigenvalues[0] > 0 and eigenvalues[1] < 0) or (eigenvalues[0] < 0 and eigenvalues[1] > 0) :
  39.         print(f'Харкатер точки спокою: центр ; Стійкість точки спокою: стійка.')
  40.  
  41. else:
  42.     if (eigenvalues[0] < 0) and (eigenvalues[1] < 0):
  43.         print(f'Харкатер точки спокою: стійкий вузел ; Стійкість точки спокою: асимптотично стійка.')
  44.  
  45.     else:
  46.         print(f'Харкатер точки спокою: нестійкий вузел ; Стійкість точки спокою: нестійка.')
  47.  
  48.  
  49. x = np.linspace(-10, 10, 15)
  50. y = np.linspace(-10, 10, 15)
  51. X, Y = np.meshgrid(x, y)
  52. dx = dx_dt(X, Y)
  53. dy = dy_dt(X, Y)
  54. fig, ax = plt.subplots()
  55. ax.quiver(X, Y, dx, dy)
  56. ax.plot(stat_point[0], stat_point[1], 'ro')
  57. plt.xlabel('x')
  58. plt.ylabel('y')
  59. plt.title('Фазовий портрет')
  60. plt.show()
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement