Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Реши 5 номер, сделай более точный цифровой график с помощью Python
Предмет: Математика
Раздел: Математический анализ, частные производные, градиент, направление наискорейшего изменения функции.
Дана функция: z = 2xy - 3x^2 - 2y^2 - 4x + 18y + 10
В точке: M\left(\frac{4}{5}; \frac{59}{10}\right)
Нужно найти направление и величину наискорейшего изменения функции z в точке M, а также построить более точный цифровой график градиента с помощью Python.
\frac{\partial z}{\partial x} = 2y - 6x - 4
\frac{\partial z}{\partial y} = 2x - 4y + 18
\frac{\partial z}{\partial x}\bigg|_M = 2 \cdot \frac{59}{10} - 6 \cdot \frac{4}{5} - 4 = \frac{118}{10} - \frac{24}{5} - 4 = 11.8 - 4.8 - 4 = 3.0
\frac{\partial z}{\partial y}\bigg|_M = 2 \cdot \frac{4}{5} - 4 \cdot \frac{59}{10} + 18 = \frac{8}{5} - \frac{236}{10} + 18 = 1.6 - 23.6 + 18 = -4.0
\nabla z = \left(3, -4\right)
|\nabla z| = \sqrt{3^2 + (-4)^2} = \sqrt{9 + 16} = \sqrt{25} = 5
\hat{u} = \left(\frac{3}{5}, \frac{-4}{5}\right)
import numpy as np
import matplotlib.pyplot as plt
# Функция z
def z(x, y):
return 2*x*y - 3*x**2 - 2*y**2 - 4*x + 18*y + 10
# Частные производные
def dz_dx(x, y):
return 2*y - 6*x - 4
def dz_dy(x, y):
return 2*x - 4*y + 18
# Точка M
x0, y0 = 4/5, 59/10
# Значения градиента в точке M
grad_x = dz_dx(x0, y0)
grad_y = dz_dy(x0, y0)
# Создаем сетку для графика
x = np.linspace(x0 - 2, x0 + 2, 100)
y = np.linspace(y0 - 2, y0 + 2, 100)
X, Y = np.meshgrid(x, y)
Z = z(X, Y)
# Визуализация
plt.figure(figsize=(10, 8))
plt.contour(X, Y, Z, levels=50, cmap='viridis')
plt.quiver(x0, y0, grad_x, grad_y, color='red', scale=10, label='Градиент в M')
plt.scatter(x0, y0, color='blue', label='Точка M')
plt.title('График функции и вектор градиента в точке M')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True)
plt.show()