
- •Лабораторная работа № 1 основы программирования в пакете прикладных программ matlab
- •1. Использование matlab в качестве научного калькулятора
- •1.1. Операции с числами
- •1.1.1. Ввод действительных чисел
- •1.1.2. Простейшие арифметические действия
- •1.1.3. Ввод комплексных чисел
- •1.1.4. Элементарные математические функции
- •1.1.5. Специальные математические функции
- •1.1.6. Элементарные действия с комплексными числами
- •1.1.7. Функции комплексного аргумента
- •1.2 Простейшие операции с векторами и матрицами
- •1.2.1. Ввод векторов и матриц
- •1.2.2. Формирование векторов и матриц
- •1.2.3 Действия над векторами
- •1.2.4 Поэлементное преобразование матриц
- •1.2.5 Матричные действия над матрицами
- •1.3 Функции прикладной численной математики
- •1.3.1. Операции с полиномами
- •2. Программирование в среде MatLab
- •2.1 Операторы цикла и условные операторы
- •If условие
- •If условие
- •2.2 Ввод исходных данных и вывод результатов
- •3. Графика
- •4. Создание м-файлов
- •4.1. Особенности создания м-файлов
- •4.2. Основные особенности оформления м-файлов
- •4.3 Создание функциональных файлов
- •4.3.1 Общие требования к построению
If условие
группа операторов 1;
else
группа операторов 2;
end
В этом случае пока выполняется условие, реализуется группа операторов 1; в противном случае выполняется группа операторов 2.
Возможен частный случай условного выражения в виде:
If условие
группа операторов;
end.
В сложных условных выражениях оператор if используется совместно с оператором elseif. Рассмотрим пример, иллюстрирующий реализацию функции y=f(x), представляющей характеристику линейного звена с ограничением
if abs(x)<1
y=x;
elseif x>1
y=1;
else
y=-1;
end
2.2 Ввод исходных данных и вывод результатов
В пакете Matlab ввод исходных данных осуществляется с помощью оператора input. Выражение N= input ('введите N ') обеспечивает вывод в окно символьной строки и ожидание ввода требуемого числа N с клавиатуры. После того, как число будет набрано и нажата клавиша ENTER, работа по программе будет продолжена. Для ввода с клавиатуры матрицы или вектора пользователь должен использовать скобки вида [].
Для вывода информации на экран дисплея можно использовать оператор disp. Например, последовательность операторов
disp('Вывод матрицы А:')
A = [1 2 3; 4 5 6]; disp(А)
обеспечит вывод на экран сообщения:
Вывод матрицы А:
1 2 3
4 5 6
Символ ";" после оператора присваивания запрещает вывод на экран результата вычисления. Если символ ";" отсутствует, результат вычислений по умолчанию выводится на экран дисплея. Если при этом имя переменной или знак = опущены, то результат вычислений автоматически присваивается переменной ans. В предыдущем примере можно отказаться от оператора disp(A), если убрать символ ";" в предыдущей строке.
Пакет Matlab позволяет сформировать файл результатов, полученных в процессе выполнения программы, с помощью команд diary имя файла, diary off, diary on. Например, команда diary dat обеспечивает запись всех числовых результатов, полученных в последующих за этой командой операторах и выводимых на экран дисплея вплоть до команды diary off в файл с именем dat. Следует обратить внимание на то, что имя файла результатов не имеет расширения. Команда diary on вызовет продолжение формирование файла результатов. По окончании выполнения программы можно провести редактирование этого файла.
3. Графика
Среда пакета Matlab дает широкие возможности для построения графиков, в том числе двух - и трехмерных. Для вывода графиков может быть использована команда plot. Команда plot(X) изображает вектор X как функцию индекса. Возможно задание цвета графика, используемых символов (сплошная черта, точка, пунктир и т.д.), а также текстовых надписей. Например, plot(Y,'w'), title('Y'); изображает график зависимости Y от индекса белым цветом (white) с надписью 'Y'.
Команда plot(X,Y),где X и Y - вектора, создает график Y как функцию от X. Команда semilogX и semilogY создают график с полулогарифмической шкалой либо по X (по Y -линейной), либо по Y (по X-линейной). Команда loglog создает график с логарифмическим масштабом по обеим осям.
Команда polar(X,Y) создает график в полярных координатах, команда bar-полосовые диаграммы.
Команда mesh(Z), где Z - двумерный массив значений функции z=f(x,y), обеспечивает построение трехмерных поверхностей.
Возможен вывод на экран одновременно до четырех различных графиков оператором subplot. Предварительно экран дисплея должен быть очищен оператором clg. Например, последовательность операторов
clg; % структура экрана
subplot(221),plot(X'),title('X'); % --------------
subplot(222),plot(Y'),title('Y'); % | 221 | 222 |
subplot(223),plot(Z),title('Z'); % -------------
subplot(224),plot(W),title('W'); % | 223 | 224 |
pause; % -------------
осуществляет вывод на экран дисплея одновременно четырех графиков зависимостей X, Y, Z, W, из которых X и Y представлены строкой, а Z и W столбцом. Операторы subplot(211) subplot(212) осуществляют вывод двух графиков, разделяя экран дисплея по горизонтали, а операторы subplot(121) subplot(122) разделяют экран на две части по вертикали.
Формирование пояснений к графику с помощью функций title, xlabel, ylabel:
t=0:0.01:2*pi;y=sin(t);
plot(t,y),grid,title('Синусоида'),xlabel('радианы'),
ylabel('функция'),gtext('t'),gtext('y')
Формирование пояснений к начертанию нескольких графиков с помощью функции legend:
t=0:0.01:2*pi;y1=sin(t);y2=cos(t);
plot(t,y1,'r'),grid,hold on,plot(t,y2), legend('s1','c2')
Установка ярлыка legend в различных частях графика:
в левом верхнем углу: legend('s1','c2', 2);
в левом нижнем углу: legend('s1','c2', 3);
в правом нижнем углу: legend('s1','c2', 4);
в правом верхнем углу: legend('s1','c2', 1)
или по умолчанию: legend('s1','c2');
вне рабочей области графика: legend('s1','c2', -1);