Я хочу 3D-график функции af (x, y), которая использует несколько матричных операций. Я хочу искать возможные максимумы и минимумы. Причина этой матричной операции состоит в том, что иногда этот тип функций может быть выражен в более чистой и более компактной форме. Однако у меня возникли проблемы при попытке исправить некоторые ошибки. При построении этой функции f (x, y) мне нужно превратить двумерный вектор (x, y) в трехмерный вектор вида (x, y, 0) или (x, 0, y). ) или (0, x, y). В основном ошибки возникают из-за использования этих двух типов функций:
функция 1:
a = np.array([[1],
[3]])
def toy_function1(x,y):
u = np.asarray((x,y))
return np.matmul(u, a )
x = np.linspace(0, 5, 4)
y = np.linspace(0, 5, 3)
x, y = np.meshgrid(x,y)
z = toy_function1(x,y)
plt.contour(x, y, y, 20, cmap='RdGy');
с ошибкой
ValueError Traceback (most recent call last)
<ipython-input-27-d1951bd0ff32> in <module>()
9 x, y = np.meshgrid(x,y)
10
---> 11 z = toy_function1(x,y)
12
13 plt.contour(x, y, y, 20, cmap='RdGy');
<ipython-input-27-d1951bd0ff32> in toy_function1(x, y)
3 def toy_function1(x,y):
4 u = np.asarray((x,y))
----> 5 return np.matmul(u, a )
6
7 x = np.linspace(0, 5, 4)
ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 2 is different from 4)
функция 2
a = np.array([[1],
[2],
[3]])
def toy_function2(x,y):
u = np.insert((x,y),0,0).reshape(1,3)
return np.matmul(u, a)
x = np.linspace(0, 5, 4)
y = np.linspace(0, 5, 3)
x, y = np.meshgrid(x,y)
z = toy_function2(x,y)
plt.contour(x, y, y, 20, cmap='RdGy');
с ошибкой
ValueError Traceback (most recent call last)
<ipython-input-56-47a2104dff1b> in <module>()
13 x, y = np.meshgrid(x,y)
14
---> 15 z = toy_function2(x,y)
16
17 plt.contour(x, y, y, 20, cmap='RdGy');
<ipython-input-56-47a2104dff1b> in toy_function2(x, y)
5
6 def toy_function2(x,y):
----> 7 u = np.insert((x,y),0,0).reshape(1,3)
8 return np.matmul(u, a)
9
ValueError: cannot reshape array of size 25 into shape (1,3)