1.2. Арифметические вычисления
Работа в среде MATLAB может осуществляться либо в программном режиме (см. Главу 4), либо в командном режиме (режиме калькулятора, диалоговом режиме) по правилу «задал вопрос, получил ответ». Это превращает MATLAB в необычайно мощный калькулятор, который способен производить не только обычные для калькулятора вычисления, но и операции с векторами и матрицами, комплексными числами, рядами и полиномами. Можно почти мгновенно задать и вывести графики различных функций: от простой синусоиды до сложной трехмерной фигуры.
Основным элементом командного режима работы с системой является главное или командное окно Command Window . Оно активизируется командой View => Desktop Layout => Command Window Only основного меню MATLAB. Структура командного окна аналогична структуре Windows - приложений (рис. 1.2).
Рис. 1.2
Строка в текстовом поле командного окна, отмеченная символом приглашения >> с мигающим курсором, называется строкой ввода или командной строкой. Она предназначена для ввода с клавиатуры команд, чисел, имен переменных и знаков операций, составляющих выражение. Для того, чтобы система MATLAB выполнила введенную команду или вычислила заданное выражение, следует нажать клавишу <Enter> (Ввод).
При вводе курсор может находиться в любом месте командной строки. Введенные выражения вычисляются, а результаты вычислений и выполнения команд появляются в одной или нескольких строках командного окна – строках вывода.
В результате многократных вычислений (нажатий клавиши <Enter>) в командном окне автоматически производится вертикальная протяжка (scrolling): строки сдвигаются на одну позицию вверх, а внизу появляется строка ввода с символом приглашения >>. Информация, которая покинула видимую часть окна, не исчезает. В MATLAB ранее введенные строки команд представляют собой «историю» и запоминаются в стеке команд (см. разд. 1.8).
Для просмотра выполненных команд и результатов вычислений, не умещающихся на экране, имеются полосы горизонтальной и вертикальной протяжки. Использование полос протяжки ничем не отличается от других Windows - приложений. Можно также осуществлять протяжку командного окна с помощью клавиш <PageUp>, <PageDown>, <Ctrl+Home> и <Ctrl+End>.
Клавиши <↑> и <↓>, которые в текстовых редакторах служат для перемещения вверх или вниз по экрану, в MATLAB работают иначе. Они используются для возврата в строку ввода ранее выполненных команд с целью их повторного выполнения или редактирования. После первого нажатия клавиши <↑> в строке ввода отобразится последняя введенная команда, при втором нажатии – предпоследняя и т. д. Клавиша <↓> осуществляет прокрутку команд в противоположном направлении.
Иными словами, текстовое поле окна Command Window располагается в двух принципиально разных зонах: зоне просмотра и зоне редактирования. Зона редактирования находится в командной строке, а вся остальная информация видимой части командного окна – в зоне просмотра.
Пока не нажата клавиша <Enter>, вводимое выражение может быть отредактировано или удалено. В зоне просмотра уже ничего нельзя исправить. Если поместить в нее курсор и нажать какую - либо клавишу на клавиатуре, курсор будет автоматически перемещен в строку ввода, расположенную в зоне редактирования. В то же время, с помощью клавиш <←> и <→> можно перемещать курсор в командной строке.
Невозможность редактирования ранее введенной команды простой установкой курсора в нужную строку является одной из особенностей системы MATLAB.
Сеанс работы с системой MATLAB называется сессией. Иными словами, сессия – это все то, что отображается в командном окне в процессе работы с системой. Команды сессии автоматически образуют список, который выводится в окне Command History, а значения переменных сохраняются в окне Workspase (рис. 1.1).
Например, сессия на рис. 1.2 отображает результаты последовательного ввода четырех команд. Обсудим эти результаты и отметим некоторые особенности вычислений в системе MATLAB:
>> 2+3
ans =
5
Результату выполненной операции не было присвоено имя, поэтому при выводе он был автоматически обозначен символом ans (ansver – ответ). Под этим именем результат вычислений хранится в памяти компьютера и его можно использовать в последующих вычислениях до тех пор, пока в ходе работы не будет получен новый непоименованный результат. Результат вычислений выводится в строках вывода, не содержащих знака приглашения >>;
>> a=2/3,A=2^3;cos(pi),b=exp(1)
a =
0.6667
ans =
-1
b =
2.7183
В одной командной строке можно ввести несколько команд, разделяя их запятыми либо точками с запятой. Система MATLAB выполняет каждую команду, за которой следует запятая, и отображает результаты в отдельных строках. Результат выполнения команды, за которой следует символ <;>, на экран не выводится, но он сохраняется в памяти и может быть использован в последующих вычислениях.
Знаком присваивания является знак =, а не комбинированный знак :=, принятый, например, в языке программирования Pascal или в системе символьной математики Maple.
После ввода этой командной строки вычисляются и сохраняются в памяти значения выражений a=2/3=0,б667, A=23=8, ans=cos =-1, b=e1=e=2,7183 (e – основание натурального логарифма). Значение переменной A, в отличие от a, ans, b, не выводится на экран из-за символа <;>. При вычислении cos использовалась системная переменная pi – число . Число e системной переменной не является, и для его вычисления использована встроенная элементарная функция exp(1). Функции записываются строчными буквами, а их аргументы указываются в круглых скобках. Аргумент встроенной тригонометрической функции cos задан в радианах;
>> disp(A/2+ans)
3
Команда disp(от слова «дисплей») вычисляет выражение23/2+cosи выводит ответ, но не присваивает его переменнойans, как при обычных вычислениях:
>> A/2+ans
ans=
3
В дальнейшем dispиспользуется для предотвращения вывода лишней строкиans =в наглядных документах;
>> c=.5+3-11+...
22-8.4+7
c =
13.1000
Иногда требуется ввести в окне Command Windowкоманду, которая слишком длинна, чтобы уместиться на одной строке. При приближении к концу строки можно ввести…(три последовательные точки), нажать клавишу<Enter> и продолжить набор команды на следующей строке. При этом вы не увидите на новой строке символа приглашения>>.
Сессия на рис.1.2 содержит только правильные команды и результаты их выполнения. В общем случае сессия является результатом проб и ошибок. Ее текст, наряду с правильными определениями, содержит сообщения и предупреждения об ошибках (см. разд. 1.8), переопределения функций и переменных, использованную справочную информацию команды help(см. приложение.1, рис. П1, рис. П.2). Если сессия сильно «засорена» лишней информацией, диалог пользователя с системой затрудняется.
Команда очистки экрана clc
>> clc
стирает содержание командного окна MATLAB и размещает символ приглашения >> в левом верхнем углу пустого экрана.
Эта команда, однако, оставляет неизменным содержимое окон Command History и Workspase. Поэтому в «чистом» командном окне можно пользоваться значениями переменных, полученных до ввода команды clc.
Если же появится необходимость отредактировать или повторить ранее выполненную команду, то это легко осуществить с помощью окна Command History. Подробнее работа с оконами Command History и Workspase обсуждается в разделах 1.8 и 1.9.
Переменные – это именованные объекты, хранящие какие – либо данные.
Переменные могут быть числовыми, матричными или символьными, что зависит от типа хранящихся в них данных. Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваиваивается переменной, т.е. пользователь не должен заботиться о том, какие значения будет принимать переменная (комплексные, вещественные или целые).
Имя переменной (ее идентификатор) может содержать до 31 символа и не должно совпадать с именами других переменных, функций, команд и системных переменных MATLAB. Имя переменной должно начинаться с буквы, может содержать цифры и символ подчеркивания. Среда MATLAB чувствителена к регистру букв (переменные a и A не идентичны).
В MATLAB существует несколько имен переменных, являющихся зарезервированными. Переменные с такими именами называются системными. Они задаются после загрузки системы и могут использоваться в арифметических выражениях. Системные переменные могут быть переопределены, т. е. при небходимости им можно присвоить другие значения.
Ниже перечислены основные системные переменные MATLAB:
ans – результат вычисления последнего не сохраненного пользователем выражения;
i, j – мнимая единица (), используемая для задания мнимой части комплексных чисел;
Inf (infinity) – обозначение машинной бесконечности;
NaN – сокращение от слов Not-a-Number (не число), принятое для обозначения неопределенного результата (например, 0/0 или Inf/Inf).
pi – число π ( =3,141592653589793);
eps – погрешность операций над числами с плавающей точкой, т.е интервал между числом 1.0 и следующим ближайшим числом с плавающей точкой равен 2.2204e-16 или 2-52;
realmin – минимальное по модулю вещественное число (2.2251e-308 или 2-1022);
realmax – наибольшее по модулю вещественное число (1.7977e+308 или 21023).
Приоритеты арифметических операций системы MATLAB в порядке убывания следующие:
1. Возведение в степень <^>.
2. Умножение <*> и деление (слева направо </>, справа налево <\>).
3. Сложение <+> и вычитание <–>.
Выполнение операций одинакового приоритета происходит в порядке слева направо. Для изменения порядка выполнения арифметических операторов следует использовать круглые скобки. Кроме арифметических операторов, в MATLAB имеются операторы отношения и логические операторы (см. разд. 4.1).
Полный список операторов и справочную информацию по любому из них можно получить в разделе ops справочной системы MATLAB, используя команды help или doc (см. Приложение 1).
Основу большинства расчетов составляют вычисления значений арифметических выражений. В них в качестве операндов могут выступать константы, переменные или функции. В отличие от большинства алгоритмических языков, в MATLAB допускается использование операндов - массивов (см. разд. 1.6, 1.7, 1.10). В этом случае результатом вычисления выражения также может быть массив.
Выражения, помещенные между двумя апострофами (заключенные в символьные скобки ' '), рассматриваются как строчные и не вычисляются, даже если в них содержатся математические выражения. Чаще всего они применяются для задания параметров функций и их нечисловых значений, вставки текста в графические объекты, а также для описания символьных переменных и выражений. Так, ввод строки '2+3' приводит к результату
>> '2+3'
ans =
2+3
а не 5.
При выводе графиков символы, помещенные между апострофами, определяют цвет линий графика, их тип и тип маркера, которым метятся линии (Глава 5).
- Основы работы и программирования, компьютерная математика Учебный курс
- Isbn ооо «Харвест», 2008
- Предисловие
- Введение
- Глава 1 знакомство с matlab и простейшие вычисления
- 1.1. Рабочая средаMatlab
- 1.2. Арифметические вычисления
- 1.3. Вещественные числа
- 1.4. Форматы вывода результата вычислений
- 1.5 Комплексные числа
- 1.6 Векторы и матрицы
- 1.7 Встроенные функции. Функции, задаваемые пользователем
- 1.8 Сообщения об ошибках и их исправление
- 1.9 Просмотр и сохранение переменных
- 1.10 Матричные и поэлементные операции над векторами и матрицами
- 1.11 Решение систем линейных уравнений
- Вопросы для самопроверки
- Глава 2 работа с массивами
- 2.1 Создание векторов и матриц
- 2.2 Применение команд обработки данных к векторам и матрицам
- 2.3 Создание специальных матриц
- 2.4 Создание новых массивов на основе существующих
- 2.5 Вычисление собственных значений и собственных векторов. Решение типовых задач линейной алгебры
- Вопросы для самопроверки
- Глава 3 м-файлы
- 3.1 Файл-программы
- 3.2 Файл-функции
- Вопросы для самопроверки
- Глава 4 программирование
- 4.1 Операторы отношения и логические операторы
- 4.2 Операторы цикла
- 4.3 Операторы ветвления
- 4.4 Оператор переключения switch
- 4.5 Оператор прерывания цикла break
- 4.6 Пример сравнения быстродействия матричных и скалярных операций
- Вопросы для самопроверки
- Глава 5 высокоуровневая графика
- 5.1 2D графика
- 5.1.1 Графики в линейном масштабе
- 5.2 Специальные виды 2d - графиков
- 5.2.1 Представление функции в виде дискретных отсчетов
- 5.2.2 Лестничные графики
- 5.2.3 Графики с указанием погрешности
- 5.2.4 Графики в логарифмическом и полулогарифмическом масштабах
- 5.2.5 Графики параметрических функций
- 5.3 3D графика
- 5.3.1 Линейчатые поверхности
- 5.3.2 Каркасные поверхности
- 5.3.3 Контурные графики
- 5.3.4 Сплошная освещенная поверхность
- 5.4 Оформление, экспорт и анимация
- 5.4.1 Оформление графиков
- 5.4.2 Сохранение и экспорт графиков
- 5.4.3 Анимация
- Вопросы для самопроверки
- Глава 6 прикладная численная математика
- 6.1 Операции с полиномами
- 6.2 Решение уравнений и их систем
- 6.3 Минимизация функции одной переменной
- 6.4 Минимизация функции нескольких переменных
- 6.5 Вычисление определенных интегралов
- 6.6 Решение дифференциальных уравнений
- 6.7 Аппроксимация и интерполяция данных
- 6.8 Интерполяция двумерных и многомерных данных
- Вопросы для самопроверки
- Глава 7 символьные вычисления
- 7.1 Символьные переменные, константы и выражения
- 7.2 Вычисления с использованием арифметики произвольной точности
- 7.3 Команды упрощения выражений – simplify, simple
- 7.4 Команда расширения выражений – expand
- 7.5 Разложение выражений на простые множители – команда factor
- 7.6 Приведение подобных членов – команда collect
- 7.7 Обеспечение подстановок – команда subs
- 7.8 Вычисление пределов – команда limit
- 7.9 Вычисление производных – команда diff
- 7.10 Вычисление интегралов – команда int
- 7.11 Разложение в ряд Тейлора – команда taylor
- 7.12 Вычисление суммы ряда – команда symsum
- 7.13 Решение уравнений и их систем – команда solve
- 7.14 Решение дифференциальных уравнений – команда dsolve
- 7.15 Прямое и обратное преобразования Лапласа – команды laplace,ilaplace
- 7.16 Графики символьных функций – команды ezplot, ezpolar
- 7.17 Прямой доступ к ядру системы Maple – командаmaple
- 7.18 Разложение рациональной дроби на сумму простейших дробей
- 7.19 Интерполяционный полином Лагранжа
- 7.20 Решение неравенств и систем неравенств
- 7.21 Разложение в ряд Тейлора функции нескольких переменных
- 7.22 Решение дифференциальных уравнений с помощью степенных рядов
- 7.23 Решение тригонометрических уравнений
- Вопросы для самопроверки
- Приложения Приложение 1. Справочная система matlab
- Приложение 2. Знакомство с пакетами расширения системыMatlab
- Приложение 3. Задания для самостоятельной работы
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Варианты
- Литература