МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

29
2020 Отделение ядерно-топливного цикла МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ ПРОЦЕССОВ ЛЕКЦИЯ №2 «Работа с данными в Matlab» Лектор: Зав. каф. - руководитель ОЯТЦ ИЯТШ Горюнов А.Г.

Upload: others

Post on 22-Mar-2022

42 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

2020

Отделение ядерно-топливного цикла

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ

ПРОЦЕССОВ

ЛЕКЦИЯ №2

«Работа с данными в Matlab»

Лектор:

Зав. каф. - руководитель ОЯТЦ ИЯТШ

Горюнов А.Г.

Page 2: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

План лекции

2.1 Операции с массивами/матрицами в Matlab.

2.2 Основные стандартные функции Matlab, математические и

статистические функции.

2.3 Импорт и экспорт данных в Matlab.

2.4 m-файлы сценариев (скриптов) и функций.

2.5 Локальные и глобальные переменные.

2.6 Анонимные функции, подфункции, вложенные функции.

Использование дескрипторов и имен функций.

2

https://portal.tpu.ru/SHARED/a/ALEX1479/study/Matmod/Tab

Информация по курсу:

Page 3: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

2.1 Операции с массивами/матрицами

в Matlab.

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

3

2.1.1 Обращение к элементам матрицы

Page 4: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

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

Сложение и вычитание матриц, также как чисел и векторов, осуществляетсяпри помощи знаков плюс и минус.

42.1.2 Сложение, вычитание, умножение,

транспонирование и возведение в степень

Page 5: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

1. Для умножения матрицпредназначена *;

2. Умножение матрицы на число такжеосуществляется при помощи *,умножать на число можно каксправа, так и слева;

3. Транспонирование матрицы иливектора, производится при помощи.', а символ ' означает комплексноесопряжение. Для вещественныхматриц эти операции приводят кодинаковым результатам.

52.1.2 Сложение, вычитание,

умножение, транспонирование и

возведение в степень

Page 6: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

Вектор-столбец или вектор-строка в MatLabявляются матрицами, у которых один изразмеров равен единице. Поэтому всевышеописанные операции применимы идля умножения матрицы на вектор-столбецили вектор-строки на матрицу.

62.1.3 Умножение матриц и векторов

Page 7: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

1. В MatLab парные квадратные скобки [ ]обозначают пустой массив, которыйпозволяет удалять строки и столбцыматрицы. Для удаления строки следуетприсвоить ей пустой массив;

2. Аналогичным образом удаляются истолбцы. Для удаления несколькихидущих подряд столбцов (или строк) имнужно присвоить пустой массив.

72.1.4 Удаление строк и столбцов

Page 8: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

Рассмотрим пример:

Сгенерируем матрицу Т в три этапа:

1. Создание массива T размера пять напять, состоящего из нулей.

2. Заполнение первой строки 1.

3. Заполнение части последней строки -1до последнего элемента.

82.1.5 Заполнение матриц при

помощи индексации

Page 9: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

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

Один аргумент функции zerosприводит к образованиюквадратной матрицы заданногоразмера.

Единичная матрица инициализируется при помощи функции eye.

92.1.6 Создание матриц

специального вида

Page 10: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

Функция eye с двумяаргументами создаетпрямоугольную матрицу,у которой на главнойдиагонали стоят 1, аостальные 0.

Матрица, состоящая изединиц, образуется врезультате вызовафункции ones.

Использование одногоаргумента в onesприводит к созданиюквадратной матрицы,состоящей из 1.

102.1.6 Создание матриц

специального вида

Page 11: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

В MatLab возможно заполнения матрицслучайными элементами. Результатомфункции rand является матрица чисел,распределенных случайным образоммежду нулем и единицей, а функцииrandn — матрица чисел,распределенных по нормальномузакону.

Один аргумент функций rand и randnприводит к формированию квадратныхматриц.

Функция diag формирует диагональнуюматрицу из вектор-столбца или вектор-строки, располагая их элементы подиагонали матрицы.

Функция diag также служит длявыделения диагонали матрицы в вектор.

112.1.6 Создание матриц

специального вида

Page 12: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

Умножение каждого элемента однойматрицы на соответствующий элементдругой производится при помощиоператора .*

Для деления элементов первой матрицы насоответствующие элементы второйиспользуется оператор ./, а для деленияэлементов второй матрицы насоответствующие элементы первой служит.\

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

122.1.7 Поэлементные

операции с

матрицами

Page 13: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

2.2 Основные стандартные функции

Matlab, математические и статистические

функции.

13

2.2.1 Основные математические функции MatLab

Page 14: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

142.2.1 Основные математические функции MatLab

Page 15: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

152.2.2 Основные статистические функции MatLabЗаконы распределения случайных величин:betacdf - Бета распределениеbinocdf - Биномиальное распределениеcdf - Параметризованная функция распределенияchi2cdf - Функция распределения хи-квадратexpcdf - Экспоненциальное распределениеecdf - Эмпирическая функция распределения (на основе оценки Каплана-Мейера)fcdf - Распределение Фишераgamcdf - Гамма распределениеgeocdf - Геометрическое распределениеhygecdf - Гипергеометрическое распределениеlogncdf - Логнормальное распределениеnbincdf - Отрицательное биномиальное распределениеncfcdf - Смещенное распределение Фишераnctcdf - Смещенное распределение Стьюдентаncx2cdf - Cмещенное хи-квадрат распределениеnormcdf - Нормальное распределениеpoisscdf - Распределение Пуассонаraylcdf - Распределение Релеяtcdf - Распределение Стьюдентаunidcdf - Дискретное равномерное распределениеunifcdf - Непрерывное равномерное распределениеweibcdf - Распределение Вейбулла

Page 16: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

162.2.2 Основные статистические функции MatLabПример, распределение Пуассона:

Page 17: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

172.2.2 Основные статистические функции MatLabОценка параметров закона распределения по экспериментальным даннымbetafit - Оценка параметров бета распределенияbinofit - Оценка параметров биномиального распределенияnbinfit - Оценка параметров отрицательного биномиального распределенияexpfit - Оценка параметров экспоненциального распределенияgamfit - Оценка параметров гамма распределенияnormfit - Оценка параметров нормального распределенияpoissfit - Оценка параметров распределения Пуассонаraylfit - Оценка параметров распределения Релеяunifit - Оценка параметров равномерного распределенияweibfit - Оценка параметров распределения Вейбуллаmle - Расчет функции максимального правдоподобия

lambdahart = poissfit(X) служит для расчетаточечной оценки lambdahart параметрараспределения Пуассона по исходной выборкезначений Х. Значения оценок параметровопределяются методом максимальногоправдоподобия.

Смотрим описание Statistics Toolbox пакета Matlab

Page 18: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

2.3 Импорт и экспорт данных в Matlab18

Импорт данных в Matlab предполагает загрузку данных из внешнего файла.Функция importdata позволяет загружать файлы данных различных форматов.

A = importdata(имя файла)Загружает данные в массив A из файла, обозначенного именем файла .

A = importdata (‘- pastespecial’)Загружает данные из системного буфера обмена.

Page 19: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

2.3 Импорт и экспорт данных в Matlab19

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

Page 20: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

2.3 Импорт и экспорт данных в Matlab20

Page 21: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

2.4 m-файлы сценариев (скриптов) и

функций

21

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

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

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

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

2.4.1 m-файл сценариев

Page 22: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

22

2.4.1 m-файл сценариев

Page 23: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

232.4.2 m-файл функцийМ-файл-функция является объектом языка программирования системы Matlab. Одновременно он

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

function var = f_name(список_параметров)%Основной комментарий%Дополнительный комментарийТело файла с любыми выражениямиVar = выражениеМ-файл-функция имеет следующие свойства:

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

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

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

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

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

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

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

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

Page 24: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

242.4.2 m-файл функций

Page 25: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

2.5 Локальные и глобальные

переменные

25

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

Ниже приведена иллюстрация области действия переменных.

Для указания что переменная является глобальной необходимо указать перед ееименем описание global. Например global X.

Команда who global, выводит список всех глобальных переменных.

Page 26: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

2.6 Анонимные функции, подфункции,

вложенные функции. Использование

дескрипторов и имен функций.

26

2.6.1 Анонимные функции

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

Анонимную функцию можно определить прямо в командной строке Matlabили в функции или в скрипте.

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

Синтаксис для создания анонимной функции из выражения:f = @(arglist)expression

Page 27: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

27

2.6.2 Основные функции и подфункции в Matlab

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

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

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

Page 28: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

28

2.6.2 Основные функции и подфункции в Matlab

Page 29: МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ …

29

2.6.3 Оператор дескриптора функции

Оператор дескриптора функции в Matlab действует как указатель на конкретныйэкземпляр функции.

Например, следующая функция инициализирует count значений, а затемвозвращает дескриптор функции в increment вложенной функции: