МЕТОДЫ ВЫЧИСЛЕНИЙ в классах языка С++
Учебное пособие для студентов вузов
Кривой Рог
Издательский отдел КГПИ
1999
Полищук А.П., Семериков С.А.
Методы вычислений в классах языка С++: Учебное пособие. – Кривой Рог: Издательский отдел КГПИ, 1999. – 350 с., ил.
Учебное пособие содержит классический вузовский набор алгоритмов вычислительной математики, ориентированных на программную реализацию средствами языка С++. Использование объектно-ориентированной методологии значительно облегчает усвоение курса за счет расширения языка новыми типами данных (векторы, полиномы, матрицы и др.), приближающих программную запись к естественной математической.
Для студентов высших учебных заведений, аспирантов, научных и инженерно-технических работников.
Рецензенты:
д-р техн. наук, проф. А.Н. Марюта
,канд. физ.-мат. наук, доц. Н.А. Рашевский
©
А.П. Полищук, С.А. Семериков, 1999Оглавление
0.
Введение0.1.
Приближенные вычисления *0.2. Численные методы и программирование
0.3. Особенности машинных вычислений
*0.4. Структура учебного пособия
*1. Специальные классы математических объектов и операции над ними
*1.1. Комплексные числа
*1.1.1. Основные понятия
*1.1.2. Операции над комплексными числами
*1.1.2.1. Операции сравнения
*1.1.2.2. Алгебраические операции
*1.1.2.2.1. Сложение и вычитание
*1.1.2.2.2. Умножение
*1.1.2.2.3. Деление
*1.1.2.2.4. Возведение в степень (формула Муавра)
*1.1.3. Определение программного класса комплексных чисел
*1.2. Векторы
*1.2.1. Основные понятия
*1.2.2. Определение программного класса многомерных векторов
*1.3. Полиномы
*1.3.1. Общие сведения
*1.3.2. Операции над полиномами
*1.3.3. Вычисление значений полиномов
*1.3.4. Вычисление корней полиномов
*1.3.5. Определение программного класса полиномов
*2. Матрицы и задачи линейной алгебры
*2.1. Общие сведения о матрицах и матричных операциях
*2.2. Методы решения основных задач линейной алгебры
*2.2.1. Методы решения систем линейных алгебраических уравнений (СЛАУ)
*2.2.1.1. Метод Гаусса для решения СЛАУ, вычисления определителей и обращения матриц
*2.2.1.2. Предварительная факторизация матриц (разложение в произведение двух матриц) в задачах решения СЛАУ
*2.2.1.2.1. Факторизация матриц по методу Холецкого
*2.2.1.3. Метод ортогонализации для решения СЛАУ
*2.2.1.4. Итерационные методы решения СЛАУ
*2.2.1.4.1. Проблема сходимости итерационных методов
*2.2.2. Методы вычисления собственных значений матриц
*2.2.2.1. Метод неопределенных коэффициентов
*2.2.2.2. Метод Данилевского
*2.2.2.3. QR-алгоритм для несимметрических матриц
*2.2.2.4. Метод Леверрье-Фаддеева
*2.2.2.5. Итерационный степенной метод
*2.2.2.6. Метод Крылова
*2.2.3. Метод наименьших квадратов (МНК)
*2.3. Программная реализация матричного класса
*2.3.1. Общее описание структуры матричного класса
*2.3.2. Интерфейсный файл реализации матричного класса matrix.h
*2.4. Программная реализация методов вычисления собственных значений и собственных векторов матриц
*2.4.1. Метод неопределенных коэффициентов
*2.4.2. Программная реализация метода Крылова вычисления собственных значений
*2.4.3. Метод Леверрье-Фаддеева вычисления коэффициентов характеристического полинома
*2.5. Элементы линейного программирования
*2.5.1
. Общая постановка задачи *2.5.2. Примеры задач линейного программирования
*2.5.2.1. Задача о пищевом рационе
*2.5.2.2. Задача о распределении ресурсов
*2.5.2.3. Задача планирования перевозок (транспортная задача)
*2.5.3. Симплекс-метод решения задачи линейного программирования
*2.5.3.1. Приведение системы к стандартной, удобной для преобразований форме
*2.5.3.2. Алгоритм замены базисных переменных
*2.5.3.3. Алгоритм поиска опорного решения ОЗЛП
*2.5.3.3.1. Алгоритм выбора разрешающего элемента для приближения к опорному решению
*2.5.3.4. Алгоритм поиска оптимального решения
*2.5.4. Транспортная задача линейного программирования
*2.5.4.1. Общие сведения
*2.5.4.2. Формирование опорного плана
*2.5.4.3. Циклические переносы перевозок для улучшения плана
*2.5.4.4. Метод потенциалов
*2.5.5. Транспортная задача при небалансе запасов и заявок
*2.5.6. Транспортная задача с временным критерием
*2.6. Программная реализация задач линейного программирования
*2.6.1. Симплекс-метод решения ОЗЛП
*2.6.2. Программная реализация метода решения транспортной задачи
*3. Аналитическое приближение функций, заданных таблично
*3.1. Общая постановка задачи
*3.2. Общая методика решения задач аппроксимации
*3.2.1. Алгебраическая интерполяция
*3.2.1.1. Классический интерполяционный полином
*3.2.1.2. Метод интерполяции Лагранжа
*3.2.1.3. Интерполяционный полином Ньютона
*3.2.1.4. Интерполяция сплайнами
*3.2.1.5. Аппроксимация функций по методу наименьших квадратов
*3.2.2. Программная реализация класса аппроксимирующих функций
*4. Численное интегрирование и дифференцирование табличных функций
*4.1. Численное интегрирование
*4.1.1. Вычисление определенных интегралов
*4.1.1.1. Классификация методов
*4.1.2. Программная реализация методов численного интегрирования
*4.2.Численное дифференцирование
*5. Введение в численные методы решения дифференциальных уравнений
*5.1. Обыкновенные дифференциальные уравнения (общие сведения)
*5.2. Процессы как объект исследования и управления
*5.3. Операционное исчисление и его применение к исследованию динамики линейных систем
*5.3.1. Общие сведения
*5.3.1.1. Правила операционного исчисления
*5.3.2. Решение линейных уравнений с постоянными коэффициентами
*5.3.2.1. Передаточные функции линейных динамических систем
*5.3.2.2. Частотные характеристики динамических систем
*5.3.2.3. Фазовые портреты динамических систем
*5.3.2.4. Ограничения области применения символического метода
*5.3.3. Программная реализация класса символического метода
*5
.4. Конечно-разностные методы решения задачи Коши для линейных и нелинейных ОДУ *5.4.1. Одношаговые методы
*5.4.1.1. Метод Эйлера
*5.4.1.2. Методы Рунге-Кутта 2-го порядка
*5.4.1.3. Метод Рунге-Кутта 4-го порядка
*5.4.2. Многошаговые методы (методы Адамса)
*5.4.3. Проблема устойчивости
*5.4.4. Программная реализация численных методов решения задачи Коши
*5.5. Двухточечные краевые задачи
*5.5.1. Метод конечных разностей для линейных краевых (граничных) задач
*5.5.2. Метод стрельбы для граничных задач
*5.5.3. Программная реализация класса граничных задач
*6. Численные методы решения систем нелинейных уравнений (СНУ) и поиска экстремумов функций
*6.1. Общая постановка задачи
*6.2. Решение нелинейных уравнений
*6.2.1. Функция одной переменной при отсутствии помех
*6.2.1.1. Методы последовательного сокращения интервала неопределенности
*6.2.1.2. Рекуррентные методы уточнения текущей оценки значения корня
*6.2.2. Уточнение корня функции одной переменной в условиях помех
*6.2.2.1. Методы стохастической аппроксимации
*6.3. Методы поиска экстремума функций
*6.3.1. Унимодальные функции одного аргумента при отсутствии помех
*6.3.1.1. Метод дихотомии
*6.3.1.2. Метод Фибоначчи
*6.3.1.3. Метод золотого сечения
*6.3.2.
Многомерный поиск экстремума *6.3.2.1. Метод координатного спуска
*6.3.2.2. Метод градиента (наискорейшего спуска или крутого восхождения или метод Бокса-Уилсона)
*6.3.2.3. Последовательный симплексный поиск (ПСМ) субоптимальной области в многомерном пространстве
*6.3.2.3.1. Вводные замечания
*6.3.2.3.2. Алгоритм последовательного симплексного метода
*6.3.2.3.3. Подготовительные операции
*6.3.2.3.4. Алгоритм поиска
*6.3.2.3.5. Преимущества метода
*6.3.2.3.6. Недостатки метода
*6.4. Программная реализация класса подпрограмм для поиска экстремума унимодальных в заданном интервале функций одной еременной
*6.5. Программная реализация класса подпрограмм для многомерного поиска экстремума унимодальных функций
*Приложение. Как переносить данные в Ехсеl и отображать графики зависимостей
*Литература
*