Раздел: Документация
0 ... 116 117 118 119 120 121 122 ... 365 ы" ——ы + 2и = 21 — х3 j Последовательность действий при исследовании вырождающихся задач в целом схожа с решением рассмотренных выше классов граничных задач. Отличие состоит в том, что функция правой части системы должна вычислять только /(х, у), а матрица S передается солверу в качестве значения свойства Singula г Term управляющей структуры. Разберем решение вырождающихся граничных задач на модельном примере. Требуется найти решение уравнения 2 —I х на отрезке [0,2], удовлетворяющее граничным условиям: н(0) = 0, н(2) = -7. Легко убедиться, что точным решением является функция 1-х3. Преобразуйте исходную задачу к граничной задаче для системы уравнений первого порядка, введя новые функции V (jc) = и (х), у j (я ) = 0: л(2)+7-0; y2=-y2-2yi+2(l-x2); \у2{0) = 0. Запись системы уравнений в векторном виде позволяет получить матрицу S и вектор-функцию / (х, у): y=Sy + f(x,y), S = О Г/ О 2 L f(x,y) = Уг -2y,+2(l-x3) Полученная задача входит в класс вырождающихся граничных задач, которые могут быть решены при помощи солвера bvp4c. Действительно, матрица 5 обеспечивает выполнение условия S у (0) = 0, т. к. у2 (0) = 0. Запрограммируйте функцию rsbside для вычисления /(х, у) и функцию sbound граничных условий. Определите подходящее начальное приближение, например, постоянное у0 =[-7, 0], для которого Sy0 - 0. Задайте исходную сетку на отрезке [0, 2] из пяти равноотстоящих узлов и решите задачу с относительной точностью 10Л Сравните графически полученное решение с точным, так как это сделано на рис. 6.21. В случае возникновения затруднений воспользуйтесь листингом 6.34. Рис. 6.21. Сравнение приближенного решения вырождающейся граничной задачи с точным .......................................... Листинг 6.34. Файл-функция для решения вырождающейся граничной задачи (6.13) function SingularProblem S = [00; 02]; % Задание матрицу S у0 = [-7 0]; % Определение начального приближения meshinit = linspace(0, 2, 5); % Задание начальной сетки % Формирование структуры с начальным приближением solinit = bvpinit(meshinit, у0); 5Формирование управляющей структуры options = bvpset(1SingularTerm, S, "RelToi*, le-6] % Вызов солвера sol = bvp4c(@rsbside, ©sbound, solinit, options) % Построение графика первой компоненты решения plot(sol.х, sol.y(l,:), or); 6Добавление графика точного решения и легенды fun = inline!1 - х.л3); hold on fplot(fun, [0 2]) legend(приближенное решение, точное решение *) % % функция для вычисления f(х, у) function f = rsbside(x, у) f = [у(2) -2*у{1) + 2*(1 - х.Л3)]; % % функция граничных условий function g = sbound(ya, yb) g = tya(2) yb(l) + 7]; Задания для самостоятельной работы 1.Вычислите интеграл от функции cos(jc->/2)e2sinjc-l по промежутку между ее двумя соседними корнями, принадлежащими отрезку [0,4]. 2.Вычислите интеграл от функции sinx — x2 cosjc = 0 по промежутку между ее локальным максимумом и локальным минимумом, абсциссы которых принадлежат отрезку [-5, 0]. 3.Найдите корень уравнения / (г) = 0.1, если f(z) = ]xtg2xdx. о 4.Решите систему дифференциальных уравнений для ле [0,5]: у[(х) = у1(х-1)\\Sl(x) = sinx + 0.1; А{*) = ~Уг (* - 0-5)+Ух (х ~ 1); [S2 (х) = х-2 0 ... 116 117 118 119 120 121 122 ... 365
|