(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Проекты | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация (English)

Компьютерные технологии в научных исследованиях и образовании

2023/24 учебный год г., Институт математики и информационных технологий, I (V) курс
1 (9) семестр
Направление Магистратуры:

Лектор:

Содержание лекционных занятий

Регламентирующие документы

РПД Компьютерные технологии в науке и образовании

Лабораторные работы

  1. Запустить Octave. Создать матрицы для матричного уравнения и решить его двумя способами, проверить решение. Загрузить пакет symbolic, определить символьный полином и определить символьный полином и получить для него разложение по схеме Горнера. Определить символьное выражение и упростить его. Задать символьную функцию и получить ее производную. Проверить работу переменных realmin, realmax, eps, Ознакомиться с типами данных,изучить функции typeinfo, class, whos, освоить создание переменных типов, отличных от тип double. Освоить создание констант разных типов.
  2. Описать механизм приведения/не приведения переменных типа диапазон к матричному типу, привести примеры. Описать особенности и привести примеры выполнения целочисленных арифметических операций. Привести примеры допустимых м недопустимых сочетаний операндов разных типов при арифметических операциях. Привести примеры команд управления переменными.
  3. Привести примеры допустимы и не допустимых индексных выражений, увеличения числа элементов в измерении массива, примеры индексных выражений для вывода элементов вектора с четными и нечетными значениями индексов, перестановки элементов вектора в обратном порядке. Привести примеры задания индексных выражения с помощью матриц и логических индексных выражений. Привести примеры матричных операторов и поэлементных матричных операторов.
  4. Разработать программу, которая определяет делится ли переменная на 2 или на 3 и выводит соответствующее сообщение. Разработать программу, которая определяет, равно ли значение переменной 6 или 7 и выводит соответствующее сообщение. Разработать программу, которая создает вектор fib, содержащий значения первых десяти элементов последовательности Фибоначчи с помощью трех разных инструкций цикла.
  5. Разработать функцию вычисляющую среднее значение элементов вектора с контролем правильности входного параметра. Разработать функцию, которая возвращает максимальный элемент вектора и индекс его первого появления в векторе. Привести примеры использования дескрипторов функций.
  6. Реализовать функции их предыдущего примера в виде скриптов, продемонстрировать их работу. Разработать программу для численного интегрирования функции sin(x) на интеѸвале [0.pi] с помощью механизма дескриптора функций. Разработать анонимную функцию для вычисления определенного интеграла от функций x^2 м sin(x).
  7. Построить простые графики функций y=sin(x) и y=x^3. Построить на одном рисунке с помощью функции subplot 4 или 6 графиков для случая когда аргументом функции plot являются матрицы. Построить те же графики с разными видами линий и легендами. С помощью функции plotyy построить графики функций y1 = sin (x) и y2 = exp (x - 1) с рахзеыми осями ординат.
  8. Построить трехмерный график функции "седла" - Z(V,W) = 3*(V.^4 - W.^2) без вывода и с выводам линий аппликат, контурных линий и заштрихованных прямоугольников. С помощью функции plot3 построить графики трехмерной спирали и комплексной синусоиды. Аннотировать эти графики, используя кодировку символов utf-8.
  9. Построить пример решения линейной системы уравнений с помощью встроенной функции реализации метода Гаусса. Построить пример нахождение корней полинома с графической демонстрацией местоположения корней. Построить пример получения интерполяционного полинома всеми методами, реализованными в функции interp1. Построить полином второй степени с помощью как классических формул и так и встроенной функции polyfit аппроксимации по методу наименьших квадратов.

Вопросы к зачету

  1. Основные этапы современного развития математических алгоритмов. Классы математического ПО.
  2. Представление алгоритмов, псевдокода, публикации, библиотеки, м математические пакеты. Характеристики библиотеки GSL.
  3. Пакет octave, общие сведения, пакеты расширения, символьные вычисления, механизм «шебанг».
  4. Классы и типы данных в octave, числовые типы данных, стандарт IEEE 754, умолчания для типов данных, задание числовых констант.
  5. Задание массивов, в том числе матриц, переменные realmin, realmax, eps, функции typeinfo, class. Команды управления переменными.
  6. Тип данных диапазон, приведение его к типу массив. Класс single и типы float, целые типы данных, целочисленная арифметика.
  7. Логический тип данных Арифметические операции с данными разных типов Проверки типа числовых объектов Строковые данные.
  8. Операторы действий на матрицами, в том числе поэлементные.
  9. Определение индексных выражений. Увеличения числа элементов в измерении массива. Применение векторов и матриц в индексных выражениях.
  10. Логические индексные выражения. Сочетание их с классическими индексными выражениями.
  11. Выражения присваивания. Операторы сравнения и приращения. Приоритет операторов.
  12. Инструкции if, switch, whille
  13. Инструкции do-until, for
  14. Определение функций. Контроль фактических параметров функции.
  15. Несколько возвращаемых функцией значений. Файлы с текстами функций. Управление путем загрузки файлов функций.
  16. Глобальные и локальные переменные. Постоянные (persistent) переменные.
  17. Фиксация функций в памяти. Приоритет функций
  18. Файлы скриптов. Дескрипторы функций. Анонимные функции.
  19. Вывод на терминал. Функции disp и format. Вызовы функции format. Постраничный вывод. Ввод с терминала.
  20. Простой ввод-вывод файлов. Функция save, load, fileread, fdisp.
  21. Двумерные графики. Функция plot и ее исходные данные. Функция fplot — неявное задание данных.
  22. Управление свойствами линий и легендами. Функция plotyy - две оси ординат.
  23. Трехмерные графики. Функции mesh и surf.
  24. Функции meshgrid и plot3. Аннотирование графиков.
  25. Решение системы линейных уравнений методом Гаусса.
  26. Поиск корней полинома.
  27. Функции методов интерполяции.
  28. Подходы к реализации аппроксимации по методу наименьших квадратов.

Список основной литературы

  1. Математическая энциклопедия. АЛГОРИ́ТМА СЛО́ЖНОСТЬ. [Электронный ресурс] — URL: https://rus-math.slovaronline.com/172-АЛГОРИТМА СЛОЖНОСТЬ (18.03.23).
  2. Mathematical software. [Электронный ресурс] — URL: https://en.wikipedia.org/wiki/Mathematical_software#Evolution_of_mathematical_software (18.03.23).
  3. ACM Transactions on Mathematical Software (TOMS) [Электронный ресурс] — URL: https://dl.acm.org/journal/toms (18.03.2023).
  4. CM Collected Algorithms [Электронный ресурс] — URL: https://calgo.acm.org/ (18.03.2023).
  5. GLPK [Электронный ресурс] — URL: https://en.wikibooks.org/wiki/GLPK (18.03.2023)
  6. 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)
  7. 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)
  8. GNU Octave [Электронный ресурс] — URL: https://octave.org/ (18.03.2023)

Список дополнительной литературы

  1. Octave Packages [Электронный ресурс] — URL: https://gnu-octave.github.io/packages/ (18.03.2023)
  2. «Журнал вычислительной математики и математической физики»
  3. «Сибирский журнал вычислительной математики»
  4. «Математическое моделирование и численные методы»