*******************
Указания к выполнению заданий по дисциплине "Математические модели и методы"
ориентированы на применение системы научных и технических вычислений MATLAB.
На сегодняшний день пользователю сети ПГУПС доступна версия MATLAB-6.
Обращаем Ваше внимание на то, что диагностическая и справочная информация в
дается в этой версии системы на английском языке.
MATLAB (сокращение от MATrix LABoratory – матричная лаборатория) – система инженерных и научных расчетов, распространенная в Университетах всего мира. Язык, используемый в системе MATLAB, можно сравнить с языком BASIC по простоте его применения и принципу непосредственного исполнения (интерпретации).
Ориентация на работу с массивами (матрицами) делает MATLAB удобным и естественным инструментом обработки экспериментальных данных. MATLAB включает в себя компилятор языка, обширные математические библиотеки программ и функций на языках C и C++, мощный графический процессор. Будучи ориентированной на работу с реальными данными, система выполняет все вычисления в арифметике с плавающей точкой, и является универсальным языком технических вычислений.
Система MATLAB разработана фирмой The MathWorks, Inc. (США, г. Нейтик, шт. Массачусетс) и является интерактивной системой для выполнения инженерных и научных расчетов, которая ориентирована на работу с массивами данных. Система использует математический сопроцессор и допускает возможность обращения к программам, написанным на языках Fortran, C и C++.
Система поддерживает выполнение операций с векторами, матрицами и массивами данных, реализует сингулярное и спектральное разложения, вычисление ранга и чисел обусловленности матриц, поддерживает работу с алгебраическими полиномами, решение систем нелинейных уравнений и задач оптимизации, численное интегрирование, решение систем дифференциальных и разностных уравнений, построение различных видов графиков, трехмерных поверхностей и линий уровня.
В системе реализована удобная операционная среда, которая позволяет формулировать проблемы и получать решения в привычной математической форме, не прибегая к рутинному программированию.
Наиболее известные области применения системы MATLAB:
математика и вычисления;
разработка алгоритмов;
вычислительный эксперимент, имитационное моделирование;
анализ данных и визуализация результатов;
научная и инженерная графика;
разработка приложений, включая графический интерфейс пользователя.
MATLAB – это интерактивная система, основным объектом которой является массив, для которого не требуется указывать размерность явно. Это позволяет решать многие вычислительные задачи, связанные с векторно-матричными формулировками, существенно сокращая время, необходимое на программирование. MATLAB – это открытая система: одна из ее наиболее сильных сторон – возможность создания пользовательских расширений. Пользователь сам может написать на языке MATLAB специализированные функции и программы, предназначенные для многократного использования. Эти функции и программы оформляются в виде м-файлов (файлов, имеющих в названии расширение m. Например, my_function1.m) и помещаются в соответствующие библиотеки MATLAB или пользовательские каталоги, после чего к ним можно обращаться по имени (с возможной передачей значений параметров и аргументов) подобно тому, как мы обращаемся к стандартным математическим функциям, таким, например, как sin, log, sqrt и т.д.
Система MATLAB может использоваться в режиме прямых вычислений. В этом случае вычисляемые выражения набираются в командной строке (на которую указывает курсор в командном окне), при необходимости редактируется, ввод завершается нажатием клавиши ENTER. В режиме прямых вычислений система используется как мощнейший калькулятор. При этом доступны ВСЕ возможности системы, включая графические. Работа в режиме прямых вычислений рекомендуется в том случае, когда решение поставленной задачи требует выполнения небольшого (1-5) числа операторов MATLAB. Если же решение задачи предполагает выполнение сравнительно большого числа операторов, то с целью удобства дальнейшей корректировки и отладки рекомендуется составить программу на языке MATLAB. Программа MATLAB (M-программа) готовится обычно средствами встроенного редактора (редактора-отладчика), позволяющего запускать М-программу на выполнение, осуществлять пошаговую отладку, формировать и распечатывать результаты.
Следует отметить, что М-программа представляет собой последовательность операторов, необходимую для решения задачи и записанную в виде м-файла в рабочую директорию. Это та же последовательность операторов, которые использовались бы в режиме прямых вычислений. Поэтому в смысле используемого языка нет разницы между программированием и непосредственной работой с MATLAB в командном окне.
1) Вычисляемое выражение набирается, редактируется (если нужно) в командной строке, ввод завершается нажатием клавиши ENTER.
Средства для редактирования в командной строке: клавиши ← и → - перевод курсора вдоль строки, Home, End – быстрый переход к началу и концу строки, ↑ и ↓ - клавиши перелистывания строк (с их помощью в командной строке можно восстановить для редактирования и выполнения ранее выполнявшиеся операторы), клавиши Delete и Backspace (← в верхней строке клавиатуры) – для удаления символа над курсором и слева от него. Кроме того, в командном окне имеется сверху панель инструментов, позволяющая делать стандартные операции копирования, удаления, вставки из буфера обмена и др.
2) Для переноса длинного выражения на другую строку используется многоточие (… - три или более точек в конце строки). При нажатии ENTER курсор переместится в начало следующей строки, где можно продолжать набор оператора.
3) Основные системные переменные:
pi – значение числа π
ans – хранит результат последней выполненной операции (в том числе
и если этот результат – массив чисел). К ней можно обращаться
по имени, что бывает удобно при программировании.
inf - символ машинной бесконечности. Положительная величина,
которая больше чем любое представимое в оперативной памяти
компьютера положительное число, что так же бывает удобно
иметь при составлении алгоритмов.
i- мнимая единица – sqrt(-1). MATLAB выполняет действия в алгебре
комплексных чисел вида z = x+ i*y, где x – вещественная часть,
y – мнимая часть числа.
Знаки основных арифметических операций:
‘+ ‘- сложение, ‘-‘ – вычитание , ‘*’ – умножение, ‘/’ – деление слева направо, ’\’ – деление справа – налево, ‘^’ – возведение в степень.
Знаки операций применимы к векторным и матричным операндам.
Так, результаты операций A/B и B\A могут быть различны. Кроме того, одна из этих операций может быть возможна, в то время как другая – нет. Первая: A/B выполняется как A*inv(B), а вторая: B\A – как inv(B)*A. Вспомним, что умножение матриц не обладает свойством коммутативности. Знак умножения, примененный к матричным операндам, выполняет операцию умножения матриц по правилам матричной алгебры.
Постановка знака ‘;’ в конце вычисляемого выражения не обязательна, его присутствие блокирует вывод на экран компьютера результата выполнения выражения, после которого он поставлен. Установка точки с запятой в конце каждого оператора желательна при написании М-программ, особенно – когда промежуточными результатами являются массивы чисел. (Заметим, правда, что иногда полезно умышленно опустить точку с запятой, если вывод вычисленного значения оператора желателен).
1.1. Запуск системы
Запуск системы MATLAB производится с помощью иконки системы на рабочем столе.
После запуска на экране появляется три окна, одно из них - командное с при-
глашением вида >>, указывающим, что Вы находитесь в режиме прямых вычислений
и система ожидает ввода команд.
1.2. MATLAB как калькулятор
Простейшее применение системы MATLAB - использование ее для вычислений
в качестве обычного калькулятора.
Использование системы MATLAB как калькулятора носит диалоговый характер,
т.е. пользователь набирает на клавиатуре вычисляемое выражение (арифметиче-
ские операции обозначаются знаками: + - сложение, - - вычитание, * - умно-
жение, / - деление, ^ - возведение в степень), и завершает набор нажатием
клавиши <ENTER> , например:
>> sqrt(2)*(sin(pi/8)+exp(-1.43))
В результате на экране появится выражение
ans =
0.8796
Обращение к встроенной функции системы осуществляется указанием ее
имени и аргументов. Имена элементарных функций и математических постоянных
традиционны: sin, cos, exp, pi и т.д. Исключение составляют tan(тангенс) и
log (натуральный логарифм). Использование с т р о ч н ы х букв в именах
функций обязательно.
Информацию о встроенных функциях и правилах обращения к ним пользова-
тель легко может получить в режиме прямых вычислений с помощью функции опе-
ративной подсказки help, например,
>> help tan
TAN Tangent.
TAN(X) is the tangent of the elements of X.
По умолчанию для представления чисел используется format short - корот-
кое представление в фиксированном формате (5 знаков), хотя все вычисления
производятся с двойной точностью. При необходимости формат может быть изме-
нен пользователем. Например, последовательность команд
>> format long
>> sqrt(2)*(sin(pi/8)+exp(-1.43))
даст результат
ans =
0.87963002358020
Вводимое выражение можно редактировать с помощью строчного редактора,
используя обычным образом клавиши управления курсором (стрелки, Home, End),
клавишу Del для удаления символа под курсором, Back Space для удаления
слева от курсора и клавишу Esc или комбинацию клавиш Ctrl+[ для удаления
всей строки.
Для переноса части выражения на следующую строку предназначен знак мно-
готочия (две и более точек), например,
>> 0.55*(tan(3*pi/28)+asin(0.9571))*..
(log(13/(2.2753-1.0419))
Кроме того, в системе предусмотрен кольцевой буфер для хранения команд:
клавиша "стрелка вверх" выводит на экран предыдущую команду, клавиша "стрелка
вниз" - последующую, для повторения одной из введенных ранее команд достаточно
набрать один или несколько начальных символов и нажать клавишу "стрелка вверх".
Аналогом адресуемых регистров памяти микрокалькулятора в системе MATLAB
являются п е р е м е н н ы е , вводимые с помощью операции присваивания
(знак равенства):
ИМЯ ПЕРЕМЕННОЙ = ВЫРАЖЕНИЕ [;]
Имя переменной не должно совпадать с именами функций и служебными слова-
ми системы. Длина имени не ограничивается, но запоминаются и идентифицируют-
ся только первые 31 символ.
Вычисления в предыдущем примере можно было произвести с использованием
переменных следующим образом:
>> s=0.55*(tan(3*pi/28)+asin(0.9571));
>> t=log(13/(2.2753-1.0419));
>> s*t
ans =
2.10718834547014
Обратите внимание на роль знака ";"(точка с запятой) в системе MATLAB :
если ним завершается вводимое выражение, он блокирует вывод на экран резу-
льтата вычислений.
1.3. Сохранение результатов вычислений и завершение сеанса работы
Если возникает необходимость сохранить результаты расчетов по окончании
сеанса прямых вычислений это можно сделать командой save.Чтобы начать рабо-
ту с теми значениями переменных, которые они имели в момент окончания преды-
дущего сеанса, достаточно после запуска системы "выгрузить" сохраненные зна-
чения с помощью команды load .
Выход из системы MATLAB осуществляется командой quit, либо exit, либо
просто закрытием командного окна.
<ENTER>
2. Действия с матрицами
**************************
Система MATLAB матрично ориентирована. Это означает, что все действия си-
стема MATLAB выполняет только с одним типом объектов - прямоугольными матрицами.
Элементами матриц могут быть целые, вещественные и комплексные числа и текстовые
переменные. Скалярным значениям соответствует матрицы размера 1х1 , а векторам -
матрицы с одним столбцом или строкой.
При определении переменных не требуется предварительно указывать их размер-
ность. Ввод матриц осуществляется с помощью следующих операторов:
>> A=[ 1 2;3 4;5 0]
A =
1 2
3 4
5 0
>> B=[ 7 8 -1 0.5;9 0.1 2 3.3]
B =
7.0000 8.0000 -1.0000 0.5000
9.0000 0.1000 2.0000 3.3000
2.1. Действия над векторами.