Я пытаюсь построить следующее уравнение в MATLAB:
ratio = sqrt(1+1/(kr)^2)
С k и r по осям x и y и отношением по оси z.Я использовал meshgrid для создания матрицы со значениями для x и y, варьирующимися от 1 до 10:
[x,y] = meshgrid([1:1:10],[1:1:10]);
Теперь проблема заключается в создании значений для z.Я пытался просто ввести все уравнение, но это дает следующий результат:
>> Z = sqrt(1+1/(x .* y)^2)???
Error using ==> mldivide
Matrix dimensions must agree.
Итак, я выполнил весь процесс вручную, что в итоге дает правильный график:
z = z^2;
z = 1 ./ z;
z = 1 + z;
z = sqrt(z);
mesh(x,y,z)
Есть ли более элегантный способ сделать это?Или способ ввести в уравнение и позволить MATLAB обрабатывать все остальное?