Численные расчеты в среде MatLab
Покупка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
Новосибирский государственный технический университет
Автор:
Трошина Галина Васильевна
Год издания: 2020
Кол-во страниц: 72
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7782-4092-6
Артикул: 778177.01.99
В учебном пособии представлены основные приемы создания М-файлов и графического интерфейса в среде MatLab. Предназначено для студентов, обучающихся по направлениям 09.03.01 - «Информатика и вычислительная техника», 09.03.04 - «Программная инженерия».
Тематика:
ББК:
УДК:
ОКСО:
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ __________________________________________________________________________ Г.В. ТРОШИНА ЧИСЛЕННЫЕ РАСЧЕТЫ В СРЕДЕ MATLAB Утверждено Редакционно-издательским советом университета в качестве учебного пособия НОВОСИБИРСК 2020
УДК 004.42(075.8) Т 766 Рецензенты: канд. техн. наук, доцент С.П. Ильиных канд. физ.-мат. наук, доцент Ю.А. Котов Работа подготовлена на кафедре вычислительной техники Трошина Г.В. Т 766 Численные расчеты в среде MatLab: учебное пособие / Г.В. Трошина. – Новосибирск: Изд-во НГТУ, 2020. – 72 с. ISBN 978-5-7782-4092-6 В учебном пособии представлены основные приемы создания М-файлов и графического интерфейса в среде MatLab. Предназначено для студентов, обучающихся по направлениям 09.03.01 – «Информатика и вычислительная техника», 09.03.04 – «Программная инженерия». УДК 004.42(075.8) ISBN 978-5-7782-4092-6 © Трошина Г.В., 2020 © Новосибирский государственный технический университет, 2020
Введение Цель написания данного учебного пособия – дать теоретическую базу, необходимую для выполнения лабораторных, контрольных и расчетно-графических работ по курсам «Средства инженерных и научных расчетов», «Вычислительная математика». Каждый из разделов учебного пособия включает в себя примеры, графики, контрольные вопросы и тесты, необходимые для лучшего понимания излагаемого материала и получения практических навыков использования среды MatLab. Большое внимание уделено рассмотрению установившегося режима в задаче оценивания параметров динамических объектов. Приведена методика формирования информационной матрицы Фишера, рассмотрены вопросы моделирования итерационной процедуры оценивания динамических параметров в задаче активной идентификации.
1. Создание М-файлов и операции с функциями 1.1. Создание М-файлов При использовании командного окна среды MatLab в диалоговом режиме пользователь формирует одну или несколько команд в текущей строке. Несмотря на широкие возможности, которые предоставляет пользователю среда MatLab, такая последовательность действий подходит только для разовых расчетов. При изменениях в исходных данных или при выполнении большого количества однотипных действий этот режим не всегда является удобным. Необходимую цепочку команд можно включить в текстовый файл. В результате неоднократное обращение к одним и тем же данным позволит сделать вычислительный процесс более удобным. Подобного рода программы принято называть сценариями. Сценарий является самым простым типом М-файлов – у него нет входных и выходных аргументов. Он используется для автоматизации многократно выполняемых вычислений. Сценарий может быть подготовлен в любом текстовом редакторе и записан с расширением .m. Такие файлы используют единое рабочее пространство – Workspace. Переменные изменяются и сохраняются в течение всего сеанса работы. Это позволяет выполнить последовательно несколько файлов-сценариев в текущем сеансе работы с системой. Значения переменных передаются через Workspace, а промежуточные данные сохраняются в файлах. Среда MatLab располагает собственным редактором М-файлов, который вызывается после активизации команды File/New/M-File. Приступить к редактированию существующего М-файла можно после выбора команды File/Open. При формировании последовательности команд в окне тестового редактора осуществляется автоматическая нумерация строк. При оформлении текста программ на языке MatLab есть свои особенности. Каждый оператор должен быть описан в отдельной строке.
Нажатие клавиши <Enter> означает окончание оператора. Длинный оператор записывается в несколько строк, но в этом случае в конце предыдущей строки ставятся три точки. Символ < % > означает начало комментария в тексте программы. Все строчные и прописные буквы при определении имен переменных различаются. Длинный файл-сценарий можно разделить на отдельные программы, каждый из которых также можно представить в виде самостоятельного файла-сценария. Файлсценарий позволяет управлять всем вычислительным процессом. Пример. Рассчитать значение выражения: (sin(3 * pi) + cos(0) + log(1))/exp(1) Решение: >> (sin(3*pi) + cos(0) + log(1))/exp(1) ans = 0.3679 Пример. Написать М-файл с именем primer.m, который будет считать факториал: a = 1 for i = 1:5 a = a * i end Этот файл является файлом-сценарием. Ввод команды primer.m в командной строке системы MatLab вызывает выполнение операторов этого сценария. Точка с запятой в конце оператора подавляет вывод результата на экран. 1.2. Создание файлов-функций Файлы-функции являются разновидностью М-файлов. Эти файлы имеют расширение .m, а в качестве заголовка используют оператор function. В общем виде первая строка файла-функции может быть записана следующим образом: function <выходные параметры>=<имя функции>(входные параметры)
Файлы-функции и файлы-сценарии нельзя отличить по расширению имени файла .m. Процедуры, предназначенные для многократного использования файлами-сценариями, оформляются в виде файловфункций. Переменные, используемые в рамках файлов-функций, являются локальными переменными. Область, используемая локальными переменными, после выполнения файла-функции освобождается для других переменных. Переменные единого рабочего пространства с помощью оператора global могут быть объявлены в качестве глобальных переменных. В этом случае функция может обратиться к указанным переменным. Необходимо, чтобы имя М-файла, в котором записывается программа вычислительного процесса, совпадало с именем функции. Имя функции не должно превышать 31 символ. Имя может быть и длиннее, но система MatLab принимает во внимание только первые 31 символ. Имя файла-функции должно начинаться с буквы, остальные символы могут быть любой комбинацией букв, цифр и подчеркиваний. Пример. Написать функцию для вычисления факториала. Файл должен быть сохранен с именем factorial.m: function y = factorial(n) k = 1; for i = 1:n k = k * i; end y = k; Для вычисления 5! достаточно набрать в текущей строке команду >> k = factorial(5) k = 120 Структура файла-функции. Файл-функция состоит из строки определения функции, первой строки комментария, собственно комментария, тела функции, строчных комментариев.
Строка определения функции сообщает системе MatLab, что процедура является файлом-функцией, а также определяет список входных аргументов. Пример: function y = average(x) где function – ключевое слово, определяющее файл-функцию, y – выходной аргумент, average – имя функции, x – входной аргумент. Если функция имеет более одного выходного аргумента, то список выходных аргументов помещается в квадратные скобки. Входные аргументы, если они присутствуют, помещаются в круглые скобки. Для отделения аргументов во входном и выходном списках применяются запятые. Пример: function[x, y, z] = myfunc(a, b, c) Первая строка комментария. Для функции average первая строка комментария выглядит так: % AVERAGE Среднее значение элементов вектора Это первая строка текста, которая появляется, когда пользователь набирает команду help <имя_функции>. Комментарий. Для М-файлов можно создать online-подсказку, вводя текст в одной или более строках. При вводе команды подсказки help <имя_функции> система MatLab отображает строки комментария, которые размещаются между строкой определения функции и первой пустой строкой либо началом программы. Команда help <имя_функции> игнорирует комментарии, размещенные вне этой области. Тело функции. Тело функции содержит код языка MatLab, который выполняет вычисления и присваивает значения выходным аргументам. Операторы в теле функции могут состоять из вызовов функций, программных конструкций для управления потоком команд, интерактивного ввода/вывода, вычислений, присваиваний, комментариев и пустых строк. Вызов функции. При вызове m-функции система MatLab транслирует функцию в псевдокод и загружает в память. Псевдокод остается в памяти до тех пор, пока не будет использована команда clear или завершен сеанс работы.
Существует несколько разновидностей m-функций. Функции, имена которых совпадают с именами М-файлов, называются головными функциями. Подфункции представляют собой такой вид функций, описания которых находятся в М-файле после головной функции. Особенность использования подфункций М-файла заключается в том, что они не могут быть вызваны извне. Эти функции предусматривают внутреннее использование. Вызов подфункций осуществляет головная функция М-файла. К вложенной функции всегда может обращаться окружающая ее функция. Для организации ветвлений внутри выполнения вычислительной процедуры применятся условные операторы. Ниже приведены конструкции условных операторов: 1-й вариант: if <условие> <операторы> end Операторы (тело выражения) выполняются только в том случае, если условие истинно, если условие ложно, то тело выражения не выполняется. 2-й вариант: if <условие> <операторы 1> else <операторы 2> end 3-й вариант: if <условие1> <операторы 1> elseif <условие2> <операторы2> elseif <условие3> <операторы3> . . .