8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 115 116 117 118 119 120 121 ... 365

% построение графика первой компоненты найденной вектор-функции plotlsol.x, sol.yd,:), о)

%

* функция правой части системы дифференциальных уравнений (6.12]

function f = rsidepar(x, у, par)

f = [y(2); -2*par*y(2) - 2*рагЛ2*у(1)];

end

% функция граничных условий function f = boundpar(ya, yb, par)

f = [ya(ll; yb(l); ya(2) - 1]; end

% функция начального приближения

function f = yinit(x);

f = [sin(x); cos(x)];

end

end

В результате работы файл-функции получается Х = 0.99999361754175 (т.е. А = 1 с достаточной степенью точности) и функция м(л), представленная на рис. 6.20.

Рис. 6.20. Решение граничной задачи с параметром (6.12)


В нашей модельной задаче известно точное решение. Значениями X могут быть целые числа, а соответствующими функциями m(jc) являются

u (jc) - -е- sin Хх . К

Добавьте график функции u (х) = е~х sin jc , отвечающейк графику

приближенного решения и убедитесь, что оно вычислено верно. Найдите еще несколько значений X и соответствующих функций и (jc) , задавая в качестве стартового приближения к параметру числа, близкие к целым: 2.3, 3.2, 4.2, 5.1. Солвер возвращает хорошие приближения к точным (целым) значениям искомых параметров. Заметьте, что с увеличением значения параметра возрастает число смен знака соответствующей ему функции и (а)

на отрезке [0, я].

Обсудим теперь влияние начального приближения к вектор-функции. Например, исходный выбор yj(*) = sin.r, y2(x) = C0SJC не позволяет определить значение параметра даже для хорошего начального приближения 6.001 к точному значению 6 параметра X. Следовательно, необходимо каким-то образом выбрать другое начальное приближение к вектор-функции. Конечно, точное решение свидетельствует о том, что хорошим начальным приближением может служить (*) = sin 6х, y2(x) = 6cos6x Но если бы точное решение было неизвестно, то можно было бы воспользоваться нашим наблюдением об увеличении количества участков смены знака решения

и(л) при возрастании X. Модифицируйте функцию yinit и найдите решение для стартового значения 6.2 параметра X.

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

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

function t - rsidepar(x, у, par, pi, p2,—) res = boundpar(ya, yb, par, pi, p2,...) end


где par — вектор неизвестных параметров, а аргументы pi, р2,... являются заданными параметрами. Если неизвестных параметров нет, то заголовки функций граничных условий и правой части системы дифференциальных уравнений упрощаются:

function £ = rsidepartx, у, pi, р2,...) res = boundpar{ya, yb, pi, p2,.-.) end

При вызове солвера значения известных параметров pi, р2, ... следует указать в списке входных аргументов, начиная с пятой позиции после управляющей структуры.

» sol = bvp4c(odefun, bcfun, solinit, options, pi, p2...)

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

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

В следующем разделе приведен еще один класс задач — граничные задачи с вырождающимися коэффициентами — решение которых может быть получено при помощи солвера bvp4c.

Решение задачи с особенностью на границе

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

быть постоянной и удовлетворять необходимому условию существования непрерывного решения: Sy(0) = Q. Возможна и более общая постановка

граничной задачи, включающая неизвестные параметры, которые могут входить как в вектор-функцию /, так и в вектор-функцию граничных условий g.

b>0

с граничными условиями

матрица S должна



0 ... 115 116 117 118 119 120 121 ... 365