Контурный чертеж Matlab

#matlab #plot #contour

#matlab #построение #контур

Вопрос:

Я хочу нарисовать контур для заданной функции.

Моя функция заключается в том, f = transpose([5;5])*[X;Y] transpose([X;Y])*[2 3; 4 2]*[X;Y]/2; и я хочу нарисовать контур для значений X и Y от -100 до 100. Как я могу это сделать? Когда я создаю linspace для X и Y, я получаю ошибку сопоставления размеров. Я могу получить единственное значение для функции, но не могу нарисовать график. Спасибо

Ответ №1:

Ошибка сопоставления размеров, означает, что размеры не соответствуют правилам алгебры.

Предположим:

 X = -100:100;
Y = -100:100;
  

size(transpose([X;Y])*[2 3; 4 2]*[X;Y]/2)
ans =
201 201

size([X*5;Y*5])
ans =
2 201

Вы не можете суммировать матрицу 2×201 с матрицей 201×201.

Следующий код работает (размер f равен 2×201):

 f = [X*5;Y*5]   (([X;Y])'*[2 3; 4 2])'.*[X;Y]/2;
  

Я не уверен, что приведенная выше формула дает желаемый результат.