Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие (MathCad).doc
Скачиваний:
97
Добавлен:
27.11.2019
Размер:
3.98 Mб
Скачать

2.4.7. Реализация итерационных вычислений

Иногда приходится решать уравнения специального вида. Например, заданные с помощью рекуррентных соотношений, при которых значение некоторой функции находится по одному или нескольким предшествующим значениям этой функции. Этот процесс может продолжаться заданное число раз или повторяться многократно до тех пор, пока результаты двух последних итераций не совпадут в пределах заданной погрешности.

Классическим примером рекуррентных вычислений является расчет чисел Фибоначчи. Как известно, два первых числа Фибоначчи определены как единицы, а каждое из последующих есть сумма двух предыдущих.

Пример 2.24. Построить вектор-строку из 10 первых чисел Фибоначчи. Решение задачи в среде Mathcad представлено ниже:

Обратите внимание на запись в конце второй строки решения рекуррентного уравнения для чисел Фибоначчи.

2.5. Решение дифференциальных уравнений()

Решение дифференциальных уравнений обычно не рассматривается в курсах математики для большинства гуманитарных специальностей. Однако мы все же рассмотрим его, поскольку наш подход (применение СКМ) резко упрощает практическую реализацию такого решения.

2.5.1. Основные понятия о дифференциальных уравнениях()

Многие серьезные физические и научно-технические задачи (особенно относящиеся к анализу динамических систем и к их математическому моделированию) базируются на решении систем дифференциальных уравнений (ДУ).

Вначале рассмотрим одно дифференциальное уравнение dy/dx=f(x,y) или y’= f(x,y). Характер его решения в виде зависимости y(x) зависит от функции f(x,y). Если заменить бесконечно малые dy и dx на малые, но конечные, приращения x и y, то можно свести дифференциальное уравнение к приближенному конечно-разностному уравнениюy/x = f(x,y). Если известно начальное значение x0 и соответствующее значение y0=y(x0), то можно вычислить приращение y = f(x,y)x и затем найти y1 = y0 + y.

Продолжая действовать таким образом, мы можем найти для ряда значений xi значения yi, т.е. решить дифференциальное уравнение численным методом и получить таблицу значений xi и yi. Этот простейший метод получил название метода Эйлера. Существуют гораздо более совершенные методы решения дифференциальных уравнений, например методы Рунге-Кутта, прогноза и коррекции и др. Конечно-разностные методы также завоевали свое место, например, для наглядного решения уравнений математической физики (см. Главу 4).

Дифференциальные уравнения могут быть линейными и нелинейными. Линейные дифференциальные уравнения имеют аналитические решения, но получение их под силу лишь опытным математикам. Здесь ценными оказываются СКМ, имеющие средства для аналитического решения дифференциальных уравнений. Это именно тот «запретный плод», который оказывается в руках не слишком озабоченных математикой пользователей ПК, в том числе гуманитариев. А запретный плод, как известно, самый сладкий.

Нелинейные ДУ и системы с такими уравнениями, как правило, не имеют аналитических методов решения, и здесь особенно важна возможность их решения численными методами. В большинстве случаев желательно представление решений в графическом виде. Эти возможности и предоставляют многие СКМ, например Derive, Mathematica и Maple. К сожалению, возможности Mathcad в аналитическом решении ДУ гораздо меньше, чем у указанных СКМ. И такие методы мы не рассматриваем.

Системы из обыкновенных дифференциальных уравнений (ОДУ) для их численного решения в среде Mathcad должны быть представлены в форме Коши с указанием начальных условий:

.

Здесь первая система задает начальные условия, а вторая представляет систему ОДУ. Нетрудно заметить, что эти системы можно представить в векторном виде:

.

Отсюда следует важный вывод — решение системы ОДУ в форме Коши осуществляется аналогично решению одиночного ДУ, но должно быть организовано в векторной форме. При этом добавление очередного уравнения не увеличивает числа уравнений в векторной их записи.

Дифференциальные уравнения n-го порядка:

y(n) = f(x,y,y',y'', …,y(n–1)),

где y(x0) = y0.0 , y'(x0) = y0,1 y''(x0) = y0,2,…, y(n–1)(x0)  =  y0,n–1, можно свести к системе ДУ первого порядка. Для этого введем следующие обозначения:

y1(x) = y(x), y2(x) = y'(x), … , yn(x) = y(n–1)(x),

y0,0 = y(x0), y0,1 =  y'(x0), … , y0,n–1 = y(n–1)(x0).

Теперь можно записать:

.

В таком виде ДУ n-го порядка может решаться стандартными средствами численного решения систем ОДУ, входящими в систему Mathcad.