Неявный вид уравнения что это

Неявные функции

Неявные функции, определяемые одним уравнением.

Пусть функция \(F(x,y)\) определена в \(R^2\). Рассмотрим уравнение
$$
F(x,y)=0.\label
$$

Множество \(G_F\) точек плоскости, координаты которых удовлетворяют уравнению \eqref, было названо графиком уравнения. Через \(A_F\) будем обозначать проекцию графика \(G_F\) на ось \(x\). Будем рассматривать такие уравнения \eqref, графики которых не есть пустые множества.

Так, график уравнения \(x^2 + y^2 — 1 = 0\) есть окружность, график уравнения \((x-1)(x+y-1)=0\) есть пара прямых \(x = 1\) и \(x+y-1=0\) (рис. 28.1).

Рис. 28.1

Если график \(G_F\) уравнения \eqref взаимно однозначно проектируется на \(A_F\), то существует единственная функция \(f: \; A_F\rightarrow R\), график которой совпадает с графиком уравнения. Эта функция каждому \(x\in A_F\) ставит в соответствие тот единственный \(y\), для которого \(F(x,y)=0\). Говорят, что уравнение \eqref определяет \(y\) как неявную функцию \(x\).

Но, как правило, график уравнения \eqref не проектируется взаимно однозначно на \(A_F\). Тогда на \(A_F\) в общем случае определено бесконечное множество функций, графики которых совпадают с некоторым подмножеством графика \(G_F\) уравнения \eqref. Так, разбивая отрезок \([-1,1]\) точками \(x_0= -1 Рис. 28.2

Меняя местами переменные \(x\) и \(y\), можно говорить о том, что уравнение \eqref определяет в некотором прямоугольнике переменную \(x\) как неявную функцию переменной \(y\).

Докажем теорему, дающую достаточные условия существования, непрерывности и дифференцируемости неявной функции, определяемой уравнением \eqref в некотором прямоугольнике.

  1. функция \(F(x,y)\) имеет в окрестности точки \((x_0,y_0)\) непрерывные частные производные \(F_x(x,y)\) и \(F_y(x,y)\);
  2. \(F(x_0,y_0)=0\);
  3. \(F_y(x_0,y_0)\neq 0\).

Тогда существует прямоугольник
$$
K = \<(x,y): \; x_0-a\leq x\leq x_0+a, \; y_0-b\leq y\leq y_0+b\>,\nonumber
$$
в котором уравнение \(F(x,y) = 0\) определяет \(y\) как неявную функцию \(x\). Функция \(y=f(x)\) непрерывно дифференцируема на интервале \((x_0-a,x_0+a)\) и
$$
f'(x)=-\frac.\label
$$

\(\circ\) Разобьем доказательство на два пункта.

Доказательство существования неявной функции. Из условия \(F_y(x_0,y_0)\neq 0\) следует, что либо \(F_y(x_0,y_0) > 0\), либо \(F_y(x_0,y_0) 0.\label
$$
Если \(F_y(x_0,y_0) 0\).

Так как функция \(F_y(x,y)\) в точке \((x_0,y_0)\) непрерывна и в силу условия \eqref принимает в этой точке положительное значение, то найдется такой прямоугольник (рис. 28.3)
$$
K_1=\<(x,y): \; |x-x_0|\leq a_1, \; |y-y_0|\leq b\>,\nonumber
$$
в котором функция \(F_y(x,y) > 0\).

Рис. 28.3

Рассмотрим функцию одной переменной
$$
\psi (y)=F(x_0,y),\quad y_0-b\leq y\leq y_0+b.\nonumber
$$
Функция \(\psi (y)\) строго возрастает на отрезке \([y_0-b,y_0+b]\), так как
$$
\psi'(y)=F_y(x_0,y) > 0.\nonumber
$$
Кроме того, в силу условия \(F(x_0,y_0)=0\)
$$
\psi (y_0) = F(x_0,y_0) = 0.\nonumber
$$
Поэтому
$$
\psi (y_0-b)= F(x_0,y_0-b) 0.\label
$$
Неравенства \eqref в силу непрерывности функции \(F(x,y)\) должны сохраняться в некоторых окрестностях точек \((x_0,y_0-b)\) и \((x_0,y_0+b)\). Поэтому существует такое \(a\in (0,a_1)\), что для всех \(x\in [x_0-a,x_0+a]\) выполнены неравенства
$$
F(x,y_0-b) 0.\label
$$
Покажем, что в прямоугольнике
$$
K=\<(x,y): \; |x-x_0|\leq a, \; |y-y_0|\leq b\>,\nonumber
$$
уравнение \(F(x,y) = 0\) определяет \(y\) как неявную функцию \(x\).

Возьмем любую точку \(x^*\in [x_0-a,x_0+a]\) и рассмотрим непрерывную на отрезке \([y_0-b,y_0+b]\) функцию одной переменной \(\varphi (y)=F(x^*,y)\). В силу условия \eqref эта функция принимает на концах отрезка значения разных знаков:
$$
\varphi(y_0-b)= F(x^*,y_0-b) 0.\nonumber
$$
По теореме Коши о промежуточных значениях найдется такая точка \(y^*\in [y_0-b,y_0+b]\), что
$$
\varphi(y^*) = F(x^*,y^*)=0.\nonumber
$$

Так как \(\varphi'(y) = F_y(x^*,y) > 0\), то функция \(\varphi(y)\) строго возрастает на отрезке \([y_0-b,y_0+b]\) и не может обратиться на этом отрезке в нуль более одного раза.

Таким образом, для любого \(x\in [x_0-a,x_0+a]\) найдется единственный \(y\in [y_0-b,y_0+b]\) такой, что \(F(x,y) = 0\). Это означает, что в прямоугольнике \(K\) уравнение \(F(x,y) = 0\) определяет \(y\) как неявную функцию \(x\).

Доказательство непрерывной дифференцируемости неявной функции. Непрерывная на замкнутом прямоугольнике \(K\) функция \(F_y(x,y)\) по теореме Вейерштрасса принимает на этом прямоугольнике свое наименьшее значение \(\alpha\). Так как \(F_y(x,y) > 0\) на \(K\), то
$$
F_y(x,y)\geq a > 0,\qquad (x,y)\in K.\label
$$

Непрерывная на \(K\) функция \(F_x(x,y)\) ограничена на \(K\). Поэтому
$$
|F_x(x,y)| Замечание 1.

Если известно, что уравнение \(F(x,y)=0\) определяет в прямоугольнике \(a\leq x\leq b, \; c\leq y\leq d\) переменную \(y\) как неявную функцию \(x\), то связь между \(dy\) и \(dx\) можно установить, формально дифференцируя тождество \(F(x,y(x)) = 0\). Воспользовавшись инвариантностью формы дифференциала, получаем
$$
F_x(x,y)dx + F_y(x,y)dy = 0.\nonumber
$$
Дифференцируя последнее тождество еще раз, можем найти второй дифференциал \(d^2y\)
$$
F_ dx^2 + 2F_ dx dy + F_ dy^2 + F_y d^2y = 0.\nonumber
$$

Неявные функции, определяемые системой уравнений.

Рассмотрим систему \(m\) уравнений с \(n+m\) неизвестными
$$
\left\<\beginF_1(x_1,\ldots,x_n,x_,\ldots,x_)=0,\\…..\\F_m(x_1,\ldots,x_n,x_,\ldots,x_)=0\end\right.\label
$$

При формулировке общей теоремы о неявных функциях удобно пользоваться понятием декартова произведения множеств. Если \(A\) и \(B\) — произвольные множества, то их декартово произведение \(A\times B\) есть множество пар \((x,y)\), где \(x\in A\), \(y\in B\). Так, декартово произведение \([a,b]\times [c,d]\) есть множество пар вещественных чисел таких, что \(a\leq x\leq b,\) и \(c\leq y\leq d\), то есть прямоугольник в \(R^2\).

Клеточной окрестностью точки \(x^0 =(x_1^0,\ldots,x_n^0)\) будем называть следующее множество:
$$
K(x^0)=\\>,\nonumber
$$
где \(\varepsilon_i, \; i =\overline<1,n>\) — положительные числа, \(x = (x_1,…,x_n)\).

Легко видеть, что в том случае, когда \(K_1(x^0)\subset R^n\) и \(K_2(y^0)\subset R^m\) — клеточные окрестности, их декартово произведение \(K_1(x^0)\times K_2(y^0)\) есть клеточная окрестность точки \((x^0,y^0)=(x_1^0,…,x_n^0,y_1^0,…,y_m^0\) в пространстве \(R^\).

Для дальнейшего удобно преобразовать переменные, полагая \(x=(x_1,…,x_n), \; y=(y_1,…,y_m)\), где \(y_1=x_,…,y_m=x_\).

Тогда систему уравнений \eqref можно записать в более кратком виде:
$$
F_i(x,y) = 0, \; i=\overline<1,m>.\label
$$

Функции \(F_i(x,y) = 0\) будем считать определенными в некоторой клеточной окрестности точки \((x^0,y^0)\).

Пусть \(K(x^0)\subset R^n\) и \(Q(y_0)\subset R^m\) есть клеточные окрестности. Будем говорить, что система уравнений \(F_i(x,y)=0, \; i=\overline<1,m>\), определяет в \(K(x^0)\times Q(y_0)\) переменные \(y_1,…,y_m\) как неявные функции переменных \(x_1,…,x_n\), если для любого \(x\in K(x^0)\) найдется единственный \(y\in Q(y^0)\) такой, что \(F_i(x,y) = 0, \; i=\overline<1,m>\).

Пусть выполнены следующие условия:

Тогда найдутся клеточные окрестности \(K(x^0) \subset R^n\) и \(Q(y^0) \subset R^m\) такие, что в \(K(x^0)\times Q(y^0)\) система уравнений \eqref определяет переменные \(y_1,…,y_m\) как неявные функции переменных \(x_1,…,x_n\). Неявные функции \(y_j =\varphi_j(x)\) непрерывно дифференцируемы в \(K(x^0)\) и \(y_j^0=\varphi_j(x^0), \; j=\overline<1,m>\).

\(\circ\) Воспользуемся методом индукции по числу уравнений \(m\). При \(m=1\) доказательство теоремы 2 не отличается от доказательства теоремы 1 (в дальнейшем будем ссылаться на этот частный случай теоремы 2 как на теорему 1).

Предположим, что утверждение теоремы верно в том случае, когда система \eqref содержит \(m-1\) уравнение. Докажем, что тогда теорема верна и для системы \eqref из \(m\) уравнений.

Так как определитель \eqref отличен от нуля, то, раскладывая его по элементам последней строки, получаем, что хотя бы один из соответствующих миноров \(m-1\)-го порядка отличен от нуля. Пусть, например
$$
<\begin\displaystyle\frac<\partial F_1><\partial y_1>&…&\displaystyle\frac<\partial F_1><\partial y_>\\…&…&…\\\displaystyle\frac<\partial F_><\partial y_1>&…&\displaystyle\frac<\partial F_><\partial y_>\end>_<(x^0,y^0)>\neq0\nonumber
$$
(Здесь и в дальнейшем символ \(0\) означает, что значение соответствующей функции берется для аргументов с верхним индексом \(0\)).

Тогда в силу индукции найдутся такие клеточные окрестности
$$
\beginK_1=\displaystyle\left\<(x,y_m): \; \vert x_i-x_i^0\vert\leq\varepsilon_i’, \; i=\overline<1,n>, \; \vert y_m-y_m^0\vert Замечание 2.

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

Локальная обратимость регулярного отображения.

Пусть на множестве \(E\subset R^n\) заданы \(n\) функций
$$
f_1(x),…,f_n(x).\nonumber
$$

Они задают отображение \(f: \; E\rightarrow R^n\), которое каждой точке \(x\in E\) ставит в соответствие точку \(y=f(x)\), где
$$
y_1=f_1(x),\quad,…,\quad y_n=f_n(x).\nonumber
$$

Точка \(y=f(x)\) называется образом точки \(x\) при отображении \(f\). Точка \(x\) называется прообразом точки \(y\).

Если \(\Omega\subset E\), то множество
$$
f(\Omega)=\\nonumber
$$
называется образом множества \(\Omega\) при отображении \(f\). Если \(\omega\subset f(E)\), то множество
$$
f^<-1>(\omega)=\\nonumber
$$
называется прообразом множества \(\omega\).

Пусть \(G \subset R^n\) есть открытое множество. Отображение \(f: \; G\rightarrow R^n\) называется непрерывным в точке \(x^0\), если \(\forall \varepsilon > 0 \; \exists\delta > 0\) такое, что \(\forall x\) таких, что \(\rho(x,x^0) Лемма 1.

Если \(G\) есть открытое множество, а \(f: \; G\rightarrow R^n\) — непрерывное отображение, то прообраз каждого открытого множества \(\omega\in f(G)\) есть открытое множество.

\(\circ\) Пусть \(\Omega= f^<-1>(\omega)\). Возьмем любую точку \(x^0\in\Omega\). Тогда \(f(x^0)=y^0\in \omega\). Так как множество \(\omega\) открыто, то найдется окрестность \(S_<\varepsilon>(y^0)\in \omega\). В силу непрерывности отображения \(f\) в точке \(x^0\) найдется шаровая окрестность \(S_<\delta>(x^0)\), для которой выполнено условие \eqref.

Следовательно,
$$
S_<\delta>(x^0)\subset f^<-1>(\omega)\subset\Omega,\nonumber
$$
и \(\Omega\) — открытое множество. \(\bullet\)

Как обычно, под окрестностью \(A(x^0)\) точки \(x^0\) будем понимать любое множество \(A\), для которого точка \(x^0\) внутренняя.

Пусть \(G \subset R^n\) — открытое множество. Отображение \(f: \; G\rightarrow R^n\) будем называть непрерывно дифференцируемым, если функции \(f_1(x),…,f_n(x)\), задающие это отображение, непрерывно дифференцируемы в \(G\). Непрерывно дифференцируемое отображение \(f: \; G\rightarrow R^n\) будем называть регулярным, если в области \(G\) якобиан отображения \(j_f(x)\neq 0\). Якобианом отображения \(j_f(x)\) называется следующий функциональный определитель:
$$
j_f(x)=\begin\frac<\partial f_1(x)><\partial x_1>&…&\frac<\partial f_1(x)><\partial x_n>\\…&…&…\\\frac<\partial f_n(x)><\partial x_1>&…&\frac<\partial f_n(x)><\partial x_n>\end.\nonumber
$$

Пусть \(G\) — открытое множество в \(R^n\), а отображение \(f: \; G\rightarrow R^n\) регулярно. Тогда в каждой точке \(x^0\in G\) оно локально регулярно обратимо, то есть \(\forall x^0\in G\) найдутся такие окрестности \(A(x^0) \subset G\) и \(B(y^0)\subset f(G)\), где \(y^0= f(x^0)\), что отображение \(f: \; A(x^0)\rightarrow B(y^0)\) будет взаимно однозначным, причем обратное отображение \(f^<-1>: \; B(y^0)\rightarrow A(x^0)\) регулярно.

\(\circ\) Рассмотрим в \(G\times R^n\) систему уравнений
$$
F_i(x,y)\equiv y_i-f_i(x)=0,\quad i=\overline<1,n>.\label
$$

Пусть \(x^0\) — произвольная точка множества G и \(y^0=f(x^0)\). Тогда функции \(F_i(x,y)\) непрерывно дифференцируемы в \(G\times R^n\) и \(y_i^0= f_i(x^0), \; i=\overline<1,n>\). Так как отображение \(f\) регулярно, то
$$
<\begin\frac<\partial F_1><\partial x_1>&…&\frac<\partial F_1><\partial x_n>\\…&…&…\\\frac<\partial F_n><\partial x_1>&…&\frac<\partial F_n><\partial x_n>\end>_<(x^0,y^0)>=(-1)^nj_f(x^0)\neq0.\nonumber
$$
Для системы уравнений \eqref выполнены все условия теоремы 2 о неявных функциях. Поэтому найдутся такие клеточные окрестности
$$
\beginK(x^0)=\left\\right\>,\quad K(x^0)\subset G,\\Q(y^0)=\left\\right\>,\quad Q(y^0)\subset f(G),\end\nonumber
$$
что в \(K(x^0)\times Q(y^0)\) система уравнений \eqref определяет переменные \(x_1,…,x_n\) как неявные непрерывно дифференцируемые функции переменных \(y_1,…,y_n\):
$$
\beginx_1=\varphi_1(y),\quad …,\quad x_n=\varphi_n(y),\\x\in K(x^0),\quad y\in Q(y^0),\quad x_i^0=\varphi_i(y^0),\quad i=\overline<1,n>.\end\label
$$
Пусть \(B(y^0)\) есть внутренность \(Q(y^0)\):
$$
B(y^0) = \left\

Если \(f: \; G\rightarrow R^n\) есть регулярное отображение, то образ любого открытого множества \(\Omega\subset G\) есть открытое множество.

\(\circ\) Пусть \(\omega=f(\Omega)\). Возьмем произвольную точку \(y^0\in\omega\) и пусть \(x^0\) есть какой-то ее прообраз. Тогда, вследствие теоремы 3, найдутся такие окрестности \(A(x^0) \subset \Omega\) и \(B(y^0) \subset \omega\); что отображение \(f: \; A(x^0)\rightarrow B(y^0)\) регулярно обратимо. Поэтому каждая точка \(y^0\in\omega\) принадлежит \(\omega\) вместе с некоторой окрестностью \(B(y^0)\). Множество \(\omega=f(\Omega)\) открыто. \(\bullet\)

Производная функции, заданной неявно

Производная первого порядка

Пусть функция задана неявным образом с помощью уравнения
(1) .
И пусть это уравнение, при некотором значении , имеет единственное решение . Пусть функция является дифференцируемой функцией в точке , причем
.
Тогда, при этом значении , существует производная , которая определяется по формуле:
(2) .

Доказательство

Для доказательства рассмотрим функцию как сложную функцию от переменной :
.
Применим правило дифференцирования сложной функции и найдем производную по переменной от левой и правой частей уравнения
(3) :
.
Поскольку производная от постоянной равна нулю и , то
(4) ;
.

Производные высших порядков

Перепишем уравнение (4), используя другие обозначения:
(4) .
При этом и являются сложными функциями от переменной :
;
.
Зависимость определяет уравнение (1):
(1) .

Поскольку производная правой части уравнения (4) равна нулю, то
(5) .
Подставив сюда производную , получим значение производной второго порядка в неявном виде.

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

Продолжая дифференцирование, можно найти производную любого порядка.

Примеры

Пример 1

Найдите производную первого порядка от функции, заданной неявно уравнением:
(П1) .

Решение по формуле 2

Находим производную по формуле (2):
(2) .

Перенесем все переменные в левую часть, чтобы уравнение приняло вид .
.
Отсюда .

Находим производную по , считая постоянной.
;
;
;
.

Находим производную по переменной , считая переменную постоянной.
;
;
;
.

По формуле (2) находим:
.

Мы можем упростить результат если заметим, что согласно исходному уравнению (П.1), . Подставим :
.
Умножим числитель и знаменатель на :
.

Решение вторым способом

Решим этот пример вторым способом. Для этого найдем производную по переменной левой и правой частей исходного уравнения (П1).

Подставим (из уравнения (П1)):
.
Умножим на :
.

Пример 2

Найти производную второго порядка от функции , заданной неявно с помощью уравнения:
(П2.1) .

Дифференцируем исходное уравнение, по переменной , считая что является функцией от :
;
.
Применяем формулу производной сложной функции.
.

Дифференцируем исходное уравнение (П2.1):
;
.
Из исходного уравнения (П2.1) следует, что . Подставим :
.
Раскрываем скобки и группируем члены:
;
(П2.2) .
Находим производную первого порядка:
(П2.3) .

Чтобы найти производную второго порядка, дифференцируем уравнение (П2.2).
;
;
;
.
Подставим выражение производной первого порядка (П2.3):
.
Умножим на :

;
.
Отсюда находим производную второго порядка.

Пример 3

Найти производную третьего порядка при от функции , заданной неявно с помощью уравнения:
(П3.1) .

Дифференцируем исходное уравнение по переменной считая, что является функцией от .
;
;
;
;
;
;
(П3.2) ;

Дифференцируем уравнение (П3.2) по переменной .
;
;
;
;
;
(П3.3) .

Из уравнений (П3.2), (П3.3) и (П3.4) находим значения производных при .
;
;
.

Автор: Олег Одинцов . Опубликовано: 16-02-2017

Неявные методы решения дифференциальных уравнений

1. Неявные методы

Методы численного решения ОДУ, с которыми мы познакомились в первом разделе этого курса (метод Эйлера, метод средней точки и т. п.), называются «явными» методами. Однако иногда система ОДУ может стать «жесткой», а решать такие системы явными методами неудобно. В этом случае желательно изменить формулировку задачи так, что не пришлось иметь дело с жесткой системой. Но это не всегда возможно, поэтому вы должны уметь решать жесткие ОДУ. Для этого, как правило, используют методы решения, которые называются «неявными».

2. Пример жесткого ОДУ

Во-первых, в чем смысл и причина появления жестких уравнений? Давайте рассмотрим пример, который часто возникает в динамике. Предположим, что у нас есть частица, с координатами \((x(t),y(t))\) , и предположим, что мы хотим, чтобы ее \(y\) -координата всегда оставалась равной нулю. Один из способов добиться этого — добавить слагаемое \(-ky(t)\) , к производной \(\dot(t)\) , где \(k\) — большая положительная постоянная. Если \(k\) достаточно велико, то частица никогда не уйдет далеко от \(y(t)=0\) , так как слагаемое \(-ky(t)\) всегда приведет \(y(t)\) обратно к нулю. Предположим далее, что мы хотим, чтобы пользователь мог перемещать частицу как угодно вдоль оси \(x\) . Дифференциальное уравнение, описывающее движение данной системы, будет иметь вид

(Кроме того, мы предполагаем, что частица не запускается из \(y_0=0\) ). В результате частица будет сильно притягиваться к прямой \(y = 0\) , и менее сильно — к \(x = 0\) . Если решать ОДУ на достаточно продолжительном интервале времени, то частица рано или поздно попадет в точку \((0, 0)\) и останется в ней.

Теперь предположим, что для решения уравнения мы используем метод Эйлера. Если сделать шаг размера \(h\) , то получим

Если мы посмотрим на \(у\) -компоненту этого уравнения, то увидим, что при \(|1-hk|>1\) , вычисленное нами \(y_\) будет по модулю больше, чем \(|у_0|\) . Другими словами, при \(|1-hk|>1\) метод Эйлера будет неустойчив: каждый шаг приводит к увеличению \(y_\) по сравнению с предыдущим значением и приближенное решение будут все дальше отклоняться от нуля. Таким образом, для обеспечения устойчивости метода нужно, чтобы \(1-hk>-1\) или \(hk . Самый большой шаг, который мы можем сделать не нарушив устойчивости, должен быть меньше \(2/k\) .

Теперь, если \(k\) – большое число, мы вынуждены делать очень маленькие шаги. Это означает, что частица будет двигаться к \((0,0)\) мучительно медленно. Даже если взять \(y_0\) очень близким к нулю, то придется делать настолько маленькие шаги, что изменение \(x\) -координаты будет практически незаметно. Вот так выглядит жесткое ОДУ. В данном случае жесткость возникает из-за слишком большого \(k\) , призванного удержать частицу возле прямой \(у = 0\) . Позже, когда мы будем рассматривать частицы, соединенные пружинами, мы увидим то же самое явление: от жесткости пружины и происходит термин «жесткое» ОДУ. Даже если мы используем более совершенный численный метод, такой как метод Рунге-Кутта 4-го порядка, это лишь слегка улучшит ситуацию с выбором величины шага, но мы все равно будем иметь серьезные вычислительные проблемы.

Теперь, как мы уже говорили выше, нужно попытаться переформулировать свою задачу так, чтобы избежать появления жесткого ОДУ. Если же это не получится, то нужно использовать неявный метод решения ОДУ. Метод, который мы покажем ниже, является самым простым из неявных методов. Он основан на том, что шаг обычного метода Эйлера выполняется «наоборот».

3. Решение жесткого ОДУ

Пусть дано дифференциальное уравнение

Формула явного метода Эйлера

продвигает систему вперед на шаг \(h\) во времени. Для жестких систем, однако, удобнее заменить эту формулу на следующую

То есть, нам нужно вычислить \(f\) в точке, в которую мы стремимся попасть ( \(\textbf_\) ), а не в исходной ( \(\textbf_0\) ). (Если представить, что время может двигаться в обратном направление, то смысл этого уравнения очевиден. Оно говорит: «если вы находитесь в \(\textbf_\) , и сделаете шаг \(-hf (\textbf_)\) , то попадете в \(\textbf_0\) ». Так что если ваше ДУ представляет собой систему, движущуюся вспять во времени, то этот шаг имеет смысл. Это просто поиск точки \(\textbf_\) такой, что если запустить время вспять, вы в конечном итоге окажетесь в \(\textbf_0\) .) Таким образом, мы ищем точку \(\textbf_\) такую, что \(f\) , вычисленная в ней и умноженная на \(h\) , приводит к исходной точке \(\textbf_0\) . К сожалению, найти \(\textbf_\) из уравнения \eqref в общем случае невозможно, если только \(f\) не является линейной функцией.

Чтобы справиться с этим, заменим \(f (\textbf_)\) линейной аппроксимацией, основанной на разложении \(f\) в ряд Тейлора. Введем обозначение \(\Delta\textbf=\textbf_-\textbf_0\) . Подставив его в уравнение \eqref, получим

Теперь заменим \(f(\textbf_0 + \Delta\textbf)\) следующим приближением

(Заметим, что поскольку \(f(\textbf_0)\) является вектором, то производная \(f^\prime(\textbf_0)\) является матрицей.) Используя это приближение, мы можем записать \(\Delta\textbf\) как

Разделим обе части последнего соотношения на \(h\) и перепишем результат в виде

где \(I\) — единичная матрица.

Разрешая это соотношение относительно \(\Delta\textbf\) , получим

Вычисление \(\textbf_=\textbf_0+\Delta\textbf\) для неявного метода очевидно требует больших вычислительных затрат, чем при использовании явного метода, так как мы должны решать систему линейных уравнений на каждом шаге. Хотя это может показаться серьезным недостатком (в вычислительном плане), не отчаивайтесь (пока). Для многих классов задач, матрица \(f^\prime\) будет разреженной — например, для «решетки» частиц, соединенных пружинами, \(f^\prime\) будет иметь структуру, которая соответствует связям между частицами. (Обсуждение разреженности и методов решений, применимых в этом случае, см. Baraff и Witkin [1]. Основной материал в Press et al. [2] также будет полезен.) В результате, как правило, можно решить уравнение \eqref в линейном времени (т. е. за время, пропорциональное размерности \(\textbf\) ). Выигрыш в таких случаях будет весьма существенным: мы, как правило, можем делать большие шаги по времени без потери устойчивости (т. е. без расхождения, как это происходит для явного метода, если длина шага слишком велика). Время, необходимое для решения каждой линейной системы, таким образом, более чем компенсируется тем, шагов можно зачастую сделать на порядки больше, чем при использовании явных методов. (Конечно, код, необходимый для реализации всего этого, гораздо сложнее, чем в явном случае; как мы уже говорили: переделывайте свои задачи в нежесткие, а если не получается, то платите положенную цену.)

Применим теперь неявный метод для решения уравнения \eqref. В нашем случае \(f(\textbf(t))\) равно

Дифференцирование по \(\textbf\) дает

Тогда матрица \((1/h)\textbf — f^<\prime>(\textbf_0)\) будет равна

Обращая эту матрицу и умножая на \(f(\textbf_0)\) , получим

Какова же предельная длина шага в этом случае? Ответ: нет предела! Если позволить \(h\) расти до бесконечности, мы получаем следующее

Это означает, что мы достигнем \(\textbf_=\textbf_0 + (-\textbf_0)=0\) за один шаг! В общем случае для жесткого ОДУ мы не сможем сделать шаг произвольного размера, но мы сможем сделать его гораздо большим, чем если бы использовали явный метод. Дополнительные расходы на решение системы линейных уравнений компенсируются экономией, возникающий благодаря возможности сделать меньше шагов.

4. Решение уравнений второго порядка

Большинство задач динамики записывается в виде ДУ 2-го порядка

Это уравнение легко преобразуется систему ДУ 1-го порядка, добавлением новых переменных. Если мы определим \(\textbf=\dot<\textbf>\) , то сможем переписать уравнение \eqref в виде

что представляет собой систему ДУ 1-го порядка. Однако, применяя обратный (неявный) метод Эйлера к уравнению \eqref, получим линейную систему размера \(2n \times 2n\) где \(n\) — размерность \(\textbf\) . Простое преобразование позволяет уменьшить размер линейной системы до \(n \times n\) . Важно отметить, что обе системы — исходная и преобразованная — будут иметь одинаковую степень разреженности. Таким образом, решение системы меньшего размера будет выполняться быстрее.

Система \(n \times n\) , которая должна быть решена, получается следующим образом. Введем для краткости следующие обозначения \(\textbf_0=\textbf(t_0)\) и \(\textbf_0=\textbf(t_0)\) . Определяем \(\Delta\textbf\) и \(\Delta\textbf\) как \(\Delta\textbf = \textbf(t_0+h)-\textbf(t_0)\) и \(\Delta\textbf = \textbf(t_0+h)-\textbf(t_0)\) . Очередное приближение по неявному методу Эйлера, примененному к уравнению \eqref, дает в результате

Применяя к \(f\) разложение в ряд Тейлора, которое в данном контексте является функцией и \(\textbf\) и \(\textbf\) , получим приближение 1-го порядка

В этом уравнении, производная \(\partial f / \partial\textbf\) оценивается в точке \((\textbf_0, \textbf_0)\) и аналогично вычисляется \(\partial f / \partial\textbf\) . Подставляя это приближение в уравнение \eqref, получим линейную систему

Подставив во вторую строку последнего равенства соотношение \(\Delta\textbf = h(\textbf_0 + \Delta\textbf)\) (т. е. первую строку того же равенства), придем к

Вводя единичную матрицу \(I\) и перегруппировав члены, получим соотношение

из которого находим \(\Delta\textbf\) . А зная \(\Delta\textbf\) легко вычислить \(\Delta\textbf = h(\textbf_0 + \Delta\textbf)\) .

Выше, мы предполагали, что функция \(f\) не зависит явно от времени. Если же \(f\) зависит от времени явно (например, если \(f\) описывает изменяющиеся во времени внешние силы), то в уравнение \eqref добавляется член, позволяющий учесть эту зависимость

Ссылки

  1. D. Baraff and A. Witkin. Large steps in cloth simulation. Computer Graphics (Proc. SIGGRAPH), 1998.
  2. W.H. Press, B.P. Flannery, S.A. Teukolsky, and W.T. Vetterling. Numerical Recipes. Cambridge University Press, 1986.

Читайте также

Комментарии

Дмитрий Храмов
Компьютерное моделирование и все, что с ним связано: сбор данных, их анализ, разработка математических моделей, софт для моделирования, визуализации и оформления публикаций. Ну и за жизнь немного.


источники:

http://1cov-edu.ru/mat_analiz/proizvodnaya/nayti/neyavnoy-funktsii/

http://dkhramov.dp.ua/Comp.PMBWImplicitMethodsforDifferentialEquations