Учебное пособие для студентов высших учебных заведений
Скачать 5.41 Mb.
|
Введение 10 С языком BASIC ее роднит то, что она представляет собой интерпретатор (то есть компилирует и выполняет программу пооператорно, не образовывая от- дельного исполняемого файла), незначительное количество операторов и отсутст- вие необходимости в объявлении типов и размеров переменных, то есть все то, что делает язык программирования весьма удобным в пользовании. От языка Pascal система MatLAB позаимствовала объектно- ориентированную направленность, то есть такое построение языка, которое обес- печивает образование новых типов вычислительных объектов по желанию поль- зователя на основе типов объектов, уже существующих в языке. Эти новые типы объектов (в MatLAB они называются классами) могут иметь собственные проце- дуры их преобразования (они образуют методы этого класса). Весьма удобно то, что новые процедуры могут быть вызваны с помощью обычных знаков арифме- тических операций и некоторых специальных знаков, которые применяются в ма- тематике. Принципы сохранения значений переменных в MatLAB более всего при- ближаются к тем, которые присущи языку FORTRAN, а именно: все переменные являются локальными, то есть действуют лишь в границах той программной еди- ницы (процедуры, функции или главной, управляющей программы), где им при- своены некоторые конкретные значения. При переходе к выполнению другой программной единицы, значения переменных предыдущей программной единицы или совсем теряются (в случае, если выполненная программная единица является процедурой или функцией), или становится недосягаемыми (если выполненная программа - управляющая). В отличие от языков BASIC и Pascal, в языке MatLAB нет глобальных переменных, действие которых распространялась бы на все про- граммные единицы. Но и здесь в MatLAB есть особенность, которая отличает ее от других языков. В отличие от интерпретатора BASIC интерпретатор MatLAB позволяет в одном и том же сеансе работы выполнять несколько самостоятельных программ, причем все переменные, используемые в этих программах, являются общими для этих программ и образуют общее рабочее пространство (Work Space). Это позволяет более рационально организовывать сложные (громоздкие) вычисления по принципу, который напоминает оверлейные структуры. Эти особенности MatLAB делают ее весьма гибкой и удобной в пользо- вании вычислительной системой. 1.1. Командное окно 11 1. MatLab как научный калькулятор 1.1. Командное окно После вызова MatLAB из среды Windows на экране возникает изображение так называемого "командного окна" среды MatLAB (рис. 1.1). Рис. 1.1 Это окно является основным в MatLAB. В нем появляются символы команд, которые набираются пользователем на клавиатуре дисплея, отображаются резуль- таты выполнения этих команд, текст исполняемой программы и информация об ошибках выполнения программы, распознанных системой. Признаком того, что MatLAB готова к восприятию и выполнению очеред- ной команды, является возникновение в последней строке текстового поля окна знака приглашения '»', после которого расположена мигающая вертикальная чер- та. В верхней части окна (под заголовком) размещена строка меню, в которой находятся меню File, Edit, View, Windows, Help. Чтобы открыть какое-либо меню, следует установить на нем указатель мыши и нажать ее левую кнопку. Подробнее функции команд меню описаны далее, в главе 3 "Интерфейс MatLab и команды общего назначения. Написание М-книг". Здесь отметим лишь, что для выхода из среды MatLAB достаточно открыть меню File и выбрать в нем команду Exit MATLAB, или просто закрыть командное окно, нажав левую клавишу мыши, когда курсор мыши установлен на изображе- нии верхней крайней правой кнопки этого окна (с обозначением косого крестика). 1. 2. Операции с числами 12 1.2. Операции с числами 1.2.1. Ввод действительных чисел Ввод чисел с клавиатуры осуществляется по общим правилам, принятым для языков программирования высокого уровня: для отделения дробной части мантиссы числа используется десятичная точка (вместо запятой при обычной записи); десятичный показатель числа записывается в виде целого числа после предшествующей записи символа "е"; между записью мантиссы числа и символом "е" (который отделяет ман- тиссу от показателя) не должно быть никаких символов, включая и символ про- пуска. Если, например, ввести в командном окне MatLAB строку 1. 20357651е -17, то после нажатия клавиши Рис. 1.2 Следует отметить, что результат выводится в виде (формате), который оп- ределяется предварительно установленным форматом представления чисел. Этот формат может быть установлен с помощью команды Preferences меню File (рис. 1.3). После ее вызова на экране появится одноименное окно (рис. 1.4). Один из участков этого окна имеет название Numeric Format. Он предназначен для уста- новки и изменения формата представления чисел, которые выводятся в командное окно в процессе расчетов. Предусмотрены такие форматы: Short (default) - краткая запись (применяется по умолчанию); Long - длинная запись; Hex - запись в виде шестнадцатиричного числа; Bank - запись до сотых долей; Plus - записывается только знак числа; Short E - краткая запись в формате с плавающей запятой; Long E - длинная запись в формате с плавающей запятой; Short G - вторая форма краткой записи в формате с плавающей запятой; Long G - вторая форма длинной записи в формате с плавающей запятой; Rational - запись в виде рациональной дроби. 1. 2. Операции с числами 13 Избирая с помощью мыши нужный вид представления чисел, можно обес- печить в дальнейшем выведение чисел в командное окно именно в этой форме. Рис. 1.3 Рис. 1.4 Как видно из рис. 1.2, число, которое выведено на экран, не совпадает с вве- денным. Это обусловлено тем, что установленный по умолчанию формат пред- ставления чисел (Short) не позволяет вывести більше 6 значащих цифр. На самом деле введенное число сохраняется внутри MatLAB со всеми введенными его циф- 1. 2. Операции с числами 14 рами. Например, если избрать мышью селекторную кнопку Long E (т. е. устано- вить указанный формат представления чисел), то, повторяя те же действия, полу- чим: Рис. 1.5 где уже все цифры отображены верно (рис. 1.5). Следует помнить: - введенное число и результаты всех вычислений в системе MatLAB сохра- няются в памяти ПК с относительной погрешностью около 2.10 -16 (т. е. с точ- ными значениями в 15 десятичных разрядах); - диапазон представления модуля действительных чисел лежит в диапазоне между 10 и 10 308 − 308 + . 1.2.2. Простейшие арифметические действия В арифметических выражениях языка MatLAB используются следующие знаки арифметических операций: + - сложение; - - вычитание; * - умножение; / - деление слева направо; \ - деление справа налево; ^ - возведение в степень. Рис. 1.6 1. 2. Операции с числами 15 Использование MatLAB в режиме калькулятора может происходить путем простой записи в командную строку последовательности арифметических дейст- вий с числами, то есть обычного арифметического выражения, например: (4.5)2*7.23 - 3.14*10.4. Если после ввода с клавиатуры этой последовательности нажать клавишу Вообще вывод промежуточной информации в командное окно подчиняется таким правилам: - если запись оператора не заканчивается символом ';', результат дейст- вия этого оператора сразу же выводится в командное окно; - если оператор заканчивается символом ';', результат його действия не отображается в командном окне; - если оператор не содержит знака присваивания (=), т. е. является про- сто записью некоторой последовательности действий над числами и пе- ременными, значение результата присваивается специальной системной переменной по имени ans; - полученное значение переменной ans можно использовать в следующих операторах вычислений, применяя это имя ans; при этом следует пом- нить, что значение системной переменной ans изменяется после дейст- вия очередного оператора без знака присваивания; - в общем случае форма представления результата в командном окне име- ет вид: <Имя переменной> = <результат>. Пример . Пусть нужно вычислить выражение (25+17)*7. Это можно сделать таким образом. Сначала набираем последовательность 25+17 и нажимаем Получаем на экране результат в виде ans = 42 . Теперь записываем последователь- ность ans*7 и нажимаем (рис. 1.7). Чтобы предотвра- тить выведение промежуточного результата действия 25+17, достаточно после за- писи этой последовательности добавить символ ' ; '. Тогда будем иметь результаты в виде, представленном на рис. 1.8. Применяя MatLAB как калькулятор, можно использовать имена переменных для записи промежуточных результатов в память ПК. Для этого служит операция присваивания, которая вводится знаком равенства ' = ' в соответствия со схемой: <Имя переменной> = <выражение>[;] Имя переменной может содержать до 30 символов и должно не совпадать с именами функций, процедур системы и системных переменных. При этом сис- тема различает большие и маленькие буквы в переменных. Так, имена 'amenu' , 'Amenu', 'aMenu' в MatLAB обозначают разные переменные. Выражение справа от знака присваивания может быть просто числом, ариф- метическим выражением, строкой символов (тогда эти символы нужно заключить в апострофы) или символьным выражением. Если выражение не заканчивается 1. 2. Операции с числами 16 символом ' ; ', после нажатия клавиши <Имя переменной> = <результат>. Рис. 1.7 Рис. 1.8 Рис. 1.9 Например, если ввести в командное окно строку 'x = 25 + 17', на экране поя- вится запись (рис. 1.9) : Система MatLAB имеет несколько имен переменных, которые используются самой системой и входят в состав зарезервированных: i , j - мнимая единица (корень квадратный из -1); pi - число π (сохраняется в виде 3.141592653589793); inf - обозначение машинной бесконечности; Na - обо- значение неопределенного результата (например, типа 0/0 или inf/inf); eps - по- грешность операций над числами с плавающей запятой; ans - результат последней операции без знака присваивания; realmax и realmin – максимально и минималь- но возможные величины числа, которое может быть использованы. Эти переменные можно использовать в математических выражениях. 1.2.3. Ввод комплексных чисел Язык системы MatLAB, в отличие от многих языков программирования вы- сокого уровня, содержит в себе очень простую в пользовании встроенную ариф- метику комплексных чисел. Большинство элементарных математических функций допускают в качестве аргументов комплексные числа, а результаты формируются 1. 2. Операции с числами 17 как комплексные числа. Эта особенность языка делает его очень удобным и по- лезным для инженеров и научных работников. Для обозначения мнимой единицы в языке MatLAB зарезервированы два имени i и j. Ввод с клавиатуры значения комплексного числа осуществляется пу- тем записи в командное окно строки вида: <имя комплексной переменной> = <значение ДЧ> + i [j] *<значение МЧ>, где ДЧ - действительная часть комплексного числа, МЧ - мнимая часть. Напри- мер: Рис. 1.10 Из приведенного примера видно, в каком виде система выводит комплекс- ные числа на экран (и на печать). 1.2.4. Элементарные математические функции Общая форма использования функции в MatLAB такова: <имя результата> = <имя функции> (<перечень аргументов или их значений>). В языке MatLAB предусмотрены следующие элементарные арифметические функции. Тригонометрические и гиперболические функции sin (Z) - синус числа Z; sinh (Z) - гиперболический синус; asin (Z) - арксинус (в радианах, в диапазоне от - π /2 к + π /2); asinh (Z) - обратный гиперболический синус; cos (Z) - косинус; cosh (Z) - гиперболический косинус; acos (Z) - арккосинус (в диапазоне от 0 к π ); acosh (Z) - обратный гиперболический косинус; tan (Z) - тангенс; tanh (Z) - гиперболический тангенс; atan (Z) - арктангенс (в диапазоне от - π /2 к + π /2); 1. 2. Операции с числами 18 atan2( X,Y) - четырехквадрантный арктангенс (угол в диапазоне от - π до + π между горизонтальным правым лучом и лучом, который проходит через точку с координатами X и Y); atanh (Z) - обратный гиперболический тангенс; sec (Z) - секанс; sech (Z) - гиперболический секанс; asec (Z) - арксеканс; asech (Z) - обратный гиперболический секанс; csc (Z) - косеканс; csch (Z) - гиперболический косеканс; acsc (Z) - арккосеканс; acsch (Z) - обратный гиперболический косеканс; cot (Z) - котангенс; coth (Z) - гиперболический котангенс; acot (Z) - арккотангенс; acoth (Z) - обратный гиперболический котангенс. Экспоненциальные функции exp (Z) - экспонента числа Z; log (Z) - натуральный логарифм; log10 (Z) - десятичный логарифм; sqrt (Z) - квадратный корень из числа Z; abs (Z) - модуль числа Z. Целочисленные функции fix (Z) - округление к ближайшему целому в сторону нуля; floor (Z) - округление к ближайшему целому в сторону отрицательной бес- конечности; ceil (Z) - округление к ближайшему целому в сторону положительной бесконечности; round (Z) - обычное округление числа Z к ближайшему целому; mod (X,Y) - целочисленное деление X на Y; rem (X,Y) - вычисление остатка от деления X на Y; sign (Z) - вычисление сигнум-функції числа Z (0 при Z=0, -1 при Z<0, 1 при Z>0). 1.2.5. Специальные математические функции Кроме элементарных в языке MatLAB предусмотрен целый ряд специальных математических функций. Ниже приведен перечень и краткое содержание этих функций. Правила обращения к ним и использования пользователь может оты- скать в описаниях этих функций, которые выводятся на экран, если набрать ко- манду help и указать в той же строке имя функции. Функции преобразования координат 1. 2. Операции с числами 19 cart2sph - преобразование декартовых координат в сферические; cart2pol - преобразование декартовых координат в полярные; pol2cart - преобразование полярных координат в декартовые; sph2cart - преобразование сферических координат в декартовые. Функции Бесселя besselj - функция Бесселя первого рода; bessely - функция Бесселя второго рода; besseli - модифицированная функция Бесселя первого рода; besselk - модифицированная функция Бесселя второго рода. Бета-функции beta - бета-функция; betainc - неполная бета-функция; betaln - логарифм бета-функции. Гамма-функции gamma - гамма-функция; gammainc - неполная гамма-функция; gammaln - логарифм гамма-функции. Эллиптические функции и интегралы ellipj - эллиптические функции Якобе; ellipke - полный эллиптический интеграл; expint - функция экспоненциального интеграла. Функции ошибок erf - функция ошибок; erfc - дополнительная функция ошибок; erfcx - масштабированная дополнительная функция ошибок; erfinv - обратная функция ошибок. Другие функции gcd - наибольший общий делитель; lcm - наименьшее общее кратное; legendre - обобщенная функция Лежандра; log2 - логарифм по основанию 2; pow2 - возведение 2 в указанную степень; rat - представление числа в виде рациональной дроби; rats - представление чисел в виде рациональной дроби. |