Компьютерные технологии в научных исследованиях и образовании
2023/24 учебный год г., Институт математики и информационных технологий, I (V) курс1 (9) семестр
Направление Магистратуры:
- 010401 - Математика (квалификация (степень) выпускника "Магистр").
Лектор:
Содержание лекционных занятий
- Введение. Алгоритмы, библиотека GSL.
- Пакет GNU Octave. Введение.
- Типы данных.
- Выражения.
- Инструкции.
- Функции.
- Cкрипты и функции.
- Ввод и вывод на терминал.
- Ввод и вывод файлов.
- Построение двумерных графиков.
- Построение трехмерных графиков.
- Примеры применения функций численных методов.
Регламентирующие документы
РПД Компьютерные технологии в науке и образованииЛабораторные работы
- Запустить Octave. Создать матрицы для матричного уравнения и решить его двумя способами, проверить решение. Загрузить пакет symbolic, определить символьный полином и определить символьный полином и получить для него разложение по схеме Горнера. Определить символьное выражение и упростить его. Задать символьную функцию и получить ее производную. Проверить работу переменных realmin, realmax, eps, Ознакомиться с типами данных,изучить функции typeinfo, class, whos, освоить создание переменных типов, отличных от тип double. Освоить создание констант разных типов.
- Описать механизм приведения/не приведения переменных типа диапазон к матричному типу, привести примеры. Описать особенности и привести примеры выполнения целочисленных арифметических операций. Привести примеры допустимых м недопустимых сочетаний операндов разных типов при арифметических операциях. Привести примеры команд управления переменными.
- Привести примеры допустимы и не допустимых индексных выражений, увеличения числа элементов в измерении массива, примеры индексных выражений для вывода элементов вектора с четными и нечетными значениями индексов, перестановки элементов вектора в обратном порядке. Привести примеры задания индексных выражения с помощью матриц и логических индексных выражений. Привести примеры матричных операторов и поэлементных матричных операторов.
- Разработать программу, которая определяет делится ли переменная на 2 или на 3 и выводит соответствующее сообщение. Разработать программу, которая определяет, равно ли значение переменной 6 или 7 и выводит соответствующее сообщение. Разработать программу, которая создает вектор fib, содержащий значения первых десяти элементов последовательности Фибоначчи с помощью трех разных инструкций цикла.
- Разработать функцию вычисляющую среднее значение элементов вектора с контролем правильности входного параметра. Разработать функцию, которая возвращает максимальный элемент вектора и индекс его первого появления в векторе. Привести примеры использования дескрипторов функций.
- Реализовать функции их предыдущего примера в виде скриптов, продемонстрировать их работу. Разработать программу для численного интегрирования функции sin(x) на интеѸвале [0.pi] с помощью механизма дескриптора функций. Разработать анонимную функцию для вычисления определенного интеграла от функций x^2 м sin(x).
- Построить простые графики функций y=sin(x) и y=x^3. Построить на одном рисунке с помощью функции subplot 4 или 6 графиков для случая когда аргументом функции plot являются матрицы. Построить те же графики с разными видами линий и легендами. С помощью функции plotyy построить графики функций y1 = sin (x) и y2 = exp (x - 1) с рахзеыми осями ординат.
- Построить трехмерный график функции "седла" - Z(V,W) = 3*(V.^4 - W.^2) без вывода и с выводам линий аппликат, контурных линий и заштрихованных прямоугольников. С помощью функции plot3 построить графики трехмерной спирали и комплексной синусоиды. Аннотировать эти графики, используя кодировку символов utf-8.
- Построить пример решения линейной системы уравнений с помощью встроенной функции реализации метода Гаусса. Построить пример нахождение корней полинома с графической демонстрацией местоположения корней. Построить пример получения интерполяционного полинома всеми методами, реализованными в функции interp1. Построить полином второй степени с помощью как классических формул и так и встроенной функции polyfit аппроксимации по методу наименьших квадратов.
Вопросы к зачету
- Основные этапы современного развития математических алгоритмов. Классы математического ПО.
- Представление алгоритмов, псевдокода, публикации, библиотеки, м математические пакеты. Характеристики библиотеки GSL.
- Пакет octave, общие сведения, пакеты расширения, символьные вычисления, механизм «шебанг».
- Классы и типы данных в octave, числовые типы данных, стандарт IEEE 754, умолчания для типов данных, задание числовых констант.
- Задание массивов, в том числе матриц, переменные realmin, realmax, eps, функции typeinfo, class. Команды управления переменными.
- Тип данных диапазон, приведение его к типу массив. Класс single и типы float, целые типы данных, целочисленная арифметика.
- Логический тип данных Арифметические операции с данными разных типов Проверки типа числовых объектов Строковые данные.
- Операторы действий на матрицами, в том числе поэлементные.
- Определение индексных выражений. Увеличения числа элементов в измерении массива. Применение векторов и матриц в индексных выражениях.
- Логические индексные выражения. Сочетание их с классическими индексными выражениями.
- Выражения присваивания. Операторы сравнения и приращения. Приоритет операторов.
- Инструкции if, switch, whille
- Инструкции do-until, for
- Определение функций. Контроль фактических параметров функции.
- Несколько возвращаемых функцией значений. Файлы с текстами функций. Управление путем загрузки файлов функций.
- Глобальные и локальные переменные. Постоянные (persistent) переменные.
- Фиксация функций в памяти. Приоритет функций
- Файлы скриптов. Дескрипторы функций. Анонимные функции.
- Вывод на терминал. Функции disp и format. Вызовы функции format. Постраничный вывод. Ввод с терминала.
- Простой ввод-вывод файлов. Функция save, load, fileread, fdisp.
- Двумерные графики. Функция plot и ее исходные данные. Функция fplot — неявное задание данных.
- Управление свойствами линий и легендами. Функция plotyy - две оси ординат.
- Трехмерные графики. Функции mesh и surf.
- Функции meshgrid и plot3. Аннотирование графиков.
- Решение системы линейных уравнений методом Гаусса.
- Поиск корней полинома.
- Функции методов интерполяции.
- Подходы к реализации аппроксимации по методу наименьших квадратов.
Список основной литературы
- Математическая энциклопедия. АЛГОРИ́ТМА СЛО́ЖНОСТЬ. [Электронный ресурс] — URL: https://rus-math.slovaronline.com/172-АЛГОРИТМА СЛОЖНОСТЬ (18.03.23).
- Mathematical software. [Электронный ресурс] — URL: https://en.wikipedia.org/wiki/Mathematical_software#Evolution_of_mathematical_software (18.03.23).
- ACM Transactions on Mathematical Software (TOMS) [Электронный ресурс] — URL: https://dl.acm.org/journal/toms (18.03.2023).
- CM Collected Algorithms [Электронный ресурс] — URL: https://calgo.acm.org/ (18.03.2023).
- GLPK [Электронный ресурс] — URL: https://en.wikibooks.org/wiki/GLPK (18.03.2023)
- Mark Galassi, James Theiler, Brian Gough GNU Scientific Library -- Design document [Электронный ресурс] — URL: https://www.gnu.org/software/gsl/design/gsl-design_toc.html (18.03.2023)
- John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring (2022). GNU Octave version 7.1.0 manual: a high-level interactive language for numerical computations. [Электронный ресурс] — URL: https://www.gnu.org/software/octave/doc/v7.1.0/ (18.03.2023)
- GNU Octave [Электронный ресурс] — URL: https://octave.org/ (18.03.2023)
Список дополнительной литературы
- Octave Packages [Электронный ресурс] — URL: https://gnu-octave.github.io/packages/ (18.03.2023)
- «Журнал вычислительной математики и математической физики»
- «Сибирский журнал вычислительной математики»
- «Математическое моделирование и численные методы»