
- •Вычислительная математика
- •Оглавление
- •3. Численное интегрирование…………………………………………………...51
- •4. Уравнения в частных производных…………………………………………65
- •5. Численные методы линейной алгебры……………………………………...73
- •1. Численные методы решения обыкновенных дифференциальных уравнений Основные понятия
- •Элементы теории погрешностей
- •Численное дифференцирование. Аппроксимационные формулы
- •Задача Коши для обыкновенного дифференциального уравнения 1-го порядка. Метод Эйлера
- •Задача Коши для обыкновенных дифференциальных уравнений 1-го порядка. Методы Рунге-Кутта
- •Краевые задачи для обыкновенного дифференциального уравнения 2-го порядка
- •Метод Галеркина для обыкновенных дифференциальных уравнений 2-го порядка
- •2. Аппроксимация функций Интерполяционный многочлен Лагранжа
- •Многочлены Чебышева
- •Минимизация погрешности интерполяции полинома Лагранжа
- •Интерполяция с равноотстоящими узлами
- •Кусочная аппроксимация
- •Сплайн- интерполяция
- •Метод наименьших квадратов
- •Ортогональные полиномы
- •3. Численное интегрирование Простейшие квадратурные формулы
- •Квадратурные формулы Ньютона-Котеса
- •Экстраполяция по Ричардсону
- •Квадратурные формулы Гаусса, Чебышева
- •Метод Монте-Карло
- •4. Уравнения в частных производных
- •5. Численные методы линейной алгебры
- •Матрицы и действия над ними
- •Клеточные матрицы
- •Разложение матрицы на произведение двух треугольных матриц
- •Итерационные методы
- •Метод Якоби
- •Метод Зейделя
- •Практикум по вычислительной математике Лабораторные работы для Mathcad 2001i Professional Лабораторная работа № 1 Обращение матриц
- •Лабораторная работа №2 Решение системы нелинейных уравнений
- •Лабораторная работа №3 Построение уравнений регрессии
- •Лабораторная работа № 4 Разложение функций в ряд Фурье пополиномам Лежандра
- •Лабораторная работа № 5 Решение дифференциального уравнения второго порядка
- •Лабораторная работа № 6 «Аппроксимации»
- •Лабораторная работа № 7 Решение слау с помощью lu разложения
- •Лабораторная работа № 11 Метод прогонки
- •Синтаксис среды Maple
- •Данные множественного типа
- •Решение дифференциальных уравнений в среде Maple Примеры решения уравнений встроенными функциями
- •Примеры численного решения оду
- •Лабораторная работа №1 Решение оду различными методами
- •Задания для самостоятельного решения
- •Лабораторная работа № 2 Интерполяция функции полиномами Лежандра
- •Лабораторная работа № 3 Метод наименьших квадратов
- •Лабораторная работа № 4 Применение системы Maple в сопротивлении материалов
- •Эпюра q
- •Эпюра q
- •Эпюра q
- •Эпюра q Лабораторная работа № 5 Решение системы методом прогонки
- •Библиографический список
Решение дифференциальных уравнений в среде Maple Примеры решения уравнений встроенными функциями
1. Решить
дифференциальное уравнение
.
Примечание 1. Производная в Maple задаётся функцией diff.
Синтаксис:
diff(<от чего производная>,<по какой переменной>)
diff(y(x),x) – первая производная по x от функции y, зависящей от x;
diff(y(x),x$n) – n-ая производная по x от функции y, зависящей от x.
Например:
> diff(sin(x),x);
> diff(sin(x),x$3);
Diff – инертная форма функции производной.
Например:
> Diff(tan(x),x)=diff(tan(x),x);
Для решения обыкновенных дифференциальных уравнений (ОДУ) и систем ОДУ, зависящих от одной переменной, используется функция dsolve.
Синтаксис:
dsolve(<уравнение или система>,<по какой функции или функциям получить решение>)
dsolve({<уравнение или система>[,<условие1>,<условие2>,…]},<по какой функции или функциям получить решение>)
Решение:
> dsolve(diff(y(x),x$2)-4*diff(y(x),x)+13*y(x)=0,y(x));
2. Решить задачу
Коши
,
если:
.
Примечание 2.
В обозначении
граничных условий с производными
используется дифференциальный оператор
D
(используется только с большой буквы)
D(f)(0)
– обозначает значение производной от
функции f в нуле. Например, если f зависит
от x, то это будет обозначать следующее:
.
В функции dsolve уравнение и граничные условия записываются в виде списка или множества (описание см. Синтаксис среды Maple).
Решение.
>dsolve([diff(y(x),x$2)+2*diff(y(x),x)+5*y(x),y(0)=2,D(y)(0)=6],y(x));
3. Решить систему
ОДУ
Примечание 3.
Все уравнения системы и условия записываются в общем одномерном списке или множестве. Набор функций, по которым производится интегрирование системы, также записывается в виде списка или множества.
Для начала необходимо выбрать переменную, от которой зависят x и у. Она не должна иметь имя уже объявленного оператора, константы, функции или переменной, иначе это приведет к ошибке. Каким образом отменить определение пользовательской переменной описано выше (см. Синтаксис среды Maple). В нашем случае переменная t.
Решение.
>dsolve({diff(x(t),t)=2*x(t)+3*y(t),diff(y(t),t)=5*x(t)+4*y(t)},{x(t),y(t)});
4. Решить систему
ОДУ
,
при
,
.
Решение.
>dsolve({diff(x(t),t)=2*x(t)+3*y(t),diff(y(t),t)=5*x(t)+4*y(t),x(0)=15,D(y)(0)=20},{x(t),y(t)});
Примечание 4. Для получения конечного результата с действительными числами используется функция evalf.
Синтаксис:
evalf(<выражение>)
evalf[n](<выражение>) или evalf(<выражение>,n)
В первом примере функция evalf преобразует все выражения к виду с действительными числами с количеством значащих цифр, определяемым в системной переменной Digits. Во втором случае используется количество цифр, определенное пользователем (n).
Изменить системную переменную Digits можно обычным присваиванием ей целочисленного значения. В результате все операции с плавающей точкой будут использовать именно такое количество значащих цифр.
Для рассматриваемого примера:
>evalf(%);
Дифференциальные уравнения можно записывать и с помощью оператора D. Для перехода между формами записи дифференциальных уравнений используется функция convert с параметром D или diff. Рассмотрим пример программы с использованием различных форм записи.
> restart;
> a1:=diff(y(x),x$2)+13*diff(y(x),x)+10=0;
convert(%, D);
> a2:=(D@@2)(y)(x)+13*D(y)(x)+10;
convert(%, diff);
> dsolve(a2,y(x));
dsolve(a1,y(x));
Сначала производим отмену всех определений. Затем переменной а1 присваиваем значение дифференциального уравнения с использованием diff и преобразуем его к виду с использованием оператора D. После этого для сравнения переменной a2 присваиваем значение дифференциального уравнения записанного с использованием оператора D и преобразуем к виду с diff. Затем решаем поочередно оба уравнения. Результаты совпадают, следовательно, обе формы записи аналогичны.
Выражение
с помощью diff
можно записать так: diff(y(x),x$n).
Здесь используется оператор перечисления
$. Это выражение аналогично записи, где
переменная x записана через запятую n
раз. Аналогия с помощью оператора D
выглядит следующим образом: (D@@n)(y)(x).
В данном случае применяется оператор
вложенности @@, т. е. сначала берется
производная, а затем от нее еще производная
и так n раз.