2.4. Построение линий уровня
Построение линий уровня очень похоже на построение трехмерных графиков. Для этого сначала также необходимо создать двумерную сетку, в узлах которой будут рассчитываться значения функций, а затем для построения линий уровня используется функция contour, параметры которой во многом напоминают параметры функций surf и mesh, описанных в предыдущем разделе. Следующий пример строит линии уровня функции Швефеля, результат показан на рисунке 2.26.
>> meshx = -500: 10: 500;
>> meshy = -500: 10: 500;
>> [X, Y] = meshgrid (meshx, meshy);
>> Z = X .* sin ( sqrt ( abs (X) ) ) + Y .* sin ( sqrt ( abs (Y) ) );
>> contour (X, Y, Z)
Рис. 2.26.
Функцию contour можно использовать с дополнительным параметром: contour (X, Y, Z, n), где n – целое положительное число, которое задает количество выделяемых уровней на графике. Если в предыдущем примере заменить последнюю команду на contour (X, Y, Z, 20), то график примет вид, показанный на рисунке 2.27.
Рис. 2.27.
Кроме того, вместо последнего параметра можно использовать вектор, элементы которого определяют уровни, для которых надо построить линии. Следующий пример рисует три уровня для Z = -500; 0 и 500 (результат показан на рисунке 2.28).
>> meshx = -500: 10: 500;
>> meshy = -500: 10: 500;
>> [X, Y] = meshgrid (meshx, meshy);
>> Z = X .* sin ( sqrt ( abs (X) ) ) + Y .* sin ( sqrt ( abs (Y) ) );
>> contour (X, Y, Z, [-500 0 500])
Рис. 2.28.
Так как матрица размером 1x1 MATLAB воспринимает как число, то для того, чтобы построить одну линию уровня для определенного значения Z, в качестве последнего параметра функции contour нужно передать матрицу размером 2x1, где оба элемента матрицы будут одинаковыми, то есть должны определять один и тот же отображаемый уровень. Например: contour (X, Y, Z, [0, 0]).
Yandex.RTB R-A-252273-3- Оглавление
- Предисловие
- Раздел 1. Основные сведения о среде программирования «matlab»
- Глава 1. Вычисления в командном режиме
- 1.1. Простейшие математические операции в matlab
- 1.2. Переменные
- 1.3. Создание матриц
- 1.4. Доступ к элементам матриц
- 1.5. Операции с матрицами
- 1.6. Ввод, вывод и работа со строками
- Глава 2. Построение графиков в matlab
- 2.1. Построение графика в виде двумерной линии
- 2.2. Оформление графиков
- 2.3. Построение трехмерных графиков
- 2.4. Построение линий уровня
- 2.5. Построение векторного поля
- 2.6. Отображение нескольких графиков в одном окне
- Глава 3. Скрипты в matlab и управляющие конструкции
- 3.1. Создание и выполнение скриптов в matlab
- 3.2. Оператор for
- 3.3. Логические операции
- 3.4. Оператор if / elseif / else
- 3.5. Оператор while
- 3.6. Операторы break / continue
- 3.7. Оператор switch
- 3.8. Создание функций
- Раздел 2. Краткие теоретические сведения и задания Тема 1. Векторный анализ
- 1.1. Элементы векторного анализа
- Задания
- Тема 2. Уравнения Максвелла (произвольная и гармоническая временная зависимость, статические, стационарные и квазистационарные поля)
- 2.1. Система уравнений электродинамики – уравнения Максвелла
- 2.2. Граничные условия. Принцип эквивалентности
- Задания
- Тема 3. Плоские волны
- 3.1. Явление дисперсии и групповая скорость
- Задания
- Тема 4. Граничные задачи, уравнения и методы
- 4.1. К классификации электромагнитных явлений
- Задания
- 4.2. Метод конечных разностей
- 4.2.1. Конечно-разностная аппроксимация
- 4.2.2. Конечно-разностная аппроксимация уравнений Лапласа и Пуассона
- 4.2.3. Конечно-разностная аппроксимация для граничных узлов
- Задания
- Литература