2\usepackage[utf8x]{inputenc}
3\usepackage[english,russian]{babel}
7\lstdefinelanguage[guile]{Scheme}
8 {morekeywords={define,let,map,lambda,if,cond,or,and,else},
11\lstset{mathescape=true}
12\lstset{language=[guile]Scheme}
13%\lstset{numbers=left,stepnumber=10,numberblanklines=false}
14\lstset{basicstyle=\footnotesize}
15\lstset{frame=tb,frameround=ffff}
16\lstset{breaklines=true,breakautoindent=true}
18\newcommand{\filename}[1]{\texttt{#1}}
19\newcommand{\procname}[1]{\texttt{#1}}
20\newcommand{\includeplot}[2]{\begin{figure}[hb]
22 \includegraphics{#1__#2-plot.mps}
23 \caption{График $u(x)$ для функции преломления \eqref{#2-initial-data}}
25\renewcommand{\epsilon}{\varepsilon}
26\renewcommand{\phi}{\varphi}
27\providecommand{\abs}[1]{\left \lvert{#1}\right \rvert}
28\providecommand{\op}[1]{\mathrm{#1}}
29\providecommand{\comp}{\circ}
31\usepackage{amsmath,amssymb}
35\DeclareGraphicsExtensions{.mps,.pdf,.eps}
36\DeclareGraphicsRule{.scm-plot.mps}{mps}{*}{}
37\DeclareGraphicsRule{.scm-all-plots.mps}{mps}{*}{}
39\numberwithin{equation}{section}
44\title{Курсовая работа по теме\\ «Обыкновенные дифференциальные уравнения»}
52\part{Постановка задачи}
54\section{Математический аспект}
56Настоящая курсовая работа посвящена построению приближённого решения
57краевой задачи для дифференциального уравнения вида
59\begin{equation}\label{deq}
60 \frac{d^2 u}{dx^2} + n(x) u(x) = 0
63По условию, $n(x)$ представляет собой кусочно-непрерывную функцию,
64равную константе $k^2$ на интервалах $(-\infty; 0)$ и $(a; +\infty)$ и
65непрерывной известной функции на $[0; a]$. На границах $[0; a]$
66решение и его первая производная должны удовлетворять условиям
69\begin{subequations}\label{conds}
72 u'(0-0)& = u'(0+0)&\label{conds-left} \\
74 u'(a-0)& = u'(a+0)&\label{conds-right}
78\section{Физический аспект}
80Задача соответствует возбуждения плоского слоя неоднородной
81немагнитной среды электромагнитным полем, вектор электрического поля
82распространяется вдоль оси $x$. $k$ имеет смысл волнового числа в
83однородной части пространства, $n(x)$ — показатель преломления
86Из физических соображений, решение справа от слоя $[0; a]$ должно
87иметь вид $u(x) = Be^{ikx}$, а слева — $u(x) = e^{ikx} +
88Ae^{-ikx}$. Задача состоит в приближённом построении решения внутри
89неоднородного слоя и отыскании комплексных констант $A$ и $B$
90(называемых, соответственно, коэффициентами отражения и прохождения
91электромагнитного поля).
93Действительная область значений функции $n(x)$ соответствует
94отсутствию поглощения энергии в среде, так что критерием правильности
95полученных приближённых значений служит энергетическое тождество:
97\begin{equation}\label{energy}
98 \abs{A}^2 + \abs{B}^2 = 1
104\section{Общие замечания}
106Предлагаемые к реализации в курсовой работае приближённые методы были
107описаны на алгоритмическом языке Scheme (простом и строго
108функциональном диалекте Лиспа).
110\section{Решение методом построения фундаментальной матрицы}
114Дифференциальное уравнение второго порядка \eqref{deq} можно представить
115в матричной форме, введя $v(x) = \frac{du}{dx}$:
117\begin{equation}\label{mdeq}
133Решение системы \eqref{mdeq} с матрицей $A(x) = \bigl( \begin{smallmatrix} 0
134 & 1 \\ -n(x) & 0 \end{smallmatrix} \bigr)$ можно найти в общем виде, если
135построена фундаментальная матрица $\Omega(x)$:
137\begin{equation}\label{fm}
138\Omega(x) = \begin{pmatrix}
139 \omega_{11}(x) & \omega_{12}(x) \\
140 \omega_{21}(x) & \omega_{22}(x)
144$\Omega(x)$ является решением следующей матричной задачи Коши:
146\begin{equation}\label{fmeq}
147 \frac{d}{dx} \Omega(x) = A(x) \Omega(x)
150с условием $\Omega(0) = \bigl( \begin{smallmatrix} 1& 0\\ 0&
151 1\end{smallmatrix} \bigr)$.
153Решение \eqref{mdeq} для $\forall x \in [0; a]$ записывается в виде
155\begin{equation}\label{fmsolution}
161 \omega_{11}(x) & \omega_{12}(x) \\
162 \omega_{21}(x) & \omega_{22}(x)
170Использование краевых условий \eqref{conds} позволяет получить
171следующую линейную алгебраическую систему относительно неизвестных $A$
174\begin{equation}\label{abeq}
176 (\omega_{11}(a) - \omega_{12}(a) ik) A - e^{ika} B &= -ik
177 \omega_{12}(a) - \omega_{11}(a) \\
178 (\omega_{21}(a) - \omega_{22}(a) ik) A - ike^{ika} B &= -ik
179 \omega_{22}(a) - \omega_{21}(a)
183Нахождение значений компонентов матрицы $\Omega$ на правом конце $[0;
184a]$, таким образом, позволит получить искомые значения $A$ и $B$.
186Для поиска фундаментальной матрицы в точках $[0; a]$ предлагается
187использование следующего численного метода, основанного на приближении
188функции $n(x)$ кусочно-постоянной, то есть замене неоднородной среды
189на плоско-слоистую с большим числом однородных слоёв.
191Рассматриваемый интервал разбивается на $N$ интервалов точками
192$x_i = \frac{a}{N}i$, $i = 1 \dotso N$, в середине каждого из
193которых берётся точка $\overline{x_i} = \frac{a}{N}(i+\frac{i}{2})$. В
194данной точке функция $n(x)$ аппроксимируется ступенчатой функцией
195$\overline{n}(x) = n(\overline{x_i})$, так что \eqref{mdeq} обращается
196в систему с постоянной матрицей $A_i = \bigl(
197\begin{smallmatrix}0& 1 \\ -\overline{n}(x)& 0 \end{smallmatrix}
198\bigr)$. Тогда на каждом интервале $[x_i; x_{i+1}]$ решение
199\eqref{fmeq} может быть найдено явно в виде матричной экпоненты:
202\Omega_i(x) = e^{A_i (x - x_i)}
205При этом, значения фундаментальной матрицы $\Omega_N(x_{i+1})$ на
206правом конце $[x_i; x_{i+1}]$ служат начальным условием задачи Коши на
207$[x_{i+1}; x_{i+2}]$, так что для каждой точки $\hat{x} \in [x_i;
208x_{i+1}]$ фундаментальная матрица \eqref{fm} имеет вид:
210\begin{equation}\label{fmx}
211 \Omega_N(\hat{x}) = e^{A_i(\hat{x}-x_i)} e^{A_{i-1}(x_i-x_{i-1})} \dotsm e^{A_0(x_1-x_0)}
214На правом конце интервала $[0; a]$ приближённая фундаментальная
215матрица записывается в виде:
217\begin{equation}\label{fma}
218 \Omega_N(a) = e^{A_{N-1}(x_N-x_{N-1})} e^{A_{N-2}(x_{N-1}-x_{N-2})} \dotsm e^{A_0(x_1-x_0)}
221Для нахождения матричной экспоненты используется формула Тейлора:
223\begin{equation}\label{matrix-exp}
225 e^{A_i(x-x_i)} \approx E +& \frac{1}{1!}{A_i(x-x_i)} +
226 \frac{1}{2!}{A_i^2(x-x_i)^2}\\
227 +& \frac{1}{3!}{A_i^3(x-x_i)^3} + \frac{1}{4!}{A_i^4(x-x_i)^4}
231После построения фундаментальной матрицы в $a$ коэффициенты $A$ и $B$
232находятся из \eqref{abeq} с использованием полученных компонент
235Решение на каждом отрезке разбиения $[0; a]$ находится из
236\eqref{fmsolution} с использование найденного $A$ и последовательности
237приближений фундаментальной матрицы на $[x_i; x_{i+1}]$ для $\forall
241\subsection{Реализация}
243Описание основных процедур, необходимых для реализации метода,
244находится в файле \filename{fundmatrix-solution.scm} (его полное содержание
245приведено на странице \pageref{fundmatrix-solution.scm-full-listing}).
247В исходном тексте программы активно используются последовательные
248определения функций в терминах друг друга.
250Так, основной вычислительный процесс метода — построение приближений
251фундаментальной матрицы — выражен в функции
252\procname{build-fundamentals}:
254\input{build-fundamentals__fundmatrix-solution.scm-tag-listing}
256\procname{build-fundamentals} представляет последовательность вычислений
257фундаментальной матрицы на интервалах $[x_i; x_{i+1}]$ в виде частного
258случая функции \procname{evolve-sequence}, возвращающей
259последовательность $a_{s_1}, \dotsc, a_{s_n}$, где $a_{s_k} =
260f(a_{s_{k-1}}, s_{k-1})$
261(см. с. \pageref{shared.scm-full-listing}). Из определения
262\procname{build-fundamentals} видно, что роль $s_k$ выполняют точки $x_i
263= \frac{a}{N}i$ с $i = 1 \dotso N$, а $a_{s_{k-1}}$ — приближение
264фундаментальной матрицы на предыдущем отрезке (на первом шаге
265$\Omega_N$ приближается единичной матрицей). Комбинируются же эти
266значения при помощи матричного умножения, как следует из \eqref{fmx}.
268Функция \procname{variable-matrix} возвращает матрицу $A$ системы
269\eqref{mdeq} для заданной по условию функции $n(x)$:
271\input{variable-matrix__fundmatrix-solution.scm-tag-listing}
273Возвращённая матрица потом используется в \procname{build-fundamentals}.
275В \procname{build-fundamentals} используется и функция
276\procname{matrix-exp}, вычисляющая матричную
277экспоненту $f(x, y, z) = e^{A(x)(y-z)}$ путём разложения в ряд Тейлора
278\eqref{matrix-exp} с использованием схемы Горнера:
280\input{matrix-exp__matrices.scm-tag-listing}
282В этой функции последовательность коэффициентов матричного многочлена
283$\frac{1}{0!}, \frac{1}{1!}, \frac{1}{2!}, \dotsc$ генерируется
284функцией \procname{exp-series-coefficients},
285выраженной в терминах вышеупомянутой \procname{evolve-sequence}.
287Вычисление матричной экспоненты в каждой точке выражено через
288функцию высшего порядка \procname{general-horner-eval}, представляющую
289собой обобщённую схему Горнера:
291\input{general-horner-eval__shared.scm-tag-listing}
293\procname{general-horner-eval}, в свою очередь, является частным случаем
294функции высшего порядка \procname{fold-right}, реализующей свёртку
295последовательности справа налево.
297После построения последовательности фундаментальных матриц
298осуществляется поиск коэффициентов $A, B$ путём решения системы
299\eqref{abeq} с помощью метода Гаусса\nocite{bahvalov01} (его исходный код приведён на
300странице \pageref{gauss.scm-full-listing}):
302\input{find-A-B__fundmatrix-solution.scm-tag-listing}
304С использованием найденного коэффициента $A$ и приближений из
305\procname{build-fundamentals} в функции
306\procname{approximate-solution} согласно \eqref{fmsolution}
307рассчитывается и приближённое решение исходного уравнения \eqref{deq}
308внутри неоднородного слоя:
310\input{approximate-solution__fundmatrix-solution.scm-tag-listing}
312Функция высшего порядка \procname{iterative-improve} выражает один из
313подходов к решению вычислительных задач: улучшать начальное решение
314при помощи заданной «функции улучшения» до тех пор, пока его не можно
315будет считать «хорошим» в смысле заданной функции оценки решения:
317\input{iterative-improve__shared.scm-tag-listing}
319Так, в данном методе процедура построения фундаментальных матриц
320повторяется до тех пор, пока вычисляемые коэффициенты отражения и
321прохождения не будут удовлетворять \eqref{energy}:
323\input{get-solution__fundmatrix-solution.scm-tag-listing}
325Интересно, что второй метод решения поставленной задачи, о котором
326рассказано далее, также определяет сходную функцию
327\procname{make-solution} в виде частного случая
328\procname{iterative-improve}.
330Функцией улучшения является двукратное увеличение числа отрезков
331разбиения интервала $[0;a]$ с последующим построением фундаментальных
332матриц, решения и нахождения $A$, $B$, а проверка «качества»
333полученного решения осуществляется при помощи предиката
334\procname{energy-conserves?}:
336\input{energy-conserves?__shared.scm-tag-listing}
340\subsection{Исходные данные}
341\input{statement.scm-initial-data}
343В терминах Scheme она задаётся следующим образом:
345\input{f__statement.scm-tag-listing}
347\subsection{Результаты}
349\input{fundmatrix__statement.scm-results}
351\includeplot{fundmatrix}{statement.scm}
355\subsubsection{Результат вычислений с альтернативным набором исходных данных}
357Метод построения фундаментальных матриц применим в задачах с более
358сложными выражениями для $n(x)$ (но требуется, чтобы $n(x)$ была
359непрерывной внутри $[0;a]$). Далее представлены результаты работы
360с иными, нежели в предыдущем разделе, данными.
362\input{exo-statement.scm-initial-data}
364\input{fundmatrix__exo-statement.scm-results}
366\includeplot{fundmatrix}{exo-statement.scm}
370\section{Решение методом последовательных приближений}
374Уравнение \eqref{deq} можно переписать в следующем виде:
376\begin{equation}\label{ndeq}
377\frac{d^2u}{dx^2} + k^2 u(x) = (k^2 - n(x)) u(x)
380Где $k^2$ — значение функции вне интервала $[0; a]$.
382Для такого уравнения известна функция Грина:
385G(x, t) = \frac{e^{ik\abs{x-t}}}{2ik}
388Так что решение \eqref{ndeq} выписывается в таком виде:
391u(x) = \int \limits_{-\infty}^{+\infty} {\frac{e^{ik\abs{x-t}}}{2ik} (k^2-n(t))
395В силу свойств функции $n(x)$, при $x < 0$ и $x > a$ имеем $(k^2 -
396n(x)) \equiv 0$, так что несобственный интеграл можно заменить на
397интеграл в конечных пределах от $0$ до $a$:
400u(x) = \int \limits_{0}^{a} {\frac{e^{ik\abs{x-t}}}{2ik} (k^2-n(t))
404Кроме того, если раскрыть модуль в показателе $e$ для $x<0$ и $x>a$,
405то станет ясно, что выписанное решение содержит волны, уходящие в
406$+\infty$ и $-\infty$. Так как постановка задачи содержит волну
407$e^{ikx}$, приходящую из минус бесконечности, полное поле во всей
408области от $-\infty$ до $+\infty$ имеет следующий вид:
410\begin{equation}\label{inteq}
411u(x) = \int \limits_{0}^{a} {\frac{e^{ik\abs{x-t}}}{2ik} (k^2-n(t))
415Сокращённо это интегральное уравнение Фредгольма второго рода
416записывается в таком виде:
418\begin{equation}\label{inteq-short}
422Где $\op{A}$ — интегральный оператор $\int_{0}^{a}
423{\frac{e^{ik\abs{x-t}}}{2ik} (k^2-n(t)) u(t) dt}$, который действует на
426При $x < 0$ решение имеет вид:
429u(x) = \frac{e^{-ikx}}{2ik} \int \limits_{0}^{a} {e^{ikt} (k^2-n(t))
433Откуда можно получить выражение для коэффициента $A$:
435\begin{equation}\label{int-A}
436 A = \frac{1}{2ik} \int \limits_{0}^{a} {e^{ikt} (k^2-n(t)) u(t) dt}
439Аналогично получается следующее выражение и для коэффициента $B$:
441\begin{equation}\label{int-B}
442 B = \frac{1}{2ik} \int \limits_{0}^{a} {e^{-ikt} (k^2-n(t)) u(t) dt} + 1
445Построение решения $u(x)$ производится при помощи метода
446последовательных приближений\nocite{polyanin03}. Решение
447\eqref{inteq-short} представим в таком виде:
450u = u_0 + u_1 + u_2 + \dotsb
453Его подстановка в \eqref{inteq-short} даёт следующее:
456 u_0 + u_1 + u_2 + \dotsb = \op{A}u_0 + \op{A}u_1 +
457 \op{A}u_2 + \dotsb + f
460Если положить $u_0=f, u_1=\op{A}u_0, \dotsc, u_{n+1}=\op{A} u_n$, то
461таким выбором последовательных приближений это уравнение будет
462тождественно удовлетворено.
464После нахождения $u(x)$ коэффициенты $A$ и $B$ вычисляются из
465\eqref{int-A} и \eqref{int-B}, соответственно.
468\subsection{Реализация}
470Для обеспечения работы программы с широким диапазоном исходных данных
471— различных функций $n(x)$ — интегрирование \eqref{inteq}
472осуществлялось \emph{численно} по формуле Симпсона.
474Подинтегральная функция зависит от двух переменных $x$, $t$, а
475интегрирование производится по $t$. Используемая функция
476\procname{integrate} возвращает $g(x) = \int_a^b{f(x, t) dt}$,
477применяя формулу Симпсона так:
479\begin{equation}\label{simpson}
481 \int \limits_a^b {f(x, t) dt} = \frac{h}{3}
482 (f(x, a) + 4 (f(x, t_1) + f(x, t_3) + \dotsb + f(x, t_{n-1})) + \\
483 + 2 (f(x, t_2) + f(x, t_4) + \dotsb + f(x, t_{n-2})) + f(x, b))
487Здесь $n = 2k, k \in \mathbb{Z},\ h = (b-a)/n,\ t_k = a+kh$.
489\procname{integrate} осуществляет интегрирование функции, переданной
490ей в качестве параметра, по второму её аргументу:
492\input{integrate__iterative-solution.scm-tag-listing}
494Функция \procname{integrate} выражает идею интегрирования функции двух
495переменных в общем виде. Для вычисления \eqref{inteq} требуется
496использовать приближение функции $u(x)$ и данную по условию функцию
497$n(x)$ в выражении $f(x,t) = e^{ik|x-t|}(k^2-n(t))u(t)$, которое и
498будет интегрироваться (постоянный множитель $1/2ik$ выносится из под
499интеграла). Требуемое сопоставление выполняет функция
500\procname{green-transform}:
502\input{green-transform__iterative-solution.scm-tag-listing}
504Причём эта функция представлена в виде частного случая более общей
505процедуры \procname{green-subtransform}, выполняющей преобразование
506своих трёх аргументов-функций $u(t), n(t), g(x, t)$ в функцию двух
507аргументов $f(x,t) = e^{ik \cdot g(x, t)}(k^2-n(t))u(t)$:
509\input{green-subtransform__iterative-solution.scm-tag-listing}
511Тогда при $g(x, t) \equiv \abs{x-t}$ получим подинтегральную функцию
512из \eqref{inteq}, а при $g(x, t) \equiv -t$ — из выражения для
513коэффициента $B$ \eqref{int-B}.
515Функция \procname{green-integrate}, используя описанные
516\procname{green-transform} и \procname{integrate}, выполняет
517интегрирование \eqref{inteq}, принимая функции $u(x), n(x)$ и правый
518край отрезка $a$ в качестве аргументов. В сущности,
519\procname{green-integrate} представляет в терминах Scheme оператор
520$\op{A}$ из \eqref{inteq-short}:
522\input{green-integrate__iterative-solution.scm-tag-listing}
524В этой функции также осуществляется деление результата интегрирования
527Стоит заметить, что процедура \procname{integrate} (и, следовательно,
528\procname{green-integrate}) возвращает не число, а
529\emph{функцию}. Вычисление значения этой функции в любой точке $x_0$
530порождает свёртку интервала $[0; a]$ в эту точку. Таким образом,
531последовательное применение \procname{green-integrate} порождает
532функцию, вычисление значения которой породит последовательность
533вложенных свёрток на интервале $[0; a]$.
535\subsubsection{Применимость метода}
538Сходимость ряда последовательных приближений $u = u_0 + \op{A} u_0 +
539\op{A}^2 u_0 \dotsb$ обеспечивается наличием константы $1/2ik$
540перед интегралом \eqref{inteq}, если данные $a, n(x), k$ таковы, что
541для $M=\max(k^2-n(x_0))$ выполняется:
543\begin{equation}\label{iter-converge-cond}
547В случаях, когда исходные данные не удовлетворяют этому условию, ряд
548приближений разойдётся и получить решение не удастся, в то время как
549при помощи фундаментальных матриц за приемлемое время решаются
550уравнения в системах, где \eqref{iter-converge-cond} не выполняется.
552Исходные данные (функция $n(x)$), предлагаемые к использованию в
553настоящей курсовой работе, специально подобраны таким образом, чтобы
554\eqref{iter-converge-cond} заведомо выполнялись.
556\subsubsection{Эффективность реализации}
558Высокий уровень применяемой абстракции и простота реализации метода
559негативным образом сказываются на эффективности: создаваемая
560последовательным действием \procname{green-integrate} композиция
561свёрток — функция, вычисление которой в каждой точке требует большого
564Сложность \procname{iterative-solve} по элементарным операциям
565\procname{integrate} экспоненциально растёт с увеличением числа
566применений оператора $\op{A}$ к начальному приближению.
568При $u_k(x) = \underbrace{\op{A} \comp \dotsb \comp \op{A}}_k\ \comp\ u_0(x)$ для
569вычисления значения $u_k(x_0)$ \emph{в любой точке} $x_0$ потребуется
570выполнение $m^k$ операций, где $m$ — постоянное число элементарных
571операций сложения, умножения в процедуре \procname{integrate},
572зависящее от количества разбиений для интегрирования функции на $[0;
575Учитывая построение \emph{последовательных} приближений, то есть
576последовательное вычисление $A \comp e^{ikx},\ A \comp A \comp
577e^{ikx},\ A \comp A \comp A \comp e^{ikx},\dotsc$, количество
578выполняемых операций таково, что описываемый подход к реализации
579метода очевидно не может реально применяться на практике в расчётных
580задачах в силу низкой эффективности.
582\subsubsection{Другие подходы к реализации метода}
584\paragraph{Символьное интегрирование}
586Интеграл \eqref{inteq} может быть вычислен по формуле
587Ньютона-Лейбница, если известна первообразная подинтегральной
588функции. Её поиск в явном виде составляет задачу символьного
589неопределённого интегрирования.
591Интегрирование элементарных функций и их простых сочетний является
592решаемой алгоритмически задачей, которая, однако, не является
593тривиальной (по причинам, в большей степени относящейся к общим
594сложностям представления алгебраических выражений на
595компьютере). Сложные выражения под знаком интеграла приводят к
596непростым заменам, преобразованиям и приёмам. Интеграл может и не
599Символьное интегрирование потенциально даёт значительно большие
600преимущества, чем численное, но сравнительно сложнее в
601реализации. Описанная же ранее численная реализация метода
602последовательных приближений представляет собой почти дословный
603перевод словесного описания в термины Лиспа.
605\paragraph{Использование готового выражения первообразной}
607Первообразная $e^{ik\abs{x-t}}(k^2-n(t))u(t)$ по $t$ может быть
608получена сторонними средствами — в другой программе или вручную (что
609является единственным универсальным и наиболее гибким методом
610интегрирования). По затратам на количество операций, выполняемых на
611стороне описываемой в настоящей работе программы, этот подход наиболее
612эффективен, поскольку сводит задачу нахождения интеграла к совсем
613элементарным операциям.
616\subsection{Результаты}
618Исходные данные к задаче приведены в разделе
619\ref{statement.scm-initial-data} на странице
620\pageref{statement.scm-initial-data}.
622\input{iterative__statement.scm-results}
624\includeplot{iterative}{statement.scm}
627\section{Решение методом коллокации}
629Рассмотрим данное по условию дифференциальное уравнение \eqref{deq}:
631\begin{equation}\label{inteq-eps}
632 \epsilon [u(x)] = u'' + n(x) u(x) = 0
635Будем искать его решение в виде
637\begin{equation}\label{colloc-approx}
638 U_n(x) = \phi_0(x) + \sum_{m=1}^n{C_m \phi_m(x)}
641Здесь $\phi_m(x)$ — система линейно независимых \emph{базисных}
642функций. Подставив \eqref{colloc-approx} в \eqref{inteq-eps}, получим
643невязку $\epsilon [U_n(x)]$:
646\epsilon[U_n(x)]=\left [\phi_0(x)+\sum_{m=1}^n{C_m \phi_m(x)} \right
648n(x){\left [\phi_0(x)+\sum_{m=1}^n{C_m \phi_m(x)} \right ]}
653\begin{equation}\label{colloc-eps}
654\epsilon[U_n(x)]=\psi_0(x)+\sum_{m=1}^n{C_m \psi_m(x)}
660\psi_0(x)& =\phi_0''(x) + n(x) \phi_0(x) \\
661\psi_m(x)& =\phi_m''(x) + n(x) \phi_m(x)
664Метод коллокации предполагает поиск значений $C_m$ таких, что
665\eqref{inteq-eps} обращается в 0 в заданной системе из $n$ \emph{точек
666 коллокации} $0 \leq x_1 < \dotsb < x_n \leq a$ принадлежащих
667рассматриваемому отрезку $[0;a]$:
670 \epsilon[U_n(x_j)] = 0,\qquad j = 1 \dotso n
673Используя \eqref{inteq-eps} получаем систему из $n$ линейных уравнений
674для определения значений $C_m$:
676\begin{equation}\label{colloc-system}
677 \sum_{m=1}^n{C_m\psi_m(x_j)} = -\psi_0(x_j),\qquad j = 1 \dotso n
680В случае совместности \eqref{colloc-system} найденные коэффициенты
681$C_m$ используются в выражении для приближённого решения
682\eqref{colloc-approx}.
684\subsubsection{О выборе системы базисных функций}
685В уравнении \eqref{colloc-eps} члены $\psi_0(x)$ и $\psi_m(x)$
686разделены не случайно: при выборе системы $\phi_k$ (а значит и
687$\psi_k$) требуется учитывать набор краевых условий \eqref{conds}.
689Метод коллокации требует от первой базисной функции $\phi_0(x)$
690удовлетворения набору неоднородных краевых условий \eqref{conds}, а от
691$\phi_m(x),\ m>0$ — удовлетворения соответствующим однородным краевым
694\subsection{Реализация}