
- •Численные методы и универсальные математические пакеты (Номер занятия в оглавлении равен номеру лабораторной работы. Лабораторные работы состоят из практических заданий из соответствующих занятий)
- •Введение
- •Занятие 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.
Метод Ньютона
Данный метод называетя также методом касательных
Метод Ньютона сходится к корню быстрее, чем метод деления пополам и метод итераций.
Рассмотрим
уравнение
Метод Ньютона заключается в нахождении корня уравнения по итерационной формуле
для
(3)
Остановка
итераций происходит, когда
.
Процедуры в Maple
В языках программирования процедуры позволяют выделить код в одну связанную единицу с тем, чтобы в дальнейшем простым обращением к ее имени инициировать выполнение всех, содержащихся в ней операторов. Обычно процедуры используются для реализации некоторых часто выполняемых действий.
Определение процедуры Maple имеет следующий общий синтаксис:
рrос([ список_формальных_параметров ])
[ local список__локальных_переменных; ]
[ global список_глобальных_переменных; ]
последовательность_операторов
end proc
При объявлении процедуры единственным обязательным параметром является последовательность операторов, формирующих тело процедуры. Остальные параметры, определяющие локальные и глобальные переменные, список формальных параметров, задающие специальные опции режима выполнения процедуры и строку описания, могут полностью отсутствовать.
Определение процедуры на рабочем листе создает объект Maple, которому, однако, следует дать имя, чтобы в дальнейшем можно было обращаться к нему. Это осуществляется обычной операцией присваивания:
> vector_length:=proc(x,y) sqrt(x^2+y^2); end proc;
После того, как процедура определена и ей присвоено имя, ее можно вызвать и выполнить с помощью оператора вызова функции, в котором задается имя процедуры, а в скобках определяются фактические переменные, которые заменяют в теле процедуры все формальные параметры:
> vector_length(2,5);
Обычно возвращаемым значением процедуры является значение последнего вычисленного в теле процедуры оператора. В нашем примере последний, и единственный, оператор вычисляет квадратный корень из суммы квадратов параметров процедуры.
Если необходимо вернуть из процедуры не последний оператор, то необходимо пользоваться командой return.
Процедуру можно написать используя специальную нотацию:
> vector_length:=(x,y)->sqrt(x^2+y^2);
> vector_length(2,5);
Практическое задание 1.
Решить
уравнение
методом итераций.
Для метода итераций функция должна быть задана в виде , а мы имеем . Для преобразования функции к нужному виду прибавим к обеим частям равенства, получим:
т.е.
План:
Задать фукнцию через оператор и обозначить ее g
Построить график функции g(x)-x
Задать концы интервалов как переменные a, b (исходя из графика)
Задать точность вычисления epsilon:=0.0001;
Взять за начальное приближение левый конец интервала, т.е. x[0]:=a;
Реализовать алгоритм нахождения корня по формуле , Для этого необходимо написать цикл по переменной
от 0 до 10000 (любое большое число на случай зацикливания) с условием выхода при выполнении условия (условие выхода через оператор if ‑ проверка условия и break ‑ выход).
Найти точное решение уравнения, используя solve.