Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Решение систем дифференциальных уравнений.






    Для решения дифференциальных уравнений Mathcad имеет ряд встроенных функций, в частности, функцию rkfixed, реализующую метод Рунге–Кутты четвертого порядка с фиксированным шагом. Фактически эта функция предназначена для решения систем дифференциальных уравнений первого порядка.

     

    Функция rkfixed(y, x1, x2, npoints, D) возвращает матрицу. Первый столбец этой матрицы содержит точки, в которых получено решение, а остальные столбцы – решения и его первые производные.

    Аргументы функции:

    · y – вектор начальных значений (n элементов).

    · x1 и x2 – границы интервала, на котором ищется решение дифференциального уравнения.

    · npoints – число точек внутри интервала (x1, x2), в которых ищется решение. Функция rkfixed возвращает матрицу, состоящую из 1+npoints строк.

    · D – вектор, состоящий из n элементов, который содержит первые производные искомой функции.

    В качестве примера рассмотрим решение системы Вольтерры–Лотки. Эта система описывает динамику численности хищников и жертв на замкнутом ареале и является одной из базовых моделей экологии.

     

    Для решения систем дифференциальных уравнений используются функция rkfixed.

    Внимание! В этом примере установлено значение ORIGIN=1, то есть нумерация элементов массива начинается с 1, а не с 0, как это принято в Mathcad 'е по умолчанию.

    Пусть в начальный момент времени число хищников и число жертв

    Задаем вектор начальных значений

    параметры системы

    интервал времени и количество точек, в которых будет вычислено решение

    и вектор правых частей системы. (Поскольку исходная система не зависит явно от времени t, функция D так же не зависит от времени явно хотя и содержит его в числе своих аргументов.)

    Решаем систему с помощью встроенной функции

    Представим на графике результаты расчета – зависимость численности популяций от времени

    и зависимость числа жертв от числа хищников

    Можно использовать обозначения или – это одно и то же.

    Поскольку дифференциальное уравнение порядка выше первого может быть преобразовано к системе дифференциальных уравнений первого порядка, функция rkfixed может быть использована и для решения дифференциальных уравнений

    5.1.3. Решение дифференциальных уравнений методом Рунге–Кутты

    Решим еще раз задачу Коши для дифференциального уравнения первого порядка методом Рунге–Кутты.

    Зададим границы изменения x:

    Зададим число точек внутри интервала

    Зададим начальные условия

    Обратите внимание на обозначения! Поскольку мы решаем только одно дифференциальное уравнение первого порядка, а не систему дифференциальных уравнений, матрица y содержит только один элемент, однако запись y=1 была бы неправильной. Необходимо явно указывать на то, что величина y – матрица, то есть писать индекс.

    Определим теперь матрицу производных. Эта матрица тоже состоит только из одного элемента. Этот элемент с точностью до обозначений совпадает с правой частью исходного дифференциального уравнения:

    Решаем дифференциальное уравнение

    Точное аналитическое решение и решение, полученное численно отличаются в точке на

    Относительная ошибка составляет






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.