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

Методичка - ТАУ и МАТЛАБ

.pdf
Скачиваний:
332
Добавлен:
09.04.2015
Размер:
807.6 Кб
Скачать

- 17 -

4 оконца навигатора

 

Оконце просмотра

 

Добавление выделенного до-

Справки

 

выделенного доку-

 

кумента в форточку Избранное

 

 

 

 

 

Оконце

Назначение

Содержа-

Содержание справочной

ние

документации по средсвам

(Contents)

Матлаба

Термины

Алфавитный перечень

(Indeks)

терминов (статьи для них –

 

в форточке просмотра) –

 

блочный вывод по заглав-

 

ной букве термина.

Поиск

Поиск справочного мате-

(Serch)

риала по 4 типам заданий.

Избранное

Создание и хранение Под-

(Favorites)

борки выбранных справоч-

 

ных материалов.

Переход к предыдущему или к следующему Документам

Переход к предыдущей или к следующей Страницам

1.1.2. Командное окно

Окно просмотра

 

Техописание:

 

Просмотр

Симулинк - библиотеки

 

Help

 

папок

 

 

 

 

 

 

 

 

Назначение команд меню “Файл”

 

 

1

Открыть: редактор/отладчик для М-файла, графическое

 

 

 

окно для рисунка, окно новой Симулинк – модели, окно

1

 

 

 

 

создания графического интерфейса.

2

 

 

 

2

Открыть любой файл Матлаба.

3

 

 

3

Закрыть командное окно.

 

 

4

Импорт данных.

4

 

 

5

Вызов окна сохранения МАТ-файла Рабочей области

 

 

5

 

 

 

 

6

Вызов окна сохранения и добавления в каталог маршру-

 

 

 

та доступа к М-файлу.

6

 

 

 

7

Установка системных свойств Матлаба.

 

 

 

 

7

 

8

Установка настроек вывода на печать

 

 

9

Печать выделенного фрагмента

8

 

 

10

Вызов разрабатываемых файлов (любого или всех вме-

 

 

 

 

9

 

 

сте)

 

 

11

Выход из Матлаба

10

 

 

 

 

 

Рис. 1.3. Командное окно и меню “Файл”

11

- 18 -

Оно появляется на экране (рис.1.3) при вызове пакета с приглашением обратиться к справочной информации Mathlab help. Окно обеспечивает:

вызов всех других окон Матлаба,

пользовательскую настройку общих свойств Матлаба через меню «Файл – Свойства»,

суперкалькуляционные вычисления в поле окна посредством операторов и функций Матлаба,

создание рабочих областей сеанса работы и его текстовый протокол («дневник сессии»).

Внимание! Вычисления в окне носят односеансовый характер и не запоминаются: в окне не предусмотрено запоминание файла с вычислениями!

В окне можно только запомнить: имена используемых переменных, их типы и массивы значений (в виде рабочих областей) и текстовый дневник сеанса (именуемого в Матлабе сессией).

Чтобы получить возможность запоминания вычислений с результатами и их многократного вызова, необходимо вычисления копировать в специально создаваемый для этого М - файл в окне редактора – отладчика М –файлов.

Типы данных в Матлабе – рис.1.4.Применяемые форматы числовых данных – на рис 1.5.

МАССИВ (ARRAY)

 

символьный

 

ЧИСЛОВОЙ

 

ячеек

 

структур

 

 

 

функциональных

 

( char)

 

( NUMERIC )

 

( cell )

 

( structure )

 

 

 

 

манипуляторов

 

 

 

 

 

 

 

 

 

 

 

 

 

( function handle)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пользовательских классов

ява - классов

 

 

 

 

 

 

 

( user class )

 

( java class )

 

целых чисел со знаком и

 

чисел одинарной точности

 

чисел двойной точности

без знака 8-, 16- и 32-битовых

 

 

 

 

( single )

 

( double )

( int8, uint8 / int16, uint16 / int32, uint32)

двумерных разреженных матриц двойной точности

( sparse )

Рис.1.4. Типы данных ( массивов) в Матлабе 6

Свойства Матлаба как вычислительной системы установлены по умолчанию, но их можно изменить для окон Рабочего пространства через панель «Preferences», вызываемую через меню «Файл – Свойства». Панель состоит из двух областей (рис.1.4): левой белого цвета с деревом настраиваемых объектов Матлаба и правой серой с окнами ввода значений настроечных параметров. Вид правой области меняется в зависимости от выделенного для настройки объекта (на рис.1.4 выделенный объект – Командное окно).

Форматы устанавливаемых чисел: пример

[1]

 

1

 

 

 

1

Короткий (по умолчанию) с фикси-

2

 

 

рованной точкой, 5 знаков: 0.3894 (для

 

 

 

 

sin 0.4)

3

 

 

 

2

Длинный с фиксированной точкой, 15

 

 

 

 

4

 

 

знаков: 0.38941834230865

 

5

 

3

Короткий экспоненциальный, 5 зна-

 

 

ков мантиссы, 2 - порядка: 3.1616е+00

 

6

 

 

 

 

(для числа π)

 

7

 

 

 

 

4

Длинный экспоненциальный, 15 зна-

8

 

 

ков мантиссы, 3 - порядка:

 

 

3.16159265358979е+000

 

9

 

 

 

 

5

Короткий с фиксированной точкой, 6

 

 

 

10

 

 

знаков: 0.38942

 

11

 

6

Длинный с фиксированной точкой, 16

12

 

 

знаков: 0.389418342308651

 

7

Шестнадцатиричное число:

 

 

 

 

 

 

 

400921fb54442d18

 

 

 

8

Комерческий: 3.14 (рубли. копейки)

 

 

 

9

Плюс : + для положительного числа, -

 

 

 

 

для отрицательного, пробел – для нуля

 

 

 

10

368/945 (для sin 0.4), 355/113 (для числа

Рис.1.5. Панель Свойства с вводом настро-

 

π), отношение двух наименьших целых

 

чисел

ек для Командного окна.

11

Отсутствие пробела между строками

12

Наличие пробела между строками

 

 

 

- 18 -

Диапазон используемых в Матлабе чисел чисел: 10 –308 …10 +308 . Специальные числа:

-inf – бесконечность,

-Pi – число π,

-NaN – для результата, не представимого в виде числа, например, 0/0 или 0 . inf.

1.1.3. Окно Редактора – Отладчика М-файлов (рис.1.6)

Номера строк

 

Имя М-файла; кнопка

М-файла

 

вывода файла в окно

 

 

 

Рис.1.6. Окно Редактора – Отладчика

Редактор/отладчик предназначен для создания и отладки М-файлов. Он поддерживает следующие операции от кнопок окна (Кнопка окна – слева направо на рис.1.6 ):

создание нового М-файла (Новый),

открытие существующего М-файла (Открыть) ,

сохранение М-файла на диске (Сохранить),

удаление фрагмента (Вырезать),

копирование фрагмента (Копировать),

вставка фрагмента (Вставка),

печать М-файла (Печать),

текущая помощь (О программе),

установить/удалить точку прерывания (при отладке М-файла) – (Установить/Снять контрольную точ-

ку),

удалить все точки прерывания (при завершении отладки М-файла) – (Снять все контрольные точки),

пошаговую трассировку М-файла с заходом в вызываемые М-файлы (Заходить в блоки),

пошаговую трассировку М-файла без захода в вызываемые М-файлы (Пошаговое выполнение),

продолжить выполнение программы без трассировки (Продолжить),

завершить отладку (Окончить отладку).

При написании М-файла в окне осуществляется синтаксический контроль его программы с цветовым выделением синтаксических объектов:

-ключевые слова языка программирования (function, for, end и т.п.) — синий цвет;

-операторы, константы и переменные — черный цвет;

-комментарии после знака «%» — зеленый цвет;

-символьные переменные (в апострофах) — зеленый цвет;

-синтаксические ошибки — красный цвет.

М-файлы бывают двух типов: сценарии и функции.

Файл-сценарий, именуемый также Script-файлом, является просто записью серии команд без входных и выходных параметров. Он имеет следующую структуру.

%Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями

Важны следующие свойства файлов-сценариев:

-19 -

они не имеют входных и выходных аргументов;

работают с данными из рабочей области;

в процессе выполнения не компилируются;

представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную той, что используется в сессии при работе в командном окне.

Основным комментарием является первая строка текстовых комментариев, а дополнительным — последующие строки. Основной комментарий выводится привыполнении команд lookfor и help имя_каталога. Полный комментарий выводится при выполнении команды help Имя_файла.

М-файл- функция является типичным объектом языка программирования системы Матлаб. Одновременно он является полноценным модулем с точки зрения структурного программирования, поскольку содержит входные

ивыходные параметры и использует аппарат локальных переменных. Структура такого модуля с одним выходным параметром выглядит следующим образом:

function vаг = f_name(Список_параметров) %Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями vаг=выражение

М-файл функции имеет следующие свойства:

он начинается с объявления function, после которого указывается имя переменной var — выходного параметра, имя самой функции и список ее входных параметров;

функция выдает значение и может использоваться в виде name(Список_параметров) в математических выражениях;

все переменные, имеющиеся в теле файла-функции, являются локальными, то есть действуют только в пределах тела функции;

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

правила вывода комментариев те же, что у файлов-сценариев;

файл-функция служит средством расширения системы Матлаб;

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

Последняя конструкция vаг = выражение вводится, если требуется, чтобы функция выдавала результат вычислений.

Приведенная форма файла-функции характерна для функции с одним выходным параметром. Если выходных параметров больше, то они указываются в квадратных скобках после слова function. При этом структура модуля имеет следующий вид:

function [vаг1,vаг2,...] = f_namе(Список_параметров) %Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями var1-выражение

Такая функция во многом напоминает процедуру. Ее нельзя слепо использовать непосредственно в математических выражениях, поскольку она выдает не единственный результат, а множество результатов — по числу выходных параметров. Если функция, имеющая несколько выходных параметров, входит в состав математического выражения, для вычислений в выражении будет использован первый из выходных параметров Это зачастую ведет к ошибкам в вычислениях. Поэтому, как отмечалось, данная функция используется как отдельный элемент программ в виде

[varl,var2, …] = namе(Список_параметров)

После такого вызова выходные переменные varl, var2, … становятся определенными и их можно использовать в последующих математических выражениях и иных сегментах программы Если функция используется в виде f_namе(Список_параметров), то выдается значение только для первого выходного параметра — переменной varl.

При отладке выражений и программ в окне Редактора - отладчика СООБЩЕНИЯ ОБ ОШИБКАХ ВЫ-

ДАЮТСЯ В КОМАНДНОЕ ОКНО МАТЛАБА.

1.2.Правила вычислений в командном окне.

1.Работа с системой в режиме прямых вычислений носит диалоговый характер и происходит по правилу «задал выражение, получи ответ».

2.Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) в командной строке и завершает ввод нажатием клавиши Enter. Для указания текущего места ввода и вычисления используется символ

>>на пустой строке. В предшествующих месту ввода строках редактирование выражений и вычисления невозмож-

ны.

-20 -

3.Данные вводятся с помощью строчного редактора (встроенного в Матлаб (по умолчанию) или внешнего, выбираемого пользователем).

4.Знаком присваивания является привычный математикам знак равенства = , а не комбинированный знак :=, как во многих других математических системах.

5.Правила записи матрицы, вектора и скаляра: большимы буквами (например, А) обозначаются матрицы, малыми (а) – векторы и скаляры. Векторные функции (выдающие значения в виде вектора) обозначаются большими буквами ( F(x) ), скалярные функции (их значение – скаляр – действительное число) обозначаются малыми буквами (f(x)).

6.Комплексное или мнимое число определяется по наличию в его составе констант i или j, которым присваивает-

ся значение sqrt(-1) = -1. Комплексное число можно вводить одним из следующих способов: 5+3i; 5+3*I; 5+3j; 5+3*j или 5+3*sqrt(-1) – разные виды одного и того же числа.

7.Значения аргумента функции в виде выражения присваивания вводятся раньше выражения функции и отделяются от него точкой с запятой (см. пп.11-13). Аргумент в виде одного числа можно вставлять в окаймлении круглых скобок непосредственно в выражение функции. Правильный ввод простейшего вычисляемого выражений : y = sin (0.35) Enter или sin (0.35) Enter. Если аргументов несколько, то они отделяются запятыми. Если вычисляемых функций несколько в од-

ном месте ввода, то они отделяются запятыми.

8.Арифметические операции для массивов отличаются от матричных операций наличием точки перед знаком операции: А.*Б (умножение массивов – массивы должны иметь одинаковое количество чисел или один из них должен

быть числом), А./Б (деление), А.\Б (левое деление), А.^Б (возведение в степень). Точка перед «+» и «-» не ставит-

ся!

9. Встроенные функции (например sin) записываются строчными буквами и их аргументы указываются в круглых скобках (см. табл.1.1 [1]). Если аргументов несколько, то они отделяются запятыми.

Таблица 1.2 Элементарные функции в Матлабе

(Большими буквами обозначены массивы, малыми – элемент массива или число)

Вид

Что вычисляет

Вид

Что вычисляет

 

abs(X)

Абс.значения для действ. и комплексных

angle(Z)

Аргументы комплексных чисел в радиа-

 

аргументов, ASCII-коды вместо симво-

 

нах в пределах от -π до +π

 

 

лов и пробелов для строковых

 

 

 

real(Z), imag(Z)

Действ. и мнимую части компл. чисел

conj(Z)

Комл.соряженные числа для чисел Z

cplxpair(Z),

Сортировка комплексных чисел по

ceil(X)

Округляет действ.Х до ближайшего це-

cplxpair(Z,tol),

разным правилам

fix(X)

лого Х

 

cplxpair(Z[],dim),

 

floor(X)

Удаляет дробную часть числа.

 

cplxpair(Z,tol,dim)

 

round(X)

Округляет действ.Х до ближайшего це-

 

 

 

лого Х

 

 

 

 

Округляет действ.Х до ближайшего це-

 

 

 

лого .

 

mod(X,Y)

Вычисляет остаток от деления х на у; по

sign(X)

 

1, х >0,

 

определению mod(x,o)=x.

sign(Z)

Для действ. чисел: sign(x)=

0, х =0,

rem(X,Y)

Вычисляет остаток от деления х на у; по

 

 

-1, х<0.

 

определению mod(x,o)=NaN

 

Для компл.. чисел: sign(z) = z/abs(z)

factor(n)

Выдает все простые множители числа n

primes(n)

Выдает все простые числа в диапазоне от 0

 

 

 

до n

 

gcd(m,n),

Функции наибольшего общего делителя

icm(m,n),

Вычисляет наименьшее общее кратное

[g,c,d]= gcd(m,n),

 

icm(A,B)

чисел m и n или – пар чисел в массивах

gcd(A,B),

 

 

А и В

 

[G,C,D]= gcd(A,B)

 

 

 

 

[N,D]=rat(X),

Функции представления результата в ви-

perms(v)

Формирует матрицу из всех перестано-

rat(X),

де рационального числа или цепной дро-

 

вок элементов вектора v {сам вектор яв-

rat(X,tol),

би

 

ляется одной из строк этой матрицы)

S= rat(X),

 

 

 

 

S= rat(X,k)

 

 

 

 

sqrt(Z)

Вычисляет квадратный корень

log(X)

Натуральный логарифм (по основанию

 

 

 

е )

 

exp(Z)

е в степени, показатели которой - значе-

expm(X)

матричная экспонента - е в степени, по-

 

ния элементов массива Z

 

казатель которой - матрца

 

pov2(Z),

Степень числа 2.

nextpov2(n)

Вычисляет p = nextpov2(n), что 2.^p n (n-

pov2([M,P])

V = pov2(Z) = 2.^Z (компл. или действ.),

nextpov2(v)

число)

 

 

X = pov2([M,P]) = M.*(2,^P), (действ.).

 

Вычисляет p = nextpov2(v), 2.^p length(v)

 

 

 

(v – вектор)

 

log2(Z)

Логарифм чисел массива Z по основанию 2.

log10(Z)

Десятичный логарифм чисел иассива Z.

[M,P]=log2(X)

Вычисляет массив М мантисс m и массив Р

 

 

 

 

целочисленных показателей степени р таких.

 

 

 

 

что любой х = m х 2р

 

 

 

sin(Z), sinh(Z)

Тригонометрич. и гиперболич.синусы

сsс(Z), сsсh(Z)

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

asin(Z), asinh(Z)

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

aсsс(Z), aсsсh(Z)

Тригонометрич. и гиперболич. арккосе-

 

 

 

кансы

 

cos(Z), cos h(Z)

Тригонометрич. и гиперболич.косинусы

acos(Z),acosh(Z)

Тригонометрич. и гиперболич. арккоси-

 

 

 

нусы

 

sec(Z), sech(Z)

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

asec(Z), asech(Z)

Тригонометрич. и гиперболич. арксе-

 

 

 

кансы

 

tan(Z), tanh(Z)

Тригонометрич. и гиперболич.тангенсы

atan(Z), atanh(Z)

Тригонометрич. и гиперболич. арктан-

- 21 -

 

 

 

 

 

генсы

 

atan2(Y,X)

 

arctg(y/x), x>0, - <y< +

cot(Z),coth(Z)

Тригонометрич. и гиперболич. котан-

 

 

atan2(Y,X)=

π -arctg(y/|x|), x<0,0у<

 

генсы

 

 

 

-π+arctg(|y/x|), x<0,- у<0

 

 

 

acot(Z),coth(Z)

Тригонометрический и гиперблический

[TH,R] =

Преобразует декартовые координаты

 

 

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

=cart2pol(X,Y)

(х,у) в полярные(ТН,R);угол ТН–в рад.

 

 

 

 

[TH,R,Z] =

Преобразует 3-мерные декартовые ко-

 

 

 

 

=cart2pol(X,Y,Z)

ординаты (х,у,z) в цилиндрические

 

 

 

 

 

(ТН,R,z); угол ТН–в рад.

 

[AZ,EL,R] =

Преобразование 3-мерных декартовых

[X,Y] =

Преобразование полярных и цилиндри-

 

=cart2sph(X,Y,Z)

координат в сферические; углы AZ и EL

= pol2cart(TH,R)

ческих координат в декартовы

 

 

– в радианах

 

[X,Y,Z] =

 

 

 

 

 

= pol2cart(TH,R,Z)

 

 

[X,Y,Z] =

Преобразование сферических координат

 

 

 

=sph2cart(AZ,EL,R)

в декартовы

 

 

 

10.Для изменения формата вывода результата вычисления необходимо до нажатия клавиши Enter установить нужный формат через меню «Файл – Свойства» (см. рис.1.3 и 1.5).

11.Для блокировки вывода результата некоторого выражения (ввиду промежуточного характера ) после него надо установить знак ; (точка с запятой): если блокировка отсутствует, то Матлаб выдаст результат расчета по части выражения до неустановленного знака и сообщение об ошибке, а остальную часть вычисляемого выражения игнорирует (см. рис.1.6В).

» x=[0.5 0.7 1]; Y=sin(x) Y =

501/1045 947/1470 1327/1577

x=[0.5 0.7 1] Y=sin(x)

??? x=[0.5 0.7 1] Y

|

Missing operator, comma, or semicolon.

 

» x=[0.5 0.7 1;1 3 12; 0.8 0.1 3];Y=sin(x)

Б

А

Y =

 

 

 

 

 

 

 

0.4794

0.6442

0.8415

 

 

0.8415

0.1411

-0.5366

 

В0.7174 0.0998 0.1411

Рис.1.6. Правильная запись вычисления функции на одномерном векторном (А) и многомерном (Б) матричном массивах аргумента и неправильная (В)(пропуск точки с запятой перед Y)

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

13.Результат вычислений выводится в строках вывода (без знака »).

14.Для вычисления функции на одномерном или многомерном матричных массивах значений аргумента необходимо выполнить действия согласно рис.1.6.

Ввекторе (одномерном массиве) значения заключены в квадратные скобки и отделяются друг от дру-

га пробелом (рис.1.6А); в матрице (многомерном массиве) значения заключены тоже в квадратные скобки, причем, строки отделяются точкой с запятой (порядок следования строк: левая выше правой), а значения в каждой строке отделяются аналогично вектору (рис.1.6Б).

15. Если значения аргумента вычисляемой функции являются членами отрезка арифметической прогрессии с заданной разностью (шагом), то для записи аргумента применяется оператор «двоеточие :» – см. рис.1.7. При разности, равной единице, ее запись в операторе можно опускать (см.рис.1.7Б).

» x=1:2.5:16.5;Y=sin(x) Y =

0.8415 -0.3508 -0.2794 0.7985 -1.0000 0.8038 -0.2879

» x=1:10;Y=sin(x) Y =

Columns 1 through 7

0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570 Columns 8 through 10

0.9894 0.4121 -0.5440 x=[1:2.5:11.5;2:6];Y=sin(x) Y =

1327/1577 -851/2426 -1109/3969 1161/1454 -102108/102109 401/441 441/3125 -445/588 -677/706 -1109/3969

А

Б

В

Рис.1.7. Правильная запись вычисления функции на одномерном массиве аргумента

ввиде отрезка арифметической прогрессии ( с разностями 2,5 (рис.1.7А) и 1 (рис.1.7Б))

ив виде 2-строчной матрицы с теми же разностями (рис.1.7В)

14.Для правильной записи значений матрицы аргумента, когда ее строки являются отрезками арифметических прогрессий, необходимо руководствоваться правилами 11 и 12 одновременно.

15.Комментарии записываются в отдельную строку, помечаемую знаком проценты (%)в первом знакоместе строки (см. рис.1.8 А).

16.Разбиение строки с длинным выражением или комментарием на две производится установкой курсо-

- 22 -

ра перед переносимой на создаваемую вторую строку частью выражения и нажатием клавиш Shift + Enter (см. рис.1.8Б – двукратное разбиение выражения х = [23 45 67 45] на три строки).

17. Соединение двух строк в одну в программе или в выражении производится установкой курсора в начало второй строки и нажатием клавиш Shift + Backspace (рис.1.8В – соединение двух строк с выражениями 67

и 45] ).

А

 

 

Б

 

 

 

 

 

В

 

x=[0.5

0.7 1];Y=sin(x)

 

 

 

 

 

 

 

 

 

» x=[23 45

 

 

 

» x=[23 45

% Коментарии размещаются в отдельных строках

 

 

 

 

 

67

 

 

 

 

 

67 45]

Y =

 

 

 

 

 

 

 

45]

 

 

 

 

 

x =

0.4794 0.6442 0.8415

 

 

 

 

 

 

 

x =

 

 

 

 

23 45 67 45

 

 

 

23

45

67

45

 

 

 

Рис.1.8. Ввод комментария в вычисляемое выражение или программу (А), разбиение первой строки на три (Б), объединение 3-й и 2-й строк (В).

18.Вычисляемое выражение сразу после завершения вычисления можно ввести вновь в текущее место ввода нажатием кнопки «стрелка вверх» (для изменения величин аргументов или коррекции выражения) . Повторное нажатие кнопки заменит предшествующие условия на условия, им предшествующие: этот процесс можно повторять многократно, добиваясь вызова в место ввода все более ранних вычислительных условий.

Ранее вычислявшееся выражения можно быстро вставить в место ввода путем выделения его левой кнопкой мышки (кнопка далее отпускается) и небольшого протягивания его вниз повторно нажатой левой кнопкой: Матлаб сам вставит выделенное выражение.

19.Ранее примененную функцию можно вставить в командное окно через копирование её из окна Протокола команд (Command History), в котором все, ранее использованные команды и функции сохраняются до тех пор, пока расчетчик не удалит их.

20.При выполнении вычислений со множеством функций целесообразно перечни всех функций Матлаба

ифункций оптимизации поместить в оконце Избранное Хелп-окна Матлаба для оперативного копирования в Командное окно и уточнения их свойств, найдя соответствующие разделы Справки в оконце Содержание путем цепочки следующих выделений (с заключительным в каждой цепочке нажатием кнопки Добавить в Из-

бранное).

Для перечня Категорий функций: Contents-Matlab-Reference-гиперссылка Function by Category.

Для алфавитного перечня функций Матлаба: Contents-Matlab-Reference-гиперссылка Alphabetcal

List of Function.

Для перечня Категорий функций оптимизации: Contents-Optimization Toolbox-Reference-

гиперссылка Function by Category.

Для алфавитного перечня функций оптимизации: Contents-Optimization Toolbox-Reference-

гиперссылка Function Reference (Alphabetcal).

21. Чтобы сохранить данные вычислений в окне управления (выражения, программы, результаты или их части) для повторного вызова и работы, необходимо:

выделить данные ,

скопировать их в буфер,

вызвать редактор-отладчик М-файлов через меню «Файл-Создать-М-файл»,

вставить скопированные данные в открывшийся новый М-файл и сохранить его через меню редактора «Файл-Сохранить как».

22. Для продолжения вычислительной работы в окне управления с данными, сохраненными по правилам п.20, необходимо через меню «Файл-Открыть» открыть требуемый файл, выделить в нем требуемые для работы фрагменты, скопировать их в буфер и вставить в текущее место ввода окна управления.

-23 -

2.Решение задач оптимизации в Матлабе

2.1.Общие этапы решения

Оптимизационные расчеты выполняются в командном окне Матлаба.

Вначале расчета исходные данные, условия, оптимизационные функции и операторы вводятся в поле командного окна вручную или посредством копирования из Хелп-справок Матлаба (для оперативного досту-

па справки с нужными функциями целесообразно поместить в оконце «Избранное» на весь период расчетов) или окна Протокол команд (Command History).

После выполнения расчетов выделенные места в файле сессии командного окна (или весь файл) копируются, вставляются в новый М – файл в окне Редактора – Отладчика и сохраняются командой Сохранить как.

При необходимости продолжения расчетов сохраненный файл сессии вызывается в окно РедактораОтладчика из Командного окна кнопкой (командой меню) Открыть, требуемая функция или фрагмент файла копируются и вставляются в место ввода командного окна.

2.2. Функции оптимизации

Виды функций (представлена только одна функция fminbnd), примеры их правильной записи в Командном окне и взаимодействие Командного окна с окном Редактора-Отладчика при применении той или иной функции представлены в табл.2.1 [Хелп Матлаба 6,5].

ПРИМЕЧАНИЯ К ТАБЛ.2.1.

1. Примеры вычисления с функцией fminbnd в Командном окне Матлаба.

Минимизируемые функции:

y := x4 e2x2

2x 5 sin(x) 2 ,

0 х 2 ,

(2.1)

y := x4 e2 x2P1

2 xP2 5 (sinx( ))P3 2 ,

0 х 2 .

(2.2)

1.1. Аргумент fun в функции fminbnd(fun,…) строковый – выражение минимизируемой функции у (2.1) через ее аргумент х в апострофах .

a=fminbnd('x.^4.*exp(2.*x.^2)-2.*x-5.*sin(x)-2',0,2)

 

a =

 

0.7078

А

>> [x,fval,exitflag,output]=fminbnd('x.^4.*exp(2.*x.^2)-2.*x-5.*sin(x)-

2',0,2,optimset('Display','iter', 'Maxiter',7, 'TolX',1e-006))

 

 

Func-count

x

f(x)

Procedure

 

 

 

1

0.763932

-5.89243

initial

 

 

2

1.23607

40.3795

golden

 

 

Г

 

3

0.472136

-5.14062

golden

 

4

0.627818

-5.8508

parabolic

 

 

5

0.706361

-5.98279

parabolic

 

 

6

0.702281

-5.98209

parabolic

 

 

7

0.70735

-5.98283

parabolic

 

 

Exiting: Maximum number of iterations has been exceeded

 

 

 

- increase MaxIter option.

 

 

 

Current function value: -5.982835

 

 

x =

0.7073

 

 

 

 

 

 

fval =-5.9828

 

 

 

 

 

exitflag =

0

 

 

 

 

 

output = iterations: 7 funcCount: 7

 

 

>> [x,fval,exitflag,output]=fminbnd('x.^4.*exp(2.*x.^2)-2.*x-5.*sin(x)- 2',0,2,optimset('Display','iter','Maxiter',15,'TolX',1e-006))

 

 

 

 

Д

Func-count x

f(x)

Procedure

1

0.763932

-5.89243

initial

 

 

2

1.23607

40.3795

golden

 

 

3

0.472136

-5.14062

golden

 

 

4

0.627818

-5.8508

parabolic

 

 

5

0.706361

-5.98279

parabolic

 

 

6

0.702281

-5.98209

parabolic

 

 

7

0.70735

-5.98283

parabolic

 

 

8

0.707824

-5.98284

parabolic

 

 

9

0.707811

-5.98284

parabolic

 

 

10

0.70781

-5.98284

parabolic

 

 

11

0.70781

-5.98284

parabolic

 

 

12

0.70781

-5.98284

parabolic

 

 

Optimization terminated successfully:

the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-006

x =0.7078 fval =-5.9828 exitflag = 1

output = iterations: 12 funcCount: 12 algorithm: 'golden section search,

parabolic interpolation'

>> a=fminbnd('x.^4.*exp(2.*x.^2)-2.*x-5.*sin(x)-

2',0,2,optimset('Display','iter'))

 

Б

Func-count x

f(x)

Procedure

1

0.763932

-5.89243

initial

 

2

1.23607

40.3795

golden

 

3

0.472136

-5.14062

golden

 

4

0.627818

-5.8508

parabolic

 

5

0.706361

-5.98279

parabolic

 

6

0.702281

-5.98209

parabolic

 

7

0.70735

-5.98283

parabolic

 

8

0.707824

-5.98284

parabolic

 

9

0.707791

-5.98284

parabolic

 

10

0.707857

-5.98284

parabolic

 

Optimization terminated successfully:

the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004

a=

0.7078

>> a=fminbnd('x.^4.*exp(2.*x.^2)-2.*x-5.*sin(x)- 2',0,2,optimset('Display','iter','Maxiter',7,'TolX',1e-

006))

 

 

 

 

 

 

 

В

Func-count x

f(x)

Procedure

 

 

1

0.763932

-5.89243

initial

 

2

1.23607

40.3795

golden

 

3

0.472136

-5.14062

golden

 

4

0.627818

-5.8508

parabolic

 

5

0.706361

-5.98279

parabolic

 

6

0.702281

-5.98209

parabolic

 

7

0.70735

-5.98283

parabolic

 

Exiting: Maximum number of iterations has been exceeded - increase MaxIter option.

Current function value: -5.982835

a=

0.7073

Рис.2.1. Вычисления минимума функции (2.1) различными видами функций fminbnd (табл.2.1, поз.1 в командном окне, когда fun – строковое выражение минимизируемой функции у.

А – вид 1. Б – вид 2, options № 5. В – вид 2, options №№ 5, 20 и 28. Г – вид 6 c options из рис.В. Д - вид 6 c

- 24 -

уставкой options Maxiter =15, увеличенной по сравнению с рис. Г в 2 раза.

1.2. Аргумент fun в функции fminbnd(fun,…) вида 3 – имя М-файла 'f_pr1’в апострофах минимизируемой функции (2.2), оформленного согласно рис.2.2Б и нижеследующих правил.

>> a=fminbnd('f_pr1',0,2,[],2,4,3.5)

y =

-0.5420 А y =

1.0420e+003

y=

-2.2954

y = -2.3621

y=

-2.3922

y=

-2.3997

y = -2.4013

y=

-2.4014

y = -2.4015

y = -2.4015

y=

-2.4015

a=

0.5745

Б

>>a=fminbnd('f_pr1',0,2,optimset('Display','iter'),2,4,3.5)

y =-0.5420

 

 

 

 

 

 

 

B

Func-count x

 

f(x)

Procedure

1

0.763932

 

-0.542038

initial

 

y =1.0420e+003

 

 

 

 

2

1.23607

1042.03

golden

 

y =-2.2954

 

 

 

 

3

0.472136

 

-2.29536

golden

 

y =

-2.3621

 

 

 

 

4

0.616992

 

-2.36208

parabolic

 

y =-2.3922

 

 

 

 

5

0.549795

 

-2.3922

parabolic

 

y =-2.3997

 

 

 

 

6

0.56424

-2.39974

parabolic

 

y =

-2.4013

 

 

 

 

7

0.571204

 

-2.40128

parabolic

 

y =-2.4014

 

 

 

 

8

0.57562

-2.40145

parabolic

 

y =-2.4015

 

 

 

 

9

0.574567

 

-2.40147

parabolic

 

y =

-2.4015

 

 

 

 

10

0.574504

 

-2.40147

parabolic

 

y =

-2.4015

 

 

 

 

11

0.574471

 

-2.40147

parabolic

 

Optimization terminated successfully:

the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004

a=

0.5745

Рис.2.2. Вычисления минимума функции (2.2) функцией fminbnd 3-го вида (табл.2.1) в командном окне , когда fun – имя М-файла 'f_pr1’в апострофах минимизируемой функции (2.2), оформленного согласно вида (Б) с добавлением и запоминанием маршрута доступа к файлу в каталог маршрутов Матлаба.

А– Р1, Р2,Р3 равны соответственно 2; 4 и 3,5 с options по умолчанию. В – с options № 5.

2.3.Порядок оформления функции y(x,P1,P2,P3) в виде М-файла с параметрами для минимизации функциями Матлаба

1.Создайте новый М-файл в окне Редактора-Отладчика, наберите выражение заданной функции с параметрами (Внимание: имена параметров – с заглавной буквы!) согласно рис. 2.2Б и сохраните

файл в вашей папке командой «Сохранить как» с именем, предлагаемым Матлабом.

2. Вызовите Окно просмотра Маршрута командой через меню Файл – Установка маршрута (Set Path).

2.1.Кнопкой Добавить Маршрут вызовите окно Обзор папок. Выделите папку, содержащую М- файл, и нажмите ОК: маршрут доступа к папке появится в оконце маршрутов.

2.2. Запомните маршрут кнопкой Сохранить (Save).

- 25 -

Таблица 2.1 Виды оптимизирующих функций Матлаба 6,5

 

Функция Матлаба.

 

Варианты применения

 

 

 

 

Аргументы оптимизирующей функции.

 

Тип оптимизации

 

 

 

 

 

 

 

 

Пример вычисления в Командном окне

 

Математическая мо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дель

Алгоритм

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

3

 

1. fminbnd.

 

1. x = fminbnd(fun,x1,x2) – вычисляет х, доставляющий ло-

в качестве аргумента fun может быть:

 

 

Минимизация

ска-

кальный минимум функции f(x), причем аргумент fun =

а) выражение минимизируемой функции в апострофах (‘f(x)’ для функции y = f(x)) через

fun(f(x)).

 

 

 

 

 

ее аргумент (для несложных выражений; апострофы указывают на строковый тип аргумента

ляр-ной функций

одной

2. x = fminbnd(fun,x1,x2,options) то же, что функция 1 (ф.1) при

fun);

 

 

 

ска-лярной действитель-

б) имя М-файла этой функции в апострофах ‘fИмя’ (для сложных выражений (в частности,

наличии управляющих параметров, введенных расчетчиком в структуру па-

не умещающихся в одной строке Командного окна) для конструкции М-файла вида:

 

ной переменной в задан-

раметров options (см. табл.2.2) функцией Матлаба: при вводе параметров

function y = fИмя(x,P1,P2,…)

 

ном

интервале послед-

вместо

options

должно

стоять

выражение

y = f (x,P1,P2,…) ;

 

 

ней.

 

 

optimset(‘Парам1’,знач1,’Парам2’,знач2, и т.д.), где Прам1 – имя пара-

при условии, что путь к этому М-файлу сохранен и добавлен в Каталог маршрутов Матлаба – см.

 

min f(х ),

 

метра 1, а знач1 – значение параметра1,которое может быть числом или

п.1 Примечаний);

 

 

 

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

в) манипулятор функции @fИмя, если она определена в виде М-файла (как в п.б));

 

х

 

апострофы .

 

 

 

 

 

г) строчный объект inline(‘f(x)’).

 

 

где х1 <х < х2.

3. x = fminbnd(fun,x1,x2,options,зP1,зP2,...) - то же, что ф.2 при

хl, х2 – нижнее и верхнее численные значения пределов интервала поиска минимума.

 

Золотое сечение

options

структура управляющих параметров минимизации,

значения

наличии параметров Р1, Р2 и т.д., которые присутствуют в выражении аргу-

которых (строковые и численные) при отличии их от параметров по умол-

плюс параболическая

мента fun (fun(f(x,P1,P2…)).

 

 

 

 

Если применяются уставки «по умолчанию», то вместо options вставляют-

чанию вводятся

функцией optimset, подставляемой вместо options, один

интерполяция.

 

ся пустые парные квадратные скобки [ ].

 

 

 

из 6 вариантов которой (типовый) имеет следующий вид:

 

 

 

 

4. [x,fval] = fminbnd(...) вычисляет и выдает: значение х, миними-

options = optimset('param1',value1,'param2',value2,...), причем, в апострофах вставля-

 

 

 

ются имена параметров, а их значения вводятся в позиции value1,value2 и т.д.. Другие

 

 

 

зирующее функцию f(x) и величину минимума f (x), причем, fminbnd(...)

варианты функции optimset – в табл.2.3.Полный перечень параметров – в

 

 

 

любая из функций 1-3.

 

 

 

 

 

 

 

 

 

 

 

 

 

табл. 2.2. Назначение параметров и значения их численных установок – в

 

 

 

5. [x,fval,exitflag] = fminbnd(...)

вычисляет и выдает: зна-

табл.2.2. В данной функции используютя только параметры 5-й, 19-й, 20-

 

 

 

чение х, мини-мизирующее функцию f(x),

величину мини-

й и 28-й: Display, MaxFunEvals, MaxIter и TolX.

 

 

 

 

мума f(x) и величину флага окончания (exitflag ) вычисления

Параметры структуры options.

 

 

 

 

минимума функцией fminbnd :

 

 

 

Display - ‘off’- не показывает результата; ’iter’ – показывает выходные данные оптимизации

 

 

 

>0 – решение x найдено,

 

 

 

 

для каждой итерации; ‘final’ – показывает только результат оптимизации – вектор х; ‘notify’ (по

 

 

 

0 – количество оценок минимизируемой функции f(x) дос-

умолчанию) – выдает сообщение только в случае, если функция не может найти решение..

 

 

 

тигло предела,

 

 

 

 

MaxFunEvals – максимально допустимое число оценок минимизируемой

 

 

 

<0 – решение x не найдено.

 

 

 

функции.

 

 

 

 

 

6. [x,fval,exitflag,output] = fminbnd(...)

 

 

MaxIter – максимально допустимое число итераций.

 

 

 

 

вычисляет и выдает:

TolX – погрешность окончания процесса минимизации.

 

 

 

 

значение х, минимизирующее функцию f(x), величину

минимума f(x), вели-

P1, P2, …– имена входных параметрических переменных (зP1, зP2, … -

 

 

 

чину флага окончания exitflag

и выходную структуру output,

поля которой

их

значения),

присутствующих в выражении минимизируемой

функции

 

 

 

содержат информацию о процессе минимизации:

 

 

f(x,P1,P2…) в аргументе fun в виде Заглавной буквы с номером-числом.

 

 

 

output.algorithm – примененый алгоритм,

 

 

 

 

 

 

output.funcCount – количество оценок функции,

 

 

Примеры вычисления – п.1 Примечаний к табл.2.1.

 

 

 

 

output.iterations – количество выполненных итераций.