#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;
Я не уверен, что приведенная выше формула дает желаемый результат.