Краткая характеристика MATLAB




ТАМБОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 


 

 

КАФЕДРА

«Информационные процессы и управление»

 

Методическая разработка

для проведения лабораторного занятия №1

 

по дисциплине "Теория принятия решений"

наименование дисциплины

 

 

Исследование методов одномерной оптимизации

наименование темы

 

 

 

 

ТАМБОВ

Тема: Исследование методов одномерной оптимизации

 

Цель работы:

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

- сравнительная оценка по объему вычислительных затрат методов: прямого сканирования, дихотомии, «золотого сечения» и метода Фибоначчи.

 

Литература:

1. Аоки М. Введение в методы оптимизации. М.: Наука, 1977. 444 с.

2. Батищев Д.И. Методы оптимального проектирования. М.: «Радио и связь», 1984. 248 с.

3. Бодров В.И., Лазарева Т.Я., Мартемьянов Ю.Ф. Математические методы принятия решений: Учеб. пособие. Тамбов: Изд-во Тамб. гос. тех. ун-та, 2004. 124 с.

4. Полак Э. Численные методы оптимизации. М.: Мир, 1997. 376 с.

5. Химмельблау Д. Прикладное нелинейное программирование. М.: Мир, 1975. 534 с.

6. Юдин Д.Б. Вычислительные методы теории принятия решений. М.: Наука, 1989. 316 с.

7. Кетков Ю. Л., Кетков А. Ю., Шульц М. М. MATLAB 7: программирование, численные методы. — СПб.: БХВ-Петербург, 2005. — 752 с

 

I. Организационно-методические рекомендации

По проведению занятия

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

знать:

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

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

уметь:

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

- анализировать и обобщать полученные результаты.

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

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

Лабораторные работы построены таким образом, что они не предполагают знание студентами MATLAB. Каждая лабораторная работа начинается с краткого описания MATLAB, где студенту даются краткие сведения, необходимые для выполнения данной работы.

 

Подготовка к занятию

Накануне занятия студенты должны:

- ознакомится с руководством по данному лабораторному занятию;

- повторить лекционный материал и изучить предлагаемую литературу по данной теме;

- изучить порядок выполнения работы;

- подготовиться к ответу на контрольные вопросы.

 

Порядок проведения занятия

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

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

Отчетность по занятию

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

II. Содержание

 

Краткая характеристика MATLAB

Система MATLAB (Matrix Laboratory) состоит из большого количества специальных программ, позволяющих решать широкий спектр математических и технических задач из разных областей науки. Главный ее элемент – это ядро системы MATLAB. В дополнение к нему система содержит около 80-ти различных комплектов команд (т.н. "Toolboxes"), соответствующие различным разделам математики, математической физики, проектирования, связи, экономики и т.д. В данной работе используются базовые средства программирования MATLAB: М-файлы – функции, встроенные функции, операторы, команды и т.п.

 

Рис.1. Рабочий стол системы

 

На рис.1 представлен рабочий стол системы. Строка меню (File, Edit, и т.д.) во многом схожа с аналогичной строкой редактора Microsoft Word. Расположенный ниже ряд иконок также выполняют те же операции, что и в редакторе Word (за исключением 3-х последних). Рабочий стол системы состоит их нескольких окон, состав которых можно менять с помощью команд меню Desktop. На рис.1 в верхнем окне слева приводится содержимое рабочего пространства Workspace, куда помещены описания всех констант и функций, введенных пользователем в процессе работы. В нижнем окне Command History приводится последовательность выполненных команд. Размеры окон регулируются перетаскиванием границы с помощью мыши. Главное окно рабочего стола – Command Window (командное окно). В командном окне после знака ">>" набирается командная строка, которая выполняется после нажатия клавиши " Enter ".

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

Формат числа задается меню File (рис.1) в разделе Preferences с помощью функции Numeric Format. Наиболее часто используемыми из 12-ти возможных являются форматы Short и Long – краткая и длинная форматы чисел.

Одними изосновных понятий MATLAB являются переменные и утверждения.

Переменная обозначается одной буквой или набором букв и цифр, начинающимся с буквы. Число букв и цифр в наборе в сумме не должно превышать девятнадцать. Утверждение имеет следующую форму:

>>переменная=выражение

При введении утверждения переменной присваивается выражение, которое стоит за знаком равенства, или, если оно включает какие-либо математические операции, то результат, который получается после выполнения этих операций. Вводить утверждение можно в М-файле или в командном окне программы MATLAB. Знак «>>» является командной подсказкой, появление которой на экране дисплея в командном окне указывает на то, что утверждения можно вводить.

Основные арифметические операторы приведены в табл.1.1. При выполнении вычислений в командном окне после нажатия клавиши " Enter " результат присваивается параметру " ans ", если соответствующему выражению не присвоено имя, или его имени - в противном случае (имена переменных, констант и функций должны начинаться с буквы (буквы латинские), могут содержать цифры и символ подчеркивания). Для блокировки вывода результата вычислений некоторого выражения после него надо установить знак; (точка с запятой).

Таблица 1.1

+ Сложение
- Вычитание
* Умножение
/ Деление
^ Возведение в степень
.* Почленное умножение массивов
./ Почленное деление массивов слева-направо
.^ Почленное возведение в степень массивов

 

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

>> x=log(1+5*((log10(100))^2-0.2*pi)/sqrt(1+2.71828^3))

x =

1.5414

После введения утверждения, т.е. нажатия клавиши Enter, ниже сразу выдается результат. Если результат нужно заблокировать, т.е. не надо выдавать на экран дисплея, то в конце утверждения нужно поставить знак «; » (точку с запятой). Предыдущее выражение можно представить и в иной форме:

>> a=(log10(100))^2;

>> b=sqrt(1+2.71828^3);

>> x=log(1+5*(a-0.2*pi)/b)

x =

1.5414

MATLAB имеет несколько встроенных переменных: pi, eps, inf, i и j. Переменная pi обозначает число , eps =2-52 =2.2204*10-16– погрешность для операций над числами с плавающей точкой, inf - бесконечность ( ), i и j – мнимую единицу (i = j = ).

Когда аргумент слева не указан, результат выражения присваивается общей переменной ans.

>>3+4*i

ans=

3.0000+4.0000i

>> eps

ans =

2.2204e-016

Операторы отношения (табл. 1.2) используются в условных операторах, операторах цикла и т.п. при реализации алгоритмов поиска с использованием М-функций (подпрограммы-функции записываются в файлах с расширением.m).

 

Таблица 1.2

Название Оператор Пример
Равно == x==y
Не равно ~= x~=y
Менее чем < x<y
Более чем > x>y
Менее чем или равно <= x<=y
Более чем или равно >= x>=y

 

Итак, программами в системе MATLAB являются М-файлы текстового формата, содержащие запись программ в виде программных кодов.

Входной язык MATLAB насчитывает всего 9 операторов, использующих 14 служебных слов. Соответствующие синтаксические конструкции приведены в табл. 1.3.

Таблица 1.3

Формат оператора Пояснение
     
  var = expr Оператор присваивания. Вычисляет значения выражения expr и заносит результаты вычислений в переменную var
  ifусловие_1 операторы_1 [elseifусловие_2 операторы_2 elseifусловие_3 операторы_3 ......... else операторы ] end Условный оператор. Если справедливо условие_1, то выполняется группа операторы_1, если справедливо условие_2, то выполняется группа операторы_2,... Если все указанные условия оказываются ложными, то выполняются операторы, расположенные между else и end
  switchexpr casevail операторы_1 caseval2 операторы_2 ......... [ othervise операторы] end Переключатель по значению выражения expr. Если оно совпадает с величиной vail, то выполняется группа операторы_1, если оно совпадает с величиной val2, то выполняется группа операторы_2,... Если значение expr не совпадает ни с одной из перечисленных величин, то выполняются операторы, расположенные между othervise и end
     
  forvar=el:[e2:]e3 операторы end Цикл типа арифметической прогрессии, в котором переменная var при каждом повторении тела цикла изменяется от начального значения el с шагом е2 до конечного значения еЗ
  whileусловие операторы end Цикл с предусловием, повторяющийся до тех пор, пока истинно указанное условие
  try операторы_1 catch операторы 2 end Попытка выполнить группу операторы_1. При условии, что в результате их выполнения возникает исключительная ситуация, управление передается группе операторы_2 (обработка сбойных ситуаций). Если ошибка не возникла, то группа операторы_2 не выполняется
  break Досрочный выход из управляющих конструкций типа for, while, switch, try - catch
  function f1 function f2 (x1,х2,...) function y=f3(xl,x2,...) function [yl,y2,...]=f4(xl,x2,...) Заголовок функции (xl, х2,... - входные параметры; y, yl, у2,... -выходные параметры)
  return Досрочный выход из тела функции

 

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

Все переменные, появляющиеся в теле функции, за исключением глобальных переменных (объявленных оператором global), входных и выходных параметров, считаются локальными. Они образуют локальное рабочее пространство и доступны только в теле породившей их функции, и никакие другие функции воспользоваться ими не могут.

Язык MATLAB не содержит оператора goto. В связи с этим в текстах m-файлов отсутствуют метки операторов. Для идентификации строк, в которых возникают аварийные ситуации, используются внутренние номера, присваиваемые системой автоматически.

Комментарии в М-файлах начинаются с символа %. Они могут располагаться с начала строки или находиться правее любого оператора.

Пример функции вычисления факториала:

%Функция вычисляет факториал числа n

function y=factn(n)

k=l;

for i=l:n

k=k*i;

end

y=k;

 

Для вычисления 5! достаточно набрать в текущей строке Command Window команду:

»k=factn(5)

k =

»

Из тела функции можно вызывать встроенные функции MATLAB или функции, созданные пользователем, например, имеем функцию, рассчитывающую значения параболы вида y=(x-1)2+1, и нужно построить ее график:

%Парабола

function y=Q(x)

y=(x-1).^2+1;

return

Ее можно вызвать из другой функции вида:

%Определние min функции Q(x) методом прямого сканирования

function [xmin,Qmin]=pr_scan(a,b,del)

...............

x=-2:0.1:5;

plot(x,Q(x)),grid

При построении функции Q(x) MATLAB использует массивы x и Q, поэтому в определении функции Q использована операция почленного возведения в степень (.^).

MATLAB располагает редактором М-файлов (Editor), который вызывается командой File | New | M-File (Файл | Создать | М-файл) — рис.2.

После этого в окне редактора можно создавать свой файл, пользоваться средствами его отладки и запуска. Для запуска файла его надо записать на диск командой Save as в позиции File главного меню редактора. Для отладки М-функций используются позиции меню Debug (см. рис.2). Здесь можно устанавливать точки останова программы и, наведением курсора на соответствующий идентификатор, просматривать его значение.

Строки, набираемые в окне редактора, автоматически нумеруются. Это позволяет идентифицировать сообщения об ошибках, выдаваемых в командное окно.

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

general, elfun, lang, datatypes, iofun, graphics, ops, strfun, timefun, matfun, demos, graphics, datafun, uitools, doc, punct, arith.

Вызвать справку по любому из каталогов (например для каталога элементарных функций elfun) можно командой:

>> help elfun

 

Рис.2. Отображение редактора М-файлов

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: