Архитектураlab1
.pdf- Save Workspace As - Вызов окна сохранения МАТ-файла Рабочей облас-
ти;
-Set Path - Вызов окна сохранения и добавления в каталог маршрута доступа к М-файлу;
-Preferences - Установка системных свойств MATLAB;
-Page Setup - Установка настроек вывода на печать;
-Print - Печать выделенного фрагмента;
-Вызов разрабатываемых файлов (любого или всех вместе) (Recent);
-Exit MATLAB - Выход из MATLAB;
Окно обеспечивает:
-вызов всех других окон MATLAB;
-пользовательскую настройку обеих свойств MATLAB через меню «Файл
–Свойства»,
-прямые вычисления в поле окна посредством операторов и функций
MATLAB;
-создание рабочих областей сеанса работы и его текстовый протокол («дневник сессии»).
Вычисления в окне носят односеансовый характер и не запоминаются: в окне не предусмотрено запоминание файла с вычислениями! В окне можно только запомнить: имена используемых переменных, их типы и массивы значений (в виде рабочих областей) и текстовый дневник сеанса (именуемого в MATLAB сессией).
Чтобы получить возможность запоминания вычислений с результатами и их многократного вызова, необходимо вычисления в Командном окне копировать в М - файл, создаваемый в окне Редактора - отладчика М - файлов.
Типы данных в MATLAB - рис. 4. Применяемые форматы числовых данных - на рис. 5.
Рис. 4. Типы данных (массивов) в MATLAB 6.5.
Свойства MATLAB как вычислительной системы установлены по умолчанию, но их можно изменить для окон Рабочего пространства через панель «Preferences», вызываемую через меню «Файл – Свойства». Панель состоит из двух областей (рис. 4): левой белого цвета с деревом настраиваемых объектов MATLAB и правой серой с окнами ввода значений настроечных параметров. Вид правой области меняется в зависимости от выделенного для настройки объекта (на рис. 4 выделенный объект – Командное окно).
Форматы чисел (см. пример [1]):
-Short - Короткий (по умолчанию) с фиксированной точкой, 5 знаков: 0.3894 (для sin 0.4)
-Long - Длинный с фиксированной точкой, 15 знаков: 0.38941834230865
-Short e - Короткий экспоненциальный, 5 знаков мантиссы, 2 - порядка: 3.1616е+00 (для числа
π)
-Long e - Длинный экспоненциальный, 15 знаков мантиссы, 3 - порядка:
3.16159265358979е +000
-Short g - Короткий с фиксированной точкой, 6 знаков: 0.38942
-Long g - Длинный с фиксированной точкой, 16 знаков: 0.389418342308651
-Hex - Шестнадцатиричное число: 400921fb54442d18
-Bank - Комерческий: 3.14 (рубли. копейки)
+- Плюс : + для положительного числа, - для отрицательного, пробел – для нуля 10
-Rational - 368/945 (для sin 0.4), 355/113 (для числа π), отношение двух наименьших целых чисел
-Compact - Отсутствие пробела между строками
-Loose - Наличие пробела между строками
Рис. 5. ПанельСвойствасвводомнастроекдляКомандногоокна.
Диапазон используемых в MATLAB чисел чисел: 10 –308 …10 +308 . Специальныечисла:
-inf – бесконечнобольшаявеличина;
-Pi – числоπ;
-NaN - длярезультата, непредставимоговвидечисла, например, 0/0 или0 . inf;
-Eps –бесконечномалаявеличина.
1.3. ОкноРедактора– ОтладчикаМ-файлов
Рис. 6. Окно Редактора - Отладчика
Редактор/отладчик предназначен для создания и отладки М-файлов. Он поддерживает следующие операции от кнопок окна (Кнопка окна – слева направо на рис.1.6 ):
•создание нового М-файла (Новый),
•открытие существующего М-файла (Открыть) ,
•сохранение М-файла на диске (Сохранить),
•удаление фрагмента (Вырезать),
•копирование фрагмента (Копировать),
•вставка фрагмента (Вставка),
•печать М-файла (Печать),
•текущая помощь (О программе),
•установить/удалить точку прерывания (при отладке М-файла) – (Установить/Снять контрольную точку),
•удалить все точки прерывания (при завершении отладки М-файла) – (Снять все контрольные точки),
•пошаговую трассировку М-файла с заходом в вызываемые М-файлы (Заходить в локи),
•пошаговую трассировку М-файла без захода в вызываемые М-файлы (Пошаговое выполнение),
•продолжить выполнение программы без трассировки (Продолжить),
•завершить отладку (Окончить отладку).
При написании М-файла в окне осуществляется синтаксический контроль его программы с цветовым выделением синтаксических объектов:
-ключевые слова языка программирования (function, for, end и т.п.)
—синий цвет;
-операторы, константы и переменные — черный цвет;
-комментарии после знака «%» — зеленый цвет;
-символьные переменные (в апострофах) — зеленый цвет;
-синтаксические ошибки — красный цвет.
М-файлы бывают двух типов: сценарии и функции.
Файл-сценарий, именуемый также Script-файлом, является просто записью серии команд без входных и выходных параметров. Он имеет следующую структуру.
%Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями
Важны следующие свойства файлов-сценариев:
•они не имеют входных и выходных аргументов;
•работают с данными из рабочей области;
•в процессе выполнения не компилируются;
•представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную
той, что используется в сессии при работе в командном окне.
Основным комментарием является первая строка текстовых комментариев,
адополнительным — последующие строки. Основной комментарий выводится привыполнении команд lookfor и help имя_каталога. Полный ком-
ментарий выводится при выполнении команды help Имя_файла.
М-файл- функция является типичным объектом языка программирования системы Матлаб. Одновременно он является полноценным модулем с точки зрения структурного программирования, поскольку содержит входные и вы-
ходные параметры и использует аппарат локальных переменных. Структура такого модуля с одним выходным параметром выглядит следующим образом:
function vаг = f_name(Список_параметров) %Основной комментарий
%Дополнительный комментарий Тело файла с любыми выражениями vаг=выражение
М-файл функции имеет следующие свойства:
•он начинается с объявления function, после которого указывается имя переменной var — выходного параметра, имя самой функции и список ее входных параметров;
•функция выдает значение и может использоваться в виде name(Список_параметров) в математических выражениях;
•все переменные, имеющиеся в теле файла-функции, являются локальными, то есть действуют только в пределах тела функции;
•файл-функция является самостоятельным программным модулем, который общается с другими модулями через свои входные и выходные параметры;
•правила вывода комментариев те же, что у файлов-сценариев;
•файл-функция служит средством расширения системы Матлаб;
•при обнаружении файла-функции он компилируется и затем исполняется, а созданные машинные коды хранятся в рабочей области системы Матлаб.
Последняя конструкция vаг = выражение вводится, если требуется, чтобы функция выдавала результат вычислений.
Приведенная форма файла-функции характерна для функции с одним выходным параметром. Если выходных параметров больше, то они указываются в квадратных скобках после слова function. При этом структура модуля имеет следующий вид:
function [vаг1,vаг2,...] = f_namе(Список_параметров) %Основной комментарий
%Дополнительный комментарий Тело файла с любыми выражениями var1-выражение
vaг2=выpaжeниe
…
Такая функция во многом напоминает процедуру. Ее нельзя слепо использовать непосредственно в математических выражениях, поскольку она выдает не единственный результат, а множество результатов — по числу выходных параметров. Если функция, имеющая несколько выходных параметров, входит в состав математического выражения, для вычислений в выражении будет ис-
пользован первый из выходных параметров Это зачастую ведет к ошибкам в вычислениях. Поэтому, как отмечалось, данная функция используется как
отдельный элемент программ в виде
[varl,var2, …] = namе(Список_параметров)
После такого вызова выходные переменные varl, var2, … становятся определенными и их можно использовать в последующих математических выражениях и иных сегментах программы Если функция используется в виде f_namе(Список_параметров), то выдается значение только для первого выходного параметра - переменной varl.
При отладке и вычислениях в окне Редактора - отладчика СООБЩЕНИЯ ОБ ОШИБКАХ И РЕЗУЛЬТАТЫ ВЫЧИСЛЕНИЙ ВЫДАЮТСЯ В КОМАНДНОЕ ОКНО МАТЛАБА, что исключает возможность искажения восприятия пользователем отлаживаемой или работающей программы!
1.4.Правила вычислений в Командном окне
Работа с системой в режиме прямых вычислений носит диалоговый харак-
тер и происходит по правилу «Задал выражениеполучиответ».
Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) в командной строке и завершает ввод нажатием клавиши Enter.
Для указания места ввода используется символ >>.
Данные вводятся с помощью строчного редактора (встроенного в Матлаб (по умолчанию) иливнешнего, выбираемогопользователем).
Знаком присваивания является привычный математикам знак равенства = , а некомбинированный знак :=, как во многихдругих математических системах.
Правила записи матрицы, вектора и скаляра: большимы буквами (например, А) обозначаются матрицы, малыми (а) - векторы и скаляры. Векторные функции (выдающие значения в виде вектора) обозначаются большими буквами ( F(x) ), скалярные функции (их значение — скаляр — действительное число) обозначаются малымибуквами(f(x)).
Комплексное или мнимое число определяется по наличию в его составе кон- |
|
стант i или j, которым присваивается значение sqrt(-1) = |
−1 . Комплексное число |
можно вводить одним из следующих способов: 5+3i; |
5+3*I; 5+3j; 5+3*j или |
5+3*sqrt(-1) -разные виды одногои тогоже числа.
Значения аргумента функции в виде выражения присваивания вводятся раньше выражения функции и отделяются от него точкой с запятой (см. пп. 11-13). Аргумент в виде одного числа можно вставлять в окаймлении круглых скобок непосредственно в выражение функции. Правильный ввод простейшего вычисляемого выражений : y = sin (0.35) Enter или sin (0.35) Enter. Если аргументов несколько, то они отделяются запятыми.
Арифметические операции для массивов отличаются от матричных операций
наличием |
|
точки |
|
перед |
знаком |
|
операции: |
|
|
А.*Б (умножение массивов - массивы должны иметь одинаковое коли- |
|||||||
чество |
чисел |
или |
один |
из |
них |
должен |
быть |
числом), |
|
А./Б |
(деление), |
А.\Б (левое |
деление), |
А.^Б (возведение |
в степень). |
Точка перед «+» и «-» не ставится!
Встроенные функции (например sin) записываются строчными буквами и их аргументы указываются в круглых скобках (см. табл. 2 [1]). Если аргументов несколько, то они отделяются запятыми.
Элементарные функции в MATLAB (Большими буквами обозначены массивы, малыми— элементмассиваиличисло)
Таблица2
Вид |
Чтовычисляет |
Вид |
Чтовычисляет |
|
|
|
|
|
||||
|
|
|
|
|
|
|
||||||
|
Абс.значения для действ. и комплекс- |
|
|
Аргументы |
|
комплексных |
||||||
abs(X) |
ных аргументов, ASCII-коды вместо |
angle(Z) |
чисел в радианах в пределах от -π до |
|||||||||
|
символовипробеловдлястроковых |
|
+π |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
real(Z), imag(Z) |
Действ. имнимуючастикомпл. чисел |
conj(Z) |
|
Комл.соряженныечисладля |
||||||||
чиселZ |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||
cplxpair(Z), |
|
ceil(X) |
Округляет |
действ.Х |
до |
ближайшего |
||||||
cplxpair(Z,tol), |
Сортировка комплексных чисел по раз- |
целого |
≥Х |
Удаляет |
дробную |
часть |
||||||
cplxpair(Z[],dim) |
fix(X) |
|||||||||||
числа. Округляет действ.Х до бли- |
||||||||||||
, |
нымправилам |
floor(X) |
||||||||||
cplxpair(Z,tol,d |
|
round(X) |
жайшего целого ≤Х Округляет |
|||||||||
im) |
Вычисляет остаток от деления х на у; |
|
действХдоближайшегоцелого |
|
||||||||
|
|
Г 1,х>0, |
Для |
действ. |
чисел: |
|||||||
mod(X,Y) |
по определениюmod(x,o)=x. Вычисляет |
sign(X) |
||||||||||
sign(x)= |
0,x |
=0, |
1-1, |
х<0. |
Для |
|||||||
rem(X,Y) |
остаток от деления х на у; по опреде- |
sign(Z) |
||||||||||
компл.. чисел: sign(z) = z/abs(z) |
|
|||||||||||
|
лениюmod(x,o)=NaN |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|||||||||
factor(n) |
Выдаетвсепростыемножителичислаn |
primes(n) |
Выдаетвсепростыечиславдиапазоне |
|||||||||
от0 доn |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|||||||||
gcd(m,n), |
|
icm(m n), |
Вычисляетнаименьшееобщеекратное |
|||||||||
[g,c,d]= |
Функциинаибольшегообщегоделителя |
чисел mиn или — пар чисел в масси- |
||||||||||
gcd(m,n), |
icm(A,B) |
|||||||||||
gcd(A,B), |
|
|
вахАиВ |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
[N,D]=rat(X), |
Функции представления результата в |
|
Формирует матрицу из всех переста- |
|||||||||
rat(X), |
|
новок элементов вектора v {сам век- |
||||||||||
виде рационального числа или цепной |
perms(v) |
|||||||||||
rat(X,tol), |
тор является одной из строк этой мат- |
|||||||||||
S= rat(X), |
дроби |
|
||||||||||
|
рицы) |
|
|
|
|
|
|
|
|
|||
S= rat(X,k) |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||||||
sqrt(Z) |
Вычисляетквадратныйкорень |
log(X) |
Натуральный |
логарифм |
(по |
основа- |
||||||
ниюе) |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|||||||
exp(Z) |
е в степени, показатели которой - значе- |
expm(X) |
матричная |
экспонента - ев |
степени, |
|||||||
нияэлементовмассиваZ |
показателькоторойматрца |
|
|
|||||||||
|
|
|
|
|||||||||
|
|
|
|
|||||||||
pov2(Z), |
Степень числа 2. V = |
nextpov2(n) |
Вычисляет p = nextpov2(n), что 2.^p ≥n |
|||||||||
pov2([M,P]) |
pov2(Z) = 2.^Z (компл. или действ.), X |
nextpov2(v) |
(n-число) Вычисляет p = nextpov2(v), |
|||||||||
log2(Z) |
Логарифм чисел массива Z по |
|
Десятичный логарифм чисел иассива |
|||||||||
основанию 2. Вычисляет массив М ман- |
log10(Z) |
|||||||||||
[M,P]=log2(X) |
Z. |
|
|
|
|
|
|
|
|
|||
тисс m и массив Р целочисленных пока- |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|||||||||
sin(Z), |
Тригонометрич. игиперболич.синусы |
сsс(Z), |
Тригонометрич. и гиперблич. косекан- |
|||||||||
сы |
|
|
|
|
|
|
|
|
||||
sinh(Z) |
|
сsсh(Z) |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
asin(Z), |
|
Тригонометрич. игиперболич.арксинусы |
aсsс(Z), |
|
Тригонометрич. и гиперболич. арк- |
|||||||
|
|
косекансы |
|
|
||||||||
asinh(Z) |
|
|
|
|
|
|
aсsсh(Z) |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||
cos(Z), |
|
Тригонометрич. игиперболич.косинусы |
acos(Z), |
|
Тригонометрич. и гиперболич. аркко- |
|||||||
|
|
синусы |
|
|
||||||||
cos h(Z) |
|
|
|
|
|
|
acosh(Z) |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||
sec(Z), |
|
Тригонометрич. игиперболич.секансы |
|
asec(Z), |
|
Тригонометрич. и гиперболич. арксе- |
||||||
|
|
|
кансы |
|
|
|||||||
sech(Z) |
|
|
|
|
|
|
asech(Z) |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||
tan(Z), |
|
Тригонометрич. игиперболич.тангенсы |
atan(Z), |
|
Тригонометрич. и гиперболич. арк- |
|||||||
|
|
тангенсы |
|
|
||||||||
tanh(Z) |
|
|
|
|
|
|
atanh(Z) |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Г arctg(y/x), |
x>0, |
- |
<y< + |
оо |
cot(Z), |
|
Тригонометрич. и гиперболич. котан- |
|||
atan2(Y,X) |
|
atan2(Y,X)= J |
π -arctg(y/|x|), x<0,0∞≤у< |
|
||||||||
|
|
генсы |
|
|
||||||||
|
|
∞[ -7t+arctg(|y/x|), x<0,- |
≤у<0 |
|
coth(Z) |
|
|
|
||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
[TH,R] |
= |
Преобразует |
декартовые |
координаты |
|
|
|
Тригонометрический |
и |
гипербличе- |
|
=cart2pol(X,Y |
(х,у) вполярные(ТН,R);уголТН-врад. |
|||||
acot(Z),coth(Z) |
|
|
) |
|
Преобразует |
3-мерные |
декартовые |
|||||
|
скийарккотангенсы |
|
|
|
[TH,R,Z] |
= |
||||||
|
|
|
|
|
|
|
=cart2pol(X,Y |
координаты (х,у,z) в цилиндрические |
||||
|
|
|
|
|
|
|
,Z) |
|
(ТН,R,z); угол ТН-в рад. |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[X,Y] |
= |
|
|
|
|
|
|
Преобразование 3-мерных декартовых |
pol2cart(TH, |
Преобразование полярных и цилинд- |
||||||||
[AZ,EL,R] |
= |
координат в сферические; углы AZ и |
R) |
|
||||||||
= |
рическихкоординатвдекартовы |
|||||||||||
=cart2sph(X,Y,Z) |
EL - в радианах |
|
|
|
[X,Y,Z] |
|||||||
|
|
|
|
|
pol2cart(TH, |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
R,Z) |
|
|
|
|
|
[X,Y,Z] |
= |
Преобразование сферических коорди- |
|
|
|
|
|
|||||
=sph2cart(AZ,EL, |
нат в декартовы |
|
|
|
|
|
|
|
|
|||
R) |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Для изменения формата вывода результата вычисления необходимо до нажатия клавиши Enter установить нужный формат через меню «Файл - Свойства» (см.
рис. 1.3 и1.5).
Для блокировки вывода результата вычислений некоторого выражения (ввиду промежуточного характера ) после него надо установить знак ; (точка с запятой): если блокировка отсутствует, то Матлаб выдаст результат расчета по части выражения до неустановленного знака и сообщение об ошибке, а остальную часть вычисляемого выраженияигнорирует(см. рис. 6В).