русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Интегрирование системы обыкновенных дифференциальных уравнений


Дата добавления: 2014-11-28; просмотров: 993; Нарушение авторских прав


Интегрирование системы обыкновенных дифференциальных уравнений осуществляется при помощи функций ode23 и ode45. Функция ode23 осуществляет интегрирование численным методом Рунге-Кутта 2-го порядка, а с помощью метода 3-го порядка контролирует относительные и абсолютные ошибки интегрирования на каждом шаге и изменяет величину шага интегрирования так, чтобы обеспечить заданные пределы ошибок интегрирования. При использовании функции ode45 интегрирование осуществляется методом Рунге-Кутта 4-го порядка, а величина шага контролируется методом 5-го порядка.

Система дифференциальных уравнений должна быть представлена в форме Коши:

(1.1)

где y – вектор переменных состояния системы, t – аргумент (обычно время), f– нелинейная вектор-функция от переменных состояния у и аргумента t.

Обращение к процедурам численного интегрирования имеет вид:

[t, y] = ode23(‘<имя функции>’, tspan, y0, options)

[t, y] = ode45(‘<имя функции>’, tspan, y0, options),

где <имя функции> - имя M-файла, являющегося функцией Matlab от t и y, в котором вычисляется вектор функция f(y,t), т.е. правые части системы дифференциальных уравнений; tspan – вектор задающий интервал интегрирования [t0 tfinal], t0 – начальное значение интервала, tfinal – конечное; yo – вектор начальных условий; options – строка параметров, определяющих значения допустимой относительной и абсолютной погрешности интегрирования. Этот параметр можно не указывать, если пользователя устаивают значения погрешностей, заданных по умолчанию, т.е. относительная погрешность интегрирования 1.0e-3, а абсолютная (по каждой из переменных состояния) – 1.0e-6. В противном случае, перед обращением к процедуре ode23 следует указать значения погрешностей при помощи процедуры odeset.

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



 

Рассмотрим пример:

Пусть задана система обыкновенных дифференциальных уравнений:

 
 

со следующими начальными условиями:

Для интегрирования данной системы уравнений необходимо создать М-файл, который является функцией переменных t и y. Для создания файла воспользуемся редактором MATLAB Editor/Debugger, который вызывается из основного меню File – New – M-File. Текст файла:

function dy=rigid(t,y)

dy=zeros(3,1);

dy(1)=y(2)*y(3);

dy(2)=-y(1)*y(3);

dy(3)=-0.51*y(1)*y(2);

Название файла и функции должны совпадать. Файл надо сохранить с названием rigid.

В этом примере абсолютная и относительная погрешность задается при помощи команды odeset, время интегрирования зададим в интервале от 0 до 12 [0 12], вектор начальных условий [0 1 1]. Для осуществления процедуры интегрирования в рабочем пространстве Matlab необходимо набрать:

» options=odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);

» [t,y]=ode45('rigid',[0 12],[0 1 1],options);

Чтобы просмотреть результаты в рабочем пространстве Matlab необходимо ввести в командной строке y. Графически результаты выводятся при помощи команды plot:

» plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.').



<== предыдущая лекция | следующая лекция ==>
АНАЛИЗ ВЛИЯНИЯ ПОЛЮСОВ И НУЛЕЙ ПЕРЕДАТОЧНОЙ ФУНКЦИИ НА ДИНАМИЧЕСКИЕ СВОЙСТВА СИСТЕМЫ | Исследование линейных стационарных систем


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.74 сек.