
- •Численные методы и универсальные математические пакеты (Номер занятия в оглавлении равен номеру лабораторной работы. Лабораторные работы состоят из практических заданий из соответствующих занятий)
- •Введение
- •Занятие 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.
Практическое задание 4.
Построить естественный кубический сплайн для точек
x:=[1,2,3,4,5,6,7,8,9,10,11];
y:=[1008,1010,1010,1014,1016,1020,1020,1022,1020,1018,1018];
План решения:
Задать точки в виде списков x и y.
С помощью команды Spline пакета CurveFitting построить кубический сплайн по этим точкам, обозначить его f.
Для построения точек на графике необходимо задать их в виде списка [[x1,y1],[x2,y2],…,[xN,yN]]. Для этого можно использовать команду seq или $: xy:=[[x[i],y[i]]$i=1..nops(x)];
Построить сплайн и точки в одних осях.
Занятие 4. Численное дифференцирование Приближение производной
Если
функцию
можно вычислять для значений, которые
лежат слева и справа от
,
то наилучшая двухточечная формула
будет содержать обсциссы, которые
выбраны симметрично относительно
.
Формула
центральной разности порядка
:
Предположим,
что
и что
,
тогда
При
этом существует такое число
,
что
Ниже приведены несколько формул порядка
Другой способ нахождения производной:
Исходная функция аппроксимируется полином Лагранжа или Ньютона, и производная находится уже от интерполяционного полинома.
Анимация
в пакет plots включены команды создания анимационной графики на плоскости и пространстве: animate() и animate3d().Для "запуска" анимации следует выделить график, отображаемый после выполнения команд анимационной графики и воспользоваться кнопками управления из контекстной панели инструментов анимации.
Двумерная анимация
Двумерная анимация создается командой animate(), имеющей следующий синтаксис:
animate(y-expr, х=диапазон1, time=диалазон2);
Здесь первый параметр y-expr представляет выражение, зависящее от переменной х и параметра time, изменяемых в соответствующих диапазонах. В примере 4.31 создается анимационное отображение функции cos(x), которое представляет зависимость этой функции от параметра phi, являющегося фазой тригонометрической функции.
Пример. Двумерная анимация
> animate(cos(x+phi),x=0..2*Pi,phi=0..2*Pi, color=black, thickness=2);
Можно создавать анимацию и для параметрически заданной кривой, а также для кривой, заданной в системе координат, отличной от декартовой. Пример 4.32 демонстрирует создание анимации для параметрически заданного эллипса и для разворачивающейся спирали в полярной системе координат.
Пример. Анимации параметрической кривой и кривой в полярной системе координат
> animate([a*cos(t)^3,sin(t)^3,t=0..2*Pi] ,a=0..2);
animate(phi*t,phi=0..8*Pi,t=1..4,coords=polar,numpoints=200);
Трехмерная анимация
В пространстве анимация создается командой animate3d(), имеющей синтаксис, аналогичный синтаксису команды двумерной анимации animate():
animate3d(F(x,y,t),x=a..b,y=c..d,t=p..q,опции)
Здесь первый параметр F(x,y,t) представляет выражение от трех переменных или функцию двух первых независимых переменных, зависящую от параметра t. Остальные параметры задают диапазоны изменения независимых переменных и параметра. Опции, представленные параметром опции, как всегда задаются в виде уравнений и определяют вид отображаемого анимационного графика: оси, толщины линий и т. п.
Пример. Пространственная анимация
> F:=(x,y)->cos(t*x)*sin(t*y);
> animate3d(F(x,y),x=-1..1,y=-1..1, t=1..2,
axes=BOXED,shading=ZGRAYSCALE);
По умолчанию для представления пространственной анимации создается 8 кадров. Опцией frame всегда можно увеличить их число для получения более плавной картинки смены кадров.
Команда animate3d() может одновременно отображать изменение нескольких функций. В этом случае все они должны зависеть от одинаковых независимых переменных и одного и того же параметра и задаваться в виде списка.
Команда трехмерной анимации может создавать анимационные отображения и параметрически заданной поверхности. Пример 4.35 демонстрирует построение анимации параметрически заданной поверхности.
Пример. Пространственная анимация параметрически заданной кривой
> animate3d([x*u,t-u,x*cos(t*u)],x=1..3,t=1..4,u=2..4,
axes=BOXED,orientation=[-45,70]);