Поверхности уровня, линии уровня

Множество всех точек М из области V , в которых выполняется равенство , где С – некоторая постоянная, называется поверхностью уровня, соответствующей числу С. Семейство поверхностей уровня скалярного поля в декартовых координатах определяется уравнением , где С - произвольное действительное число.

Замечание:дляплоского поля уравнение определяет линии уровня.

Для построения линий уровня соответствующих поверхностей в среде Matlab используются функции contour:

contour(X,Y,Z) – строит линии уровня для поверхности Z =Z(X,Y),

contour(X,Y,Z,n) - то же с указанием числа линий уровня (по умолчанию 10),

contour(X,Y,Z,v) - то же для массива указанных значений ;

contour(Z), contour(Z,n), contour(Z,v) - аналогичные функции без указания диапазонов для аргументов

contour(...,LineSpec) - аналогичные функции c указанием типа и цвета линий (см. plot); [C,h]=contour (...) возвращает массив С и вектор дескрипторов, позволяя тем самым продолжить работу с рисунком (давать оцифровку линий, заголовки и др.).

Функция contourf(...) закрашивает области между линиями уровня, аналогична contour(...) с разницей в формате[C,h, cf]=contour (...), где cf определяет матрицу раскраски.

Функция contour3(...) по синтаксису полностью аналогична contour(...),изображает линии уровня в пространственной интерпретации; так команда [c,h]=contour3(x,y,z,20); дает фигуру (рис.3).

Пример 1: построить линии уровня заданной поверхности

>> [x,y]=meshgrid(-8:0.5:8); >> t=sqrt(x.^2+y.^2)+0.001; >> z=sin(t).^3./t; >> [c,h]=contour(x,y,z,20); >> [x,y]=meshgrid(-2:0.25:2); >> t=sqrt(x.^2+y.^2)+0.001; >> z=sin(t).^3./t; >> [c,h,cf]=contourf(x,y,z,4);  
Рис.1 Рис.2 Рис.3

 

Для маркировки контурных графиков используются команды группы clabel:

Пример использования функции сlabel

  >> [X,Y]=meshgrid([-3:0.1:3]); >> Z=sin(X)./(X.^2+Y.^2+0.3;) >> Z=sin(X)./(X.^2+Y.^2+0.3); >> C=contour(X,Y,Z,10); >> colormap(gray) >> clabel(C)