Добавлен: 23.10.2018

Просмотров: 6248

Скачиваний: 74

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

Раздел 1. Основы работы с математическим пакетом Matlab

Тема 1.1. Элементы рабочей среды Matlab

1.1.1.Элементы рабочей среды Matlab и простейшие вычисления

1.1.2. Основные объекты системы Matlab

1.1.3. Лабораторная работа по теме «Элементы рабочей среды Matlab и простейшие вычисления»

1.2.1. Векторы и матрицы

1.2.2. Построение графиков и визуализация вычислений в системе MatLab

1.2.3. Лабораторная работа по теме

«Векторы, матрицы и построение графиков

в системе Matlab»

1.2.4. Контрольные вопросы по теме

Тема 1.3. Средства Matlab для создания и описания m-файлов

m-файлов

Пример 1.3.5-1. Даны n чисел . Требуется вычислить их сумму: где

1.3.6. Лабораторная работа по теме

«Средства алгоритмизации и программирования

в Matlab»

1.3.7. Контрольные вопросы по теме

Раздел 2. Технология решения вычислительных задач средствами MatLab

Тема 2.1. Решение нелинейных уравнений

2.1.2. Лабораторная работа по теме

«Технология решения нелинейных уравнений средствами пакета MatLab»

1. Вопросы, подлежащие изучению

2. Общее задание

Таблица 2.1.2-1

2.1.3. Контрольные вопросы по теме

Тема 2.2. Технология аппроксимации интерполяции функций в среде пакета MatLab

Рис. 2.2.1-5. Вычисление функции в точке х=0.58

Рис. 2.2.2-7. Графики интерполирующих функций

Таблица 2.2.2-1

Тема 2.4. Технология решения обыкновенных дифференциальных уравнений

Рис. 2.4.1-2. Решение ОДУ методом Рунге-Кутты четвертого порядка

1. Вопросы, подлежащие изучению

2. Общее задание

Тема 2.5. Технология решения задач одномерной оптимизации

2.5.2. Лабораторная работа по теме

«Технология решения задач одномерной оптимизации»

1. Вопросы, подлежащие изучению

2. Общее задание

3. Варианты индивидуальных заданий

2.5.3. Контрольные вопросы по теме

Тема 2.6. Технология решения задач многомерной оптимизации

1. Вопросы, подлежащие изучению

2. Общее задание

4. Содержание отчета



Рис. 1.1.1-7. Рабочая среда Matlab при активной вкладке APPS


Рассмотрим правила работы в окне Command Window.

Командное окно Command Window используется для ввода команд с соответствующими данными и вывода результатов их выполнения. Работа происходит в диалоговом режиме: пользователь вводит команду и передает ее ядру Matlab, ядро обрабатывает полученную команду и возвращает результат. Все команды вводятся в командную строку после появления приглашения >>. Заканчивается ввод каждой командной строки нажатием клавиши <Enter>.

Вышеописанный сеанс работы с Matlab в окне Command Window принято называть сессией.


Рассмотрим несколько простых примеров, выполненных в командном окне (рис. 1.1.1-8).

В Примере 1 вычисляется результат выражения 2+3. Matlab по умолчанию создаёт переменную с именем ans, в которую записывает значение результата текущей операции и выводит его в следующей строке.

В Примере 2 создаётся переменная а, вычисляется значение выражения sin(pi), и результат присваивается переменной а. Теперь эта переменная определена (атрибуты этой переменной отображаются в окне Workspace) и ее можно использовать для дальнейших вычислений.

В Примере 3 выражение заканчивает точка с запятой, которая «гасит» вывод результата, но он по-прежнему сохраняется, в этом случае в переменной с именем r, при этом значение этой переменной также отображается в окне Workspace. Значение этой переменной можно вывести в строке окна Command Window в любой момент, набрав имя переменной в командной строке и нажав клавишу <Enter>.



Рис. 1.1.1-8. Примеры простейших вычислений в окне Command Window


Обратите внимание, что предпочтительнее вычислять длинное выражение по частям с использованием промежуточных переменных.

Обратите внимание, что в любой момент значение переменной можно отобразить в командном окне, набрав имя переменной и нажав <Enter>, либо использовать функцию disp(), например, disp(b).


Все переменные системы Matlab размещаются в рабочей области оперативной памяти и отображаются в окне Workspace (рис. 1.1.1-9). Информацию о них (имена, размерности, типы и др.) можно отобразить на экране с помощью команд Matlab who или whos.

Для очистки командного окна служит команда clc, а для очистки рабочей памяти – clear all.


Обратите внимание, что переменные объявлять не надо, так как

по умолчанию все вычисления в Matlab выполняются с двойной точностью.


Рис. 1.1.1-9. Окно рабочей области Workspace


Формат вывода численных значений на экран можно установить принудительно в окне Command Window, указав тип формата командой:

format ТипФормата

или с помощью установки свойств в окне Preferences, которое можно вызвать соответствующим инструментом панели инструментов вкладки Home
(рис. 1.1.1-1).


Обратите внимание, что в окне Preferences можно установить свойства почти всех объектов Рабочей среды Matlab.


Для установки формата в окне Preferences внутри группы Text display следует выбрать раскрывающиеся списки Numeric format, а из раскрывшегося списка Numeric format выбрать один из форматов табл. 1.1.1-1.



Таблица 1.1.1-1

Формат


Пояснения

short

Выводит короткое число с плавающей точ­кой. Число представляется с помощью четырех цифр после десятичной точки (по умолчанию)

long

Выводит длинное число с плавающей точ­кой. Представляется с помощью четырнадцати цифр после десятичной точки

short e

Выводит короткое число с плавающей точ­кой. Представляется с помощью пяти разрядов, четыре из которых отводится под вывод дробной части

long e

Выводит длинное число с плавающей точ­кой. Представляется с помощью шестнадцати разрядов, пятнадцать из которых отводится под вывод дробной части


В стандартной конфигурации Рабочей среды для выделения результатов вычисления или значений переменных Matlab перед выводимым значением вставляет пустую строку. Управлять появлением или отсутствием пустой строки можно в диалоговом окне Preferences внутри группы Text display с помощью форматов:

  • compact – строки с результатами выводятся подряд;

  • loose – строки с результатами разделяются пустой строкой.

Если окно Command Window активно (заголовок окна выделен синим цветом), то после нажатия на правую кнопку мышки, указатель которой находится на заголовке окна, появится контекстное меню, показанное на рис. 1.1.1-10а, а если указатель мышки находится в области окна, появится контекстное меню, показанное на рис. 1.1.1-10б.


а) б)

Рис. 1.1.1-10. Контекстные меню Command Window


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

diary ИмяФайла.m или diary ИмяФайла.txt.

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

diary off – приостанавливает запись в файл, а команда

diary on – вновь начинает запись в файл.

Таким образом, чередуя команды diary off и diary on, можно сохранять необходимые фрагменты сессии.


Окно Workspace предназначено для быстрого просмотра атрибутов переменных, расположенных в рабочей области, а также их записи в файл и чтения из файла (рис. 1.1.1-1). В этом окне можно уви­деть имя переменной (Name), значение (Value), ее размер (Size), число байтов, занимаемых переменной в памяти (Bytes), и ее тип (Class). Для идентификации клас­са переменной слева от имени исполь­зуется соответствующая иконка.

Отобразить на экране окно Workspace можно либо с помощью соответствующей команды инструментальной панели, либо с помощью задания команды Workspace в командном окне. С помощью команд контекстного меню (рис. 1.1.1-11а,б) можно изменять внешний вид окна Workspace (скры­вать или показывать поля Size, Value, Bytes и Class), а также сортировать пере­менные по имени, размерности, коли­честву байт и классу.


Команды контекстного менюWorkspace позволяют выполнять следующие действия: создать новую переменную (New); открыть редактор данных для просмотра или редактирования значений выделенной переменной (Open Selection); загружать данные из файла в рабочую область (Load); сохранять рабочую область в файле (Save); печатать содержимое рабочей области (Print); удалить выделенную переменную (Delete); построить графики (plot(d)).

а) б)

Рис. 1.1.1-11. Контекстные меню окна Workspace


Просмотреть содержимое рабочей области, загружать или удалять дан­ные можно и с помо­щью ввода команд в окне Command Window. Так для просмотра переменных, находящихся в рабочей области, в командную строку необходимо ввести команду who. Результат выполнения команды who по внешнему виду напоминает окно Work­space, только без полей Size, Bytes и Class.

Полную информа­цию о содержании рабочей области можно получить с помощью команды whos, в результате выполнения которой в окне Command Window выводится информация обо всех переменных и общий объем занимаемой ими памяти.

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

сlear ИмяПеременной.

Очистка всей рабочей области осуществ­ляется с помощью команды

clear без параметров.

Загрузка всех данных из файла реализуется командой

load ИмяФайла.

Выборочная загрузка данных реализуется ко­мандой

load ИмяФайла ИмяПеременной.

Для сохранения рабочей области на диске необходимо ввести
команду

save ИмяФайла.

Данные будут сохране­ны в файле с расширением *.mat. Выборочное сохранение переменных из рабо­чей области обеспечивается командой

save ИмяФайла ИмяПеременной.

Окно Редактор данных изображено на рис 1.1.1-12, предназначено для про­смотра и редактирования значений переменных. Под редактированием переменных подразумевается не только изменение значений элементов массива, но также и изменение размера массива.


Рис. 1.1.1-12. Окно редактора данных


а) б)

Рис. 1.1.1-13. Контекстные меню окна Редактор данных

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

openvar('ИмяПеременной').

Контекстные меню Редактор данных показаны на рис. 1.1.1-13.

На рис. 1.1.1-14 показан пример окна Command History. Это окно служит для просмотра команд, заданных ранее в командной строке Command Window.

Рис. 1.1.1-14. Окно истории команд Command History


а) б)



Рис. 1.1.1-15. Контекстное меню окна Command History


Изменять параметры работы окна истории команд можно с помощью диалогового окна Preferences (рис. 1.1.1-3), при активном окне Comman History. Окно CommandHistory хранит все команды, набираемые пользователем. В отличие от содержимого Command Window сюда не попадают сообщения системы и результаты вычислений.


Окно Command History целесообразно использовать при вводе команд, однотипных вычислений или просто повторений группы командных строк. Чтобы ввести в текущую строку содержимое ранее введенной командной строки, достаточно нажатием клавиш <> или <> подобрать нужную строку. Перенести конкретную строку в командное окно можно двойным щелчком мыши по этой строке в окне Command History.

Для очистки области истории команд используются команда clear или команда контекстного меню сlear Command History.



1.1.2. Основные объекты системы Matlab


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


Число – объект языка Matlab, представляющий числовые данные. Числа могут быть представлены в целом, дробном, с фиксированной и плавающей точкой, а также в экспоненциальном виде. Например,


0, 2, -4, 4.67, 0.0005, 567.9e-7, 0.89e12.


Причем, числа могут быть как действительными, так и комплексными. Комплексные числа содержат действительные и мнимые части. В Matlab мнимая часть имеет множитель i или j, означающий корень квадратный из -1. Например,


3i, 5j, -5.1 + i8, 0.05e-5 - j0.006.


Числовая константа – это предварительно определенное число (числовое значение). Числа (например, 1, -5, 3.97) являются безымянными числовыми константами.


Системные константы (табл. 1.1.2-1) – это такие константы, значения которых задаются системой при загрузке, но при необходимости их можно переопределить.






Таблица 1.1.2-1

Константа

Назначение

i или j

Мнимая единица

pi

Число π=3.1415926…

eps


Погрешность вычислений над числами с плавающей точкой (2-52)

realmin

Наименьшее число с плавающей точкой (2-1022)

realmax

Наибольшее число с плавающей точкой (21022)

inf

Значение машинной бесконечности

ans

Переменная, хранящая результат последней операции

NaN

Указание на нечисловой характер данных (Not-a-Number)


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

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

  • в имени переменной различаются прописные и строчные буквы;

  • в имя переменной не входит пробел;

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

  • желательно использовать содержательные имена для обозначения переменных.



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

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


Операция присваивания используется для задания переменным определенных значений и обозначается знаком равенства =:

Имя переменной = Выражение

Имя переменной = Выражение;


Арифметические операции в системе Matlab можно проводить вычисления как с вещественными, так и с комплексными числами. Полный список арифметические операции приведен в табл. 1.1.2-2.


Следует обратить внимание, что в математических выражениях с операциями +, -, * ,^, /, \ участвуют как векторы, так и матрицы.

Первые восемь операций действуют в соответствии с правилами линейной алгебры, т.е. с правилами операций над векторами и матрицами.

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


Таблица 1.1.2-2


Функция

Название

Операция

Синтаксис

plus()

Плюс

+

M1+M2

uplus()

Унарный плюс

+

+M

minus()

Минус

-

М1-M2

uminus()

Унарный минус

-

mtimes()

Матричное умножение

*

M1*M2

times()

Поэлементное умножение массивов

.*

A1.*A2

mpower()

Возведение матрицы в степень

^

М^х

power()

Поэлементное возведение массива в степень

.^

A.^x

mldivide()

Обратное (справа налево) деление матриц

\

M1\M2

mrdivide()

Деление матриц слева направо

/

M1/M2

ldivid()

Поэлементное деление массивов справа налево

.\

A1.\A2

rdivide()

Поэлементное деление массивов слева направо

./

A1./A2

Подробнее операции над векторами и матрицами рассмотрены в Теме 1.2.


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

 Функции – это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов (параметров) и при этом возвращающие результаты этих преобразований. Возврат результата – отличительная черта функций. Функции могут быть встроенными (внутренними) функциями системы Matlab, функциями пользователя, которые могут дополнять встроенные функции и описанные конкретным пользователем для своих нужд, внешними функциями, или m-функциями.

Matlab обладает большим набором элементарных встроенных (библиотечных) функций, в том числе математических. Встроенные функции хранятся в откомпилированном виде в ядре системы Matlab. Некоторые из них приведены в табл. 1.1.2-3.