Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- def dx_dt(x, y):
- return -3*x + y
- def dy_dt(x, y):
- return -x + y
- A = np.array([[-3, 1],
- [-1, 1]])
- B = np.array([0, 0])
- stat_point = np.linalg.solve(A, B)
- print(f"Стаціонарна точка: ({stat_point[0]}, {stat_point[1]})")
- eigenvalues, eigenvectors = np.linalg.eig(A)
- print("lambda: ", eigenvalues)
- if eigenvalues[0] != eigenvalues[1] and np.iscomplexobj(eigenvalues[0]) == False:
- if (eigenvalues[0] < 0) and (eigenvalues[1] < 0):
- print(f'Харкатер точки спокою: стійкий визел ; Стійкість точки спокою: асимптотично стійка.')
- if (eigenvalues[0] > 0) and (eigenvalues[1] > 0):
- print(f'Харкатер точки спокою: нестійкий визел ; Стійкість точки спокою: нестійка.')
- if (eigenvalues[0] > 0 and eigenvalues[1] < 0) or (eigenvalues[0] < 0 and eigenvalues[1] > 0) :
- print(f'Харкатер точки спокою: сідло ; Стійкість точки спокою: нестійка.')
- elif np.iscomplexobj(eigenvalues[0]) == True:
- if (eigenvalues[0] < 0) and (eigenvalues[1] < 0):
- print(f'Харкатер точки спокою: стійкий фокус ; Стійкість точки спокою: асимптотично стійка.')
- if (eigenvalues[0] > 0) and (eigenvalues[1] > 0):
- print(f'Харкатер точки спокою: нестійкий фокус ; Стійкість точки спокою: нестійка.')
- if (eigenvalues[0] > 0 and eigenvalues[1] < 0) or (eigenvalues[0] < 0 and eigenvalues[1] > 0) :
- print(f'Харкатер точки спокою: центр ; Стійкість точки спокою: стійка.')
- else:
- if (eigenvalues[0] < 0) and (eigenvalues[1] < 0):
- print(f'Харкатер точки спокою: стійкий вузел ; Стійкість точки спокою: асимптотично стійка.')
- else:
- print(f'Харкатер точки спокою: нестійкий вузел ; Стійкість точки спокою: нестійка.')
- x = np.linspace(-10, 10, 15)
- y = np.linspace(-10, 10, 15)
- X, Y = np.meshgrid(x, y)
- dx = dx_dt(X, Y)
- dy = dy_dt(X, Y)
- fig, ax = plt.subplots()
- ax.quiver(X, Y, dx, dy)
- ax.plot(stat_point[0], stat_point[1], 'ro')
- plt.xlabel('x')
- plt.ylabel('y')
- plt.title('Фазовий портрет')
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement