- •Глава 3. Инструментальные средства моделирования
- •3.2.2 Пользовательский интерфейс
- •3.2.3. Создание, редактирование и отладка м-файлов
- •3.2.3 Простейшие вычисления
- •Элементарные математические функции
- •Функции, определенные пользователем
- •3.2.4 Массивы в matlab
- •3.2.5 Основные матричные операции
- •3.2.6 Графики в matlab Построение двумерных графиков
- •Операторы цикла Оператор for … end
- •Цикл while
- •Обработка массивов и матриц средствами м-языка
- •Отладка м-программ в matlab
- •Численное решение математических задач в matlab
- •Численное интегрирование
- •Символьные вычисления в matlab
- •Вычисление производной
3.2.6 Графики в matlab Построение двумерных графиков
Для того, чтобы построить график функции y = f(x), необходимо сформировать два массива x и y одинаковой размерности, а затем использовать функцию plot.
Пример 3-6. Требуется построить график функции y=0,5sin(x)+cos(2x) на интервале [-10; 10].
Решение задачи и результат приведены ниже.
Инструкции |
Результат |
>> x=-10:0.05:10; >> y=0.5*sin(x)+cos(2*x); >> plot(x,y);
|
В результате обращения к функции plot(x,y) будет создано окно с именем Figure 1, в котором будет построен график |
Для построения нескольких графиков в одной системе координат можно действовать двумя способами:
1. Использовать функцию plot, задавая аргументы следующим образом: plot (x1, y1, x2, y2, … , xn, yn), где x1, y1 – абсцисса и ордината первого графика, x2, y2 – абсцисса и ордината второго графика, … , xn, yn – абсцисса и ордината n-ого графика.
2. Использовать функцию plot( x, y) для построения каждого графика, но перед обращением к функциям plot (x2, y2), … , plot( xn, yn) вызывать команду hold on , которая блокирует режим создания нового окна.
Пример 3-7. Требуется построить в одной системе координат графики функций y=0,5sin(x), z= 2sin(x), v= sin(2x) на интервале [-10; 10].
Решение задачи и результат приведены ниже.
Инструкции |
Результат |
% первый способ >> x=-10:0.05:10; >> y=0.5*sin(x); >> z=2*sin(x); >> v=sin(2*x); >> plot(x,y,x,z,x,v);
% второй способ >> x=-10:0.05:10; >> y=0.5*sin(x); >> plot(x,y); >> hold on; >> z=2*sin(x); >> plot(x,z); >> hold on; >> v=sin(2*x); >> plot(x,v); |
Для оформления графиков в Matlab имеются следующие возможности:
* команда grid on наносит сетку на график;
* функция title(‘заголовок’) выводит заголовок графика;
* функции xlabel(‘подпись оси х’), ylabel(‘подпись оси у’) служат для подписи осей х и у соответственно;
* функция legend(‘легенда1’, ‘легенда2’, … , ‘легендаn’, k) выводит легенды для каждого из n графиков, параметр k определяет месторасположение легенды в графическом окне: -1 – в правом верхнем углу графического окна, за пределами графика; 0 – автоматически выбрать наилучшее месторасположение; 1 – в правом верхнем углу графика (значение по умолчанию); 2, 3, 4 – в левом верхнем, в левом нижнем, в правом нижнем углах графика соответственно.
Пример 3-8. Требуется построить график функций на интервале [-5; 5].
Заметим, что заданная функция не определена в двух точках х1 = -1 и х2 = 1. Поэтому будем задавать аргументы для интервалов [-5, -1), (-1, 1) и (1, 5].
Решение задачи и результат приведены ниже.
Инструкции М-файла |
Результат |
Задание 3-2. Постройте графики функций:
1.
2. на интервале [-2; 2].
3. на интервале [-2; 2].
Основы программирования в MATLAB
Создание М-программ
Основные операторы М-языка
Для ввода исходных данных в диалоговом режиме используется функция input(), имеющая следующий синтаксис: Input(‘текст’)
Пример 3-9. Требуется ввести значение переменной а в диалоговом режиме. Решение и результат:
Инструкции |
Результат |
>> a = input('введите число') |
введите число 5 a = 5 |
Условный оператор
Для программирования условий в М-языке Matlab используется оператор If. Существуют две разновидности оператора If обычная и расширенная. Обычная форма If имеет следующий синтаксис:
If условие
операторы1
else
операторы2
end
Синтаксис расширенного оператора If:
If условие1
операторы1
elseif условие2
операторы2
…
elseif условие n
операторы n
else
операторы
end
При выполнении оператора If сначала проверяется первое условие. Если оно истинно, то выполняются операторы1, после чего программа перейдет к выполнению операторов, следующих за end. Если первое условие ложно, то проверяется второе условие и т.д. Операторы, следующие за else, выполняются в том случае, если ни одно из условий не выполнено.
Операции и операторы в MATLAB
Операции сравнения |
Логические |
|
операторы |
операции |
|
< меньше |
and(A, B) |
A & B |
> больше |
or(A, B) |
A | B |
=?= равно |
xor(A, B) |
|
~= не равно |
Not(A) |
~ A |
<= меньше или равно |
|
|
>= больше или равно |
|
При одновременном использовании в выражении логических, арифметических операций и операций сравнения важно учитывать приоритет операций:
1. Логические операторы.
2. Логическая операция ~
3. Арифметические операции (в соответствии с их приоритетом).
4. Операции сравнения.
5. Логическая операция «и» – &.
6. Логическая операция «или» – |.