Advertisement
mirosh111000

Система (4)

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