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

Post on 22-Mar-2022

16 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

2020

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

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

ПРОЦЕССОВ

ЛЕКЦИЯ №2

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

Лектор:

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

Горюнов А.Г.

План лекции

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

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

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

в Matlab.

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

3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

операции с

матрицами

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

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

функции.

13

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

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

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 - Распределение Вейбулла

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

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

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

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

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

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

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

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

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

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

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

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

функций

21

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

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

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

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

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

22

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

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

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

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

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

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

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

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

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

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

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

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

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

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

переменные

25

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

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

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

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

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

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

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

26

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

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

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

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

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

27

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

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

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

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

28

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

29

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

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

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

top related