Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебно-Технологический_Практикум_УТС.Б_1

.pdf
Скачиваний:
28
Добавлен:
10.02.2015
Размер:
775.71 Кб
Скачать

Естественно, что действуют все горячие клавиши редактирования

WINDOWS:

Ctrl-c - копирование,

Ctrl-x-вырезание с помещением вырезанного объекта в буфер обмена и

Ctrl-v- вставка из буфера обмена в позицию курсора активного ок-

на WINDOWS.

PgUp — перелистывание страниц сессии вверх, PgDn — перелистывание страниц сессии вниз.

Замечание: клавиши "стрелка вверх" и "стрелка вниз" используются для подстановки после маркера строки командного окна MATLAB ранее введенных команд, например, для их исправления. При этом обеспечивается перелистывание строк команд снизу вверх или сверху вниз. Если предварительно набрать один символ или несколько символов команды, то перелистывание будет выполняться по списку команд, совпадающих с введенными символами.

ЗАДАНИЕ 4

Найдите файлы MATLABrc.m и startupsav.m на Вашей машине. Просмотрите, используя стандартный блокнот Windows или FAR, содержимое этих файлов. Ответьте на вопросы – что надо изменить в файле MATLABrc.m, чтобы изменился вид командного окна MATLAB при его запуске? Что надо изменить в файле startupsav.m, чтобы при загрузке MATLAB автоматически загружалась рабочая область предыдущей сессии? Сделайте вывод и занесите его в отчет. Исследуйте работу с историей команд с помощью стрелок вверх и вниз. Результаты исследований с выводами внесите в отчет, используя режим протокола сессии MATLAB .

1.5 КОМАНДЫ УПРАВЛЕНИЯ ОКНОМ CLC, HOME И ECHO

Ниже приведены некоторые команды управления окном командного режима.

clc — очищает экран и размещает курсор в левом верхнем углу пустого экрана.

home — возвращает курсор в левый верхний угол окна.

echo <name_flle> on — включает режим вывода на экран текста

Script-файла. Script файл – это m-файл, содержащий список команд MATLAB, которые могут выполняться по одной команде – имени

Script-файла. Script-файл называют еще файлом -сценарием.

11

echo <name_file> off — выключает режим вывода на экран текста

Script-файла.

echo <name_file> — меняет режим вывода на противоположный. echo on all — включает режим вывода на экран текста всех М-

файлов,

echo off all — отключает режим вывода на экран текста всех М- файлов.

more on — включает режим постраничного вывода (полезен при просмотре больших М-файлов),

more off — отключает режим постраничного вывода (в этом случае для просмотра больших файлов надо пользоваться линейкой прокрутки).

1.6 РЕЖИМ ПРЯМЫХ ВЫЧИСЛЕНИЙ MATLAB

Под режимом прямых вычислений понимается режим, при котором пользователь не должен писать программу расчета. Работа с системой в режиме прямых вычислений носит диалоговый характер. Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его - если нужно - в командной строке, и завершает ввод нажатием клавиши ENTER. При этом:

для строки ввода в командном окне MATLAB используется символ ' » ' ;

данные вводятся с помощью строчного редактора MATLAB;

для блокировки вывода результата вычислений в командное

окно некоторого выражения после выражения надо установить знак ' ;

'- точка с запятой;

если не указана переменная со значением результата вычислений, то MATLAB назначает такую переменную с именем ans;

знаком присваивания является математический знак равенства

'= ';

встроенные функции (например, sin) записываются строчными буквами и их аргументы указываются в круглых скобках;

результат вычислений выводятся в строках вывода (без знака '

» ');

диалог происходит в стиле "задал вопрос — получил ответ ".

12

1.7 ВЕКТОРНО-МАТРИЧНЫЕ ОПЕРАЦИИ В РЕЖИМЕ ПРЯМЫХ ВЫЧИСЛЕНИЙ

В режиме прямых вычислений MATLAB позволяет выполнять действия над векторами и матрицами.

1.7.1 Действия над векторами в MATLAB

Вектор в MATLAB задается списком в квадратных скобках. Элементы списка разделяются или пробелами или запятыми или точкой с запятой. Если разделители запятая или пробел, формируется векторстрока, если разделитель – точка с запятой, формируется векторстолбец. Две записи вектора-строки V=[1 2 3 4] и V=[1,2,3,4] являются идентичными – это два одинаковых вектора-строки. Вектор W=[1;2;3;4] – вектор-столбец. Элементы вектора имеют порядковые номера, начиная с единицы. Для обращения к n-му элементу вектора V в MATLAB используется механизм индексирования - выражение V(n). Здесь n – индекс или номер элемента вектора, а V(n) - индексированная переменная - n-й элемент вектора V.

ЗАДАНИЕ 5

В режиме прямых вычислений задайте произвольную вектор – строку V целых чисел из 5 элементов и произвольный вектор – столбец W целых чисел из 7 элементов. Найдите значение выражений a= sin(V),b=exp(V),c= sin(W),d=exp(W). Сделайте вывод, как MATLAB

вычисляет значение функции от векторного аргумента.. Попробуйте задать в качестве аргумента функций идентификатор другого регистра. Сделайте выводы. Завершите строку ввода функции знаком "точка с запятой". Получите ответ. Внесите результаты и выводы в отчет.

1.7.2 Действия над матрицами в MATLAB

Двумерная или плоская матрица задается в MATLAB векторомстолбцом, элементами которого являются вектор - строки: M=[1 2 3;4 5 6] . Здесь задана матрица М размером [2 х 3] состоящая из 2-х строк и 3-х столбцов. Для обращения к элементу плоской матрицы необходимо задать номер строки и столбца, на пересечении которых он находится M(i,j), где М- имя матрицы, i — номер строки и j — номер столбца.

ЗАДАНИЕ 6

В режиме прямых вычислений задайте произвольную плоскую матрицу M целых чисел размером [3 x 4]. Найдите значение выражений a= sin(M),b=exp(M). Сделайте вывод, как MATLAB вычисляет

13

значение функции от матричного аргумента.. Внесите результаты и выводы в отчет.

1.8 МАТЕМАТИЧЕСКИЕ ВЫРАЖЕНИЯ MATLAB

Математические выражения MATLAB строятся на основе числовых, символьных и системных констант, переменных, операторов, функций и различных спецзнаков.

1.8.1 Числовые действительные и комплексные константы

Числовые константы — простейшие элементы языка MATLAB, представляющие количественные данные. Числа можно считать константами, имя которых совпадает с их значениями. Числа используются в общепринятом представлении о них. Они могут быть целыми, дробными, с фиксированной точкой и плавающей точкой. Возможно, представление чисел в научном формате с указанием мантиссы и порядка числа. Ниже приведены примеры представления чисел:

0 2 -3 2.301 0.00001 123.456e.24

В мантиссе чисел целая часть отделяется от дробной не запятой, а точкой, что принято в большинстве языков программирования. Для отделения порядка числа от мантиссы используется символ е. Знак "плюс" у чисел не проставляется. Пробелы между символами в числах не допускаются.

Числа могут быть комплексными z=Re(x)+Im(x)*i. Такие числа содержат действительную Re(z) и мнимую Im(z) части. Мнимая часть имеет множитель i или j, означающей корень квадратный из -1:

3i 2j 2+3i -3.1411 -123,456+2.7е-3

Функция real(z) возвращает действительную часть комплексного числа Re(z), a

функция imag(z) - мнимую Im(Z). Для получения модуля комплексного числа используется функция abs(z), а для вычисления фазы

- angle(z).

Символьные вычисления MATLAB может выполнять с помощью специального пакета расширения Symbolic.

1.8.2 Константы и системные переменные

Константа — это предварительно определенное числовое или символьное значение, представленное уникальным именем. Числа (например: 1, -2 и 1.23) являются безымянными числовыми константами. Другие виды констант в MATLAB принято называть системными переменными, поскольку, с одной стороны, они задаются системой

14

при ее загрузке, а с другой - могут переопределяться. Основные системные переменные, применяемые в системе MATLAB, указаны ниже:

i или j - мнимая единица (корень квадратный из-1); pi - число "пи" 3.1415926...;

eps — погрешность для операций над числами с плавающей точкой

(2^ -52);

realmin — наименьшее число с плавающей точкой (2^-1022); realmax — наибольшее число с плавающей точкой (2^1023); inf - значение машинной бесконечности;

ans - переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея;

NaN — указание на не числовой характер данных (Not-a-Number). Cистемные переменные могут переопределяться. Можно задать си-

стемной переменной eps иное значение, например eps=0.0001. Символьные константы — это цепочка символов, заключенных в

апострофы, например:

'Hello myfriendl' 'Привет' '2+3'

Если в апострофы помещено математическое выражение, то оно не вычисляется и рассматривается просто как цепочка символов. Так что '2+3' не будет возвращать число 5. Однако с помощью специальных функций преобразования символьные выражения могут быть преобразованы в вычисляемые.

Текстовые комментарии

Текстовые комментарии вводятся с помощью оператора — символа % , например:

%Ниже представлено задание функции вычисления факториала

Переменные MATLAB

Переменные MATLAB могут быть числовыми или символьными, векторными или матричными.

В системе MATLAB можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком равенства =:

Имя_переменной = Выражение Типы переменных заранее не декларируются. Они определяются

выражением, значение которого присваивается переменной. Так, если это выражение вектор или матрица, то переменная будет векторной или матричной.

15

Имя переменной (ее идентификатор) может содержать сколько угодно символов, но запоминаются и идентифицируются только 31 первых символа. Имя любой переменной не должно совпадать с именами других переменных, функций и процедур системы, то есть оно должно быть уникальным. Имя должно начинаться с буквы, может содержать цифры и символ подчеркивания. Недопустимо включать в имена переменных пробел и специальные знаки, например: +, -, *, / и так далее. Желательно давать содержательные имена для обозначений переменных, например speed_l для переменной, обозначающей скорость первого объекта.

Переменные могут быть обычными и индексированными — то есть элементами векторов или матриц. Могут использоваться и символьные переменные, причем символьные значения заключаются в апострофы, например s='Demo'.

1.8.3 Уничтожение определений переменных — команда clear

В памяти переменные занимают определенное место, называемое рабочим пространством — workspace. Для очистки рабочего пространства используется функция clear в разных формах.

clear — уничтожение определений всех переменных; clear х — уничтожение определения переменной х;

clear а, Ь, с — уничтожение определений переменных списка и так далее.

Уничтоженная (стертая в рабочем пространстве) переменная становится неопределенной. Использовать такие переменные нельзя и такие попытки будут сопровождаться выдачей сообщений об ошибке.

Примеры задания и уничтожения переменных:

>>x=2*pi

х =

6.2832

>>V=[1 2 3 4 5] V=

1 2 3 4 5 >>MAT

??? Undefined function or variable 'MAT. >>MAT=[1 2 3 4; 5 6 7 8]

МАТ= 1 2 3 4 5 6 7 8

>>clear V

16

>>V

???Undefined function or variable 'V. >> clear

>> x

???Undefined function or variable 'x'.

???Undefined function or variable 'M'.

1.8.4 Операторы и функции MATLAB

Оператор — это специальное обозначение для определенной опе-

рации над данными — операндами. Следует отметить, что большинство операторов относится к матричным операциям. Например, операторы умножения * и деления / вычисляют произведение и частное от деления двух массивов, векторов или матриц. Есть ряд специальных операторов, например: оператор \ означает деление справа налево, а операторы .* и ./ означают почленное умножение и деление массивов.

Полный список операторов можно получить, используя команду

>> help ops

Функции MATLAB — это имеющие уникальные имена объекты, выполняющие преобразования над своими аргументами и при этом возвращающие результаты этих преобразований. Возврат результата

— отличительная черта функций. При этом результат вычисления функции с одним выходным параметром подставляется на место ее вызова, что позволяет использовать функции явно в математических выражениях. Функции, в общем случае, имеют список аргументов (формальных параметров), заключенный в круглые скобки. Например, функция Бесселя записывается как bessel(NU,X). В данном случае список параметров содержит два аргумента — NU в виде числа и Х в виде вектора.

Многие функции допускают ряд форм записи, например, отличающихся списком своих параметров. Если функция возвращает несколько значений, то она записывается в виде:

[Y1, Y2,...]=func(X1, X2„..)

где Yl, Y2,... — список выходных аргументов и X1 Х2,... — список входных аргументов.

Со списком элементарных функций можно ознакомиться, выполнив команду help elfun, а со списком специальных функций — help specfun. Функции могут быть встроенными (внутренними) и внешними, или М-функциями. Так, встроенными являются наиболее распространенные элементарные функции, например sin(x) и ехр(у). Внешние функции содержат свои определения в М-файлах. Задание таких

17

функций выполняется с помощью специального редактора М-файлов. Встроенные функции хранятся в откомпилированном ядре системы MATLAB, в силу чего они выполняются предельно быстро.

Квстроенным элементарным функциям MATLAB относятся:

1.тригонометрические;

2.гиперболические;

3.экспоненциальные;

4.логарифмические;

5.округления дробей, остатков;

6.работы с комплексными числами.

Рассмотрим их.

Тригонометрические, гиперболические и обратные к ним функции (угловые величины - только в радианах!!!):

sin(), cos(), tan(), cot() - синус, косинус, тангенс и котангенс;

sec(), csc() - секанс, косеканс;

asin(), acos(), atan(), acot() - арксинус, арккосинус, арктангенс,

арккотангенс;

asec(), acsc() - арксеканс, арккосеканс.

sinh(), cosh(), tanh(), coth() - гиперболические синус, косинус,

тангенс и котангенс;

sech(), csch() - гиперболические секанс, косеканс;

asinh(), acosh(), atanh(), acoth() - гиперболические арксинус, арк-

косинус, арктангенс, арккотангенс;

asech(), acsch() - гиперболические арксеканс, арккосеканс. Экпоненциальные, степенные функции и логарифмы:

exp() - экспоненциальная функция;

log() - натуральный логарифм;

log10() - десятичный логарифм;

log2() - логарифм по основанию 2;

pow2() - возведение числа 2 в степень;

sqrt() - квадратный корень;

- nextpow2() - степень числа 2, в которую надо возвести число 2, для того, чтобы результат был не меньше аргумента. Пример: 2^5 =

32. nextpow2(32) = 5.

Функции округления дробей и функции остатков:

fix() - округление до ближайшего целого по направлению к нулю(отбрасывание дробной части числа); Пример: fix(1.99)=1; fix(- 1.99)=-1.

18

floor(), ceil() - округление до ближайшего целого по направлению к минус бесконечности или плюс бесконечности;

Пример: floor(1.3) = 1; ceil(1.3) = 2.

round() - округление до ближайшего целого;

Пример: round(1.3) = 1; round(1.5) = 2.

mod()- остаток от целочисленного деления со знаком.

Пример: mod(7,3) = 1; round(-7,3) = -1.

rem() - остаток от целочисленного деления без знака.

Пример: rem(7,3) = 1; rem(-7,3) = 1.

sign() - сигнатура числа - единичный модуль со знаком числа.

Пример: sign(-1) = -1; sign(1.5) = 1.

Функции для работы с комплексными числами:

complex() - формирует комплексное число по его действительной и мнимой части;

Пример: complex(1.0, 3.0)=1.0 + 3.0i;

real(), image() - возвращают действительную и мнимую части комплексного числа;

Пример: real(1.0+3.0i) = 1; image(1.0+3.0i) = 3.0;

conj() - возвращает комплексно-сопряженное число;

Пример: conj(1.0+3.0i) = 1.0-3.0i;

abs(), angle() - Модуль и фаза комплексного числа.

Пример: abs(3.0+4.0i) = 5; angle(3.0+4.0i) = 0.9273.

1.8.5 Оператор : (двоеточие)

Часто необходимо произвести формирование упорядоченных числовых последовательностей. Такие последовательности нужны для создания векторов или значений абсциссы при построении графиков. Для этого в MATLAB используется оператор : (двоеточие).

Синтаксическая форма оператора двоеточие имеет вид: Начальное_значение:Шаг:Конечное_значение Данная конструкция порождает последовательность чисел, которая

начинается с начального значения, идет с заданным шагом и завершается конечным значением. При этом действуют следующие правила:

Начальное_значение< Конечное_значения Шаг>0 Начальное значение > Конечное_значент Шаг<0

Если шаг не задан, то он принимает значение 1 или -1 в указанных соотношениях. Примеры применения оператора : даны ниже:

>> 1:5 ans =

1 2 3 4 5

19

>> i=1:-0.1:0 i =

Columns 1 through 7

1.0000 0.9000 0.8000 0.7000 0.6000 0.5000 0.4000 Columns 8 through 11

0.3000 0.2000 0.1000 0

Форматы чисел — команда format

По умолчанию MATLAB выдает числовые результаты в нормализованной форме с четырьмя цифрами после десятичной точки и одной до нее. Многих такая форма представления не всегда устраивает. Поэтому при работе с числовыми данными можно задавать различные форматы представления чисел. Однако в любом случае все вычисления проводятся с предельной, так называемой "двойной" точностью. Для установки формата представления чисел используется команда

>> format name, где name - имя формата. Для числовых данных name может быть следующим сообщением:

short — короткое представление в фиксированном формате (5 знаков),

short e - короткое представление в экспоненциальном формате (5 знаков мантиссы и 3 порядка),

long - длинное представление в фиксированном формате (15 знаков),

long e - длинное представление в экспоненциальном формате (15 знаков мантиссы и 3 порядка),

hex — представление чисел в шестнадцатеричной форме; bank - представление для денежных единиц.

Задание формата сказывается только на форме вывода чисел. Вычисления все равно происходят в формате двойной точности, а ввод чисел возможен в любом удобном для пользователя виде.

1.9 ОСНОВЫ РАБОТЫ С ВЕКТОРАМИ И МАТРИЦАМИ

1.9.1 Задание структур

MATLAB - система специально предназначенная для проведения вычислений с векторами, массивами и матрицами. При этом она по умолчанию предполагает, что каждая заданная переменная - массив или вектор. Все определяется конкретным значением переменной. В дополнение вышесказанному обратим внимание на следующее.

20