
- •Численные методы и универсальные математические пакеты (Номер занятия в оглавлении равен номеру лабораторной работы. Лабораторные работы состоят из практических заданий из соответствующих занятий)
- •Введение
- •Занятие 1. Теория погрешностей Источники и классификация погрешностей.
- •Приближенные числа.
- •2. Погрешность произведения.
- •3. Погрешность частного.
- •Введение в Maple
- •Константы
- •Переменные, неизвестные и выражения
- •Команды преобразования выражений
- •Упрощение выражения: simplify()
- •Раскрытие скобок в выражении: expand()
- •Разложение полинома на множители: factor()
- •Ограничения на неизвестные: assume()
- •Сложные типы данных
- •Последовательность выражений
- •Списки и множества
- •Внутренняя структура выражений
- •Подстановка и преобразование выражений
- •Практическое задание
- •Занятие 2. Приближение функций
- •Приближение полиномом Тейлора
- •Приближение функий заданных таблицей своих значений
- •Алгебраическое интерполирование
- •Интерполяционный многочлен Лагранжа
- •Многочлены Чебышева
- •Разделенные разности и многочлен Ньютона
- •Решение уравнений, неравенств и их систем
- •Команда solve()
- •Команда fsolve()
- •Решение неравенств
- •Дифференцирование и интегрирование
- •Int(выражение, переменная);
- •Практическое задание 1
- •Практическое задание 2
- •Занятие 3. Построение кривой по точкам
- •Линия, построенная методом наименьших квадратов
- •Метод линеаризации данных для экспоненциальной кривой
- •Нелинейный метод наименьших квадратов
- •Линейный метод наименьших квадратов
- •Интерполирование сплайнами
- •Графика в Maple
- •Команда двумерной графики plot()
- •Двумерные команды пакета plots
- •Несколько советов
- •Пространственная графика, команда plot3d()
- •Трехмерные команды пакета plots
- •Практическое задание 1.
- •Практическое задание 2.
- •Практическое задание 3.
- •Практическое задание 4.
- •Занятие 4. Численное дифференцирование Приближение производной
- •Анимация
- •Двумерная анимация
- •Трехмерная анимация
- •Практическое задание 1
- •Практическое задание 2
- •Занятие 5. Численное интегрирование
- •Квадратурные формулы
- •Основы программирования в Maple
- •If булево_выражение then последовательность_операторов
- •Практическое задание 1.
- •Практическое задание 2.
- •Практическое задание 3.
- •Занятие 6. Решение нелинейных уравнений
- •Метод простой итерации
- •Метод бисекции (деления пополам)
- •Метод Ньютона
- •Процедуры в Maple
- •Практическое задание 1.
- •Практическое задание 2.
- •Практическое задание 3.
- •Практическое задание 4.
- •Занятие 7. Решение систем Линейные системы. Метод Гаусса
- •Пакет LinearAlgebra
- •Основные типы данных
- •Элементарные операции с матрицами и векторами
- •Решение систем линейных уравнений
- •Практическое задание 1.
- •Практическое задание 2
- •Практическое задание 3
- •Занятие 8. Решение дифференциальных уравнений
- •Задача Коши
- •Метод Эйлера
- •Методы Рунге-Кутта
- •Системы дифференциальных уравнений
- •Решение обыкновенных дифференцильных уравнений в Maple
- •Практическое задание 1
- •Практическое задание 2.
- •Практическое задание 3.
Практическое задание 2.
Решить уравнение методом деления пополам.
Для данного метода функция должна быть задана в виде , что мы и имеем.
План:
Задать фукнцию
через оператор и обозначить ее f
Построить график функции f(x)
Задать концы интервалов как переменные a, b (исходя из графика так, чтобы )
Задать точность вычисления epsilon:=0.0001;
Реализовать алгоритм нахождения корня. Для этого необходимо написать цикл по переменной от 1 до 10000 (любое большое число на случай зацикливания) с условием while ((b-a)>epsilon) (условие пишется в той же строчке, что и for). Внутри цикла считаетя середина интервала
и проверяется два условия: 1) если ; 2) . Если выполняетя 1), то b:=c; если 2), то a:=c;
Найти точное решение уравнения, используя solve.
Практическое задание 3.
Решить уравнение методом Ньютона.
Функция задана в нужном .
План:
Задать фукнцию через оператор и обозначить ее f
Построить график функции f(x)
Задать концы интервалов как переменные a, b (исходя из графика)
Задать точность вычисления epsilon:=0.0001;
Взять за начальное приближение левый конец интервала, т.е. x[0]:=a;
Реализовать алгоритм нахождения корня по формуле , Для этого необходимо написать цикл по переменной от 0 до 10000 (любое большое число на случай зацикливания) с условием выхода при выполнении условия
(условие выхода через оператор if ‑ проверка условия и break ‑ выход). Для нахождения значения производной в точке можно использовать следующую команду D(f)(x[i])
Найти точное решение уравнения, используя solve.
Практическое задание 4.
Реализовать любой из выше перечисленных методов в виде процедуры.
Например, для метода итераций:
iteracii:=рrос([ список_формальных_параметров ])
[ local список_локальных_переменных; ]
[ global список_глобальных_переменных; ]
последовательность_операторов
end proc
В список_формальных_параметров будут входить g, a, epsilon.
Они задаются вне процедуры, и ее вызов будет выглядеть следующим образом:
iteracii(g,a,epsilon);
список_локальных_переменных – это список вспомогательных переменных, которые используются внутри процедуры, в данном методе это i, x.
Глобальных переменных нет.
Занятие 7. Решение систем Линейные системы. Метод Гаусса
Рассмотрим данный метод на примере системы, состоящей из 3 линейных уравнений:
(1)
Предположим,
что коэффициент
,
называемый ведущим элементов не равен
0.
Разделим первое уравнение на , получим
(2)
где
Исключаем
неизвестную
из оставшихся уравнений, это делается
вычитанием уравнения (2), умноженного
на коэффициент при переменной
в соответствующем уравнении:
(3)
где
Допустим,
что ведущий элемент
отличен от нуля. Тогда разделив на него
первое уравнение получим:
где
Исключив
из полученного уравнения
получим:
где
Наконец,
если
,
то разделив на него получим
где
Итак, система эквивалентна следующей системе:
Из нее неизвестные находятся в обратном порядке.
Решение системы с помощью обратной матрицы
Пусть дана система в матричном виде
где
‑ матрица коэффициентов
‑ вектор неизвестных
‑
вектор правой части
Тогда
Метод простой итерации
Пусть дана система
представим ее в виде
Метод
простой итерации состоит в следующем:
выбирается произвольный вектор
и строится итерационная последовательность
по формуле
,
Решение нелинейных систем
Метод итераций
Перепишем систему в виде:
Выбирается
начальное приближение из области
(область с единственным решением).
Для того, чтобы данный метод был применим для уточнения решения системы необходимо выполение условий в области :
Вычисления производим по формулам:
Метод Ньютона.
Выбирается начальное приближение из области (область с единственным решением).
Найдем частные производные:
Уточнение корней производим методом Ньютона:
Где
,
Линейная алгебра
В Maple выполнение преобразований линейной алгебры можно осуществлять с помощью команд двух пакетов: linaig и LinearAlgebra, функциональность которых практически одинакова. Первый пакет входил в состав и всех предыдущих версий Maple, тогда как второй пакет — это новое средство, позволяющее работать с числовыми матрицами, в том числе и с матрицами больших размеров, используя всю мощь известного пакета численных расчетов NAG (Numerical Algorithms Group).
Основными объектами, с которыми работают команды этих пакетов, являются матрицы, однако матрицы одного пакета не эквивалентны матрицам другого.