Progress-servis55.ru

Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

Для решения систем ОДУ в MatLAB реализованы различные методы. Их реализации названы решателями ОДУ. Решатели реализуют следующие методы решения систем дифференциальных уравнений:

  • ode45 – одношаговые явные методы Рунге-Кутта 4-го и 5-го порядка. Это классический метод, рекомендуемый для начальной пробы решения. Во многих случаях он дает хорошие результаты;
  • ode23 – одношаговые явные методы Рунге-Кутта 2-го и 4-го порядка. При умеренной жесткости системы ОДУ и низких требованиях к точности этот метод может дать выигрыш в скорости решения;
  • ode133 – многошаговый метод Адамса-Башворта-Мултона переменного порядка. Это адаптивный метод, который может обеспечить высокую точность решения;
  • ode15s – многошаговый метод переменного порядка (от 1-го до 5-го, по умолчанию 5), использующий формулы численного дифференцирования. Это адаптивный метод, его стоит применять, если решатель ode45 не обеспечивает решения;
  • ode23s – одношаговый метод, использующий модифицированную формулу Розенброка 2-го порядка. Может обеспечить высокую скорость вычислений при низкой точности;
  • ode23t – метод трапеций с интерполяцией. Этот метод дает хорошие результаты при решении задач, описывающих осцилляторы с почти гармоническим выходным сигналом;
  • ode23tb – неявный метод Рунге-Кутта в начале решения и метод, использующий формулы обратного дифференцирования 2-го порядка в последующем. При низкой точности этот метод может оказаться более эффективным, чем ode15s.
  • Все решатели могут решать системы уравнений явного вида

    y’ = F(t, y). Решатели ode15s, ode23s, ode23t, ode23tb могут решать уравнения неявного вида My’ = F(t, y).

    В описанных далее функциях для решения систем дифференциальных уравнений приняты следующие обозначения и правила:

    • F – название ODE-файла, то есть функции от t и y, которая возвращает вектор-столбец;
    • tspan – вектор, определяющий интервал интегрирования [to tfinal]. Для получения решений в конкретные моменты времени to, t1, …, tfinal (расположенные в порядке уменьшения или увеличения), нужно использовать tspan = [t0 t1 … tfinal];
    • y0 –вектор начальных условий;
    • options – аргумент, создаваемый функцией odeset;
    • p1, p2, … — произвольные параметры, передаваемые в функцию F;
    • T, Y – матрица решений Y, где каждая строка соответствует времени, возвращенном в векторе-столбце T.
    Читать еще:  Size matlab функция

    Перейдем к описанию функций для решения систем дифференциальных уравнений (будем обозначать понятием solver один из возможных численных методов решения ОДУ: ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb):

    • [T, Y] = solver(‘F’, tspan, y0) интегрирует систему дифференциальных уравнений вида y’ = F(t, y) на интервале tspan с начальными условиями y0. ‘F’ – строка, содержащая имя ODE-файла. Функция F(t, y) должна возвращать вектор-столбец. Каждая строка в массиве решений Y соответствует времени, возвращаемом в векторе-столбце T.
    • [T, Y] = solver(‘F’, tspan, y0, options) дает решение, подобное описанному выше, но с параметрами, определяемыми значениями аргумента options, созданного функцией odeset. Обычно используемые параметры включают допустимое значение относительной погрешности RelTol (по умолчанию 1е-3) и вектор допустимых значений абсолютной погрешности AbsTol (все компоненты по умолчанию равны 1е-6);
    • [T, Y] = solver(‘F’, tspan, y0, options, p1, p2, …) дает решение, подобное описанному выше, передавая дополнительные параметры р1, р2, … в m-файл F всякий раз, когда он вызывается. Используйте options = [], если никакие опции не задаются;
    • [T, Y, TE, YE, IE] = solver(‘F’, tspan, y0, options) в дополнение к описанному решению содержит свойства Events, установленные в структуре options в положение ‘on’. ODE-файл должен быть создан так, чтобы вызов F(t, y, ‘events’) возвращал соответствующую информацию. Выходной аргумент ТЕ – вектор-столбец времен, в которые происходят события, строки YE являются соответствующими решениями, а индексы в векторе IE определяют, какое событие произошло.
    • [T, X, Y] = solver(‘model’, tspan, y0, options, ut, p1, p2, …) использует модель Simulink, вызывая соответствующий решатель из нее: [T, X, Y] = sim(solver, ‘model’, …).

    Решатель систем ОДУ дает возможность получать решения систем из n уравнений. Система ОДУ может быть как однородной, так и неоднородной. Решение сводится к следующему:

      Создание m-файла. Независимо от вида системы он имеет вид:
    Читать еще:  Matlab два графика в одном окне

  • Получение решения и сопровождающий его график:
  • Иллюстрированный самоучитель по MatLab

    Решение обыкновенных дифференциальных уравнений. Решатели ОДУ.

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

    С граничными условиями y(t t end , p) = b, где t end , t – начальные и конечные точки интервалов. Параметр t не обязательно означает время, хотя чаще всего решение дифференциальных уравнений ищется во временной области. Вектор b задает начальные и конечные условия.

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

    Решатели ОДУ

    Для решения систем ОДУ в MATLAB реализованы различные методы. Их реализации названы решателями ОДУ.

    Примечание
    В этом разделе обобщенное название solver (решатель) означает один из возможных численных методов решения ОДУ: ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb, bvp4c или pdepe
    .

    Решатели реализуют следующие методы решения систем дифференциальных уравнений, причем для решения жестких систем уравнений рекомендуется использовать только специальные решатели ode 15s, ode23s, ode23t .ode23tb:

    • ode45 – одношаговые явные методы Рунге-Кутта 4-го и 5-го порядка. Это классический метод, рекомендуемый для начальной пробы решения. Во многих случаях он дает хорошие результаты;
    • ode23 – одношаговые явные методы Рунге-Кутта 2-го и 4-го порядка. При умеренной жесткости системы ОДУ и низких требованиях к точности этот мето;. может дать выигрыш в скорости решения;
    • ode113 – многошаговый метод Адамса-Башворта-Мултона переменного порядка Это адаптивный метод, который может обеспечить высокую точность решения
    • ode23tb – неявный метод Рунге-Кутта в начале решения и метод, использующий формулы обратного дифференцирования 2-го порядка в последующем
    Читать еще:  Matlab степень числа

    Несмотря на сравнительно низкую точность, этот метод может оказаться более эффективным, чем ode15s;

    • ode15s – многошаговый метод переменного порядка (от 1 до 5, по умолчанию 5), использующий формулы численного дифференцирования. Это адаптивный метод, его стоит применять, если решатель ode45 не обеспечивает решения;
    • ode23s – одношаговый метод, использующий модифицированную формулу Розенброка 2-го порядка. Может обеспечить высокую скорость вычислений при низкой точности решения жесткой системы дифференциальных уравнений;
    • ode23t – метод трапеций с интерполяцией. Этот метод дает хорошие результаты при решении задач, описывающих колебательные системы с почти гармоническим выходным сигналом;
    • bvp4c служит для проблемы граничных значений систем дифференциальных уравнений вида y ‘== f(t,y), F(y(a), y(b), p) = 0 (краевая задача);
    • pdepe нужен для решения систем параболических и эллиптических дифференциальных уравнений в частных производных, введен в ядро системы для поддержки новых графических функций Open GL, пакет расширения Partial Differential Equations Toolbox содержит более мощные средства.

    Все решатели могут решать системы уравнений явного вида у’ = F(£, y). Решатели ode15s и ode23t способны найти корни дифференциально-алгебраических уравнений M(t)y’ = F(t, у>, где М называется матрицей массы. Решатели ode!5s, ode23s, ode23t и ode23tb могут решать уравнения неявного вида M(t,y) у’ = F(t, у). И наконец, все решатели, за исключением ode23s, который требует постоянства матрицы массы, и bvp4c, могут находить корни матричного уравнения вида M(t, у) у’ – F(t, у) .ode23tb, ode23s служат для решения жестких дифференциальных уравнений .ode15s – жестких дифференциальных и дифференциально-алгебраических уравнений, ode23t – умеренно жестких дифференциальных и дифференциально-алгебраических уравнений.

    Ссылка на основную публикацию
    Adblock
    detector