Advertisement
mirosh111000

Система (1)

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