<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3</id>
	<title>Приложение 3 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;action=history"/>
	<updated>2026-10-22T19:08:36Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2540&amp;oldid=prev</id>
		<title>ASA: Полностью удалено содержимое страницы</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2540&amp;oldid=prev"/>
		<updated>2015-09-17T08:08:53Z</updated>

		<summary type="html">&lt;p&gt;Полностью удалено содержимое страницы&lt;/p&gt;
&lt;a href=&quot;https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;amp;diff=2540&amp;amp;oldid=2539&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>ASA</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2539&amp;oldid=prev</id>
		<title>ASA в 08:08, 17 сентября 2015</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2539&amp;oldid=prev"/>
		<updated>2015-09-17T08:08:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;amp;diff=2539&amp;amp;oldid=2519&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>ASA</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2519&amp;oldid=prev</id>
		<title>ASA: Полностью удалено содержимое страницы</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2519&amp;oldid=prev"/>
		<updated>2015-09-16T13:58:43Z</updated>

		<summary type="html">&lt;p&gt;Полностью удалено содержимое страницы&lt;/p&gt;
&lt;a href=&quot;https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;amp;diff=2519&amp;amp;oldid=2518&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>ASA</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2518&amp;oldid=prev</id>
		<title>ASA в 13:58, 16 сентября 2015</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2518&amp;oldid=prev"/>
		<updated>2015-09-16T13:58:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;amp;diff=2518&amp;amp;oldid=2493&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>ASA</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2493&amp;oldid=prev</id>
		<title>ASA: Полностью удалено содержимое страницы</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2493&amp;oldid=prev"/>
		<updated>2015-09-11T08:01:32Z</updated>

		<summary type="html">&lt;p&gt;Полностью удалено содержимое страницы&lt;/p&gt;
&lt;a href=&quot;https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;amp;diff=2493&amp;amp;oldid=2492&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>ASA</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2492&amp;oldid=prev</id>
		<title>ASA: Новая страница: «= Обратная подстановка метода Гаусса (вещественный вариант) =  == Свойства и структура алг…»</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_3&amp;diff=2492&amp;oldid=prev"/>
		<updated>2015-09-11T08:00:53Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «= Обратная подстановка метода Гаусса (вещественный вариант) =  == Свойства и структура алг…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Обратная подстановка метода Гаусса (вещественный вариант) =&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Обратная подстановка&amp;#039;&amp;#039;&amp;#039; - решение &amp;#039;&amp;#039;системы линейных алгебраических уравнений&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;СЛАУ&amp;#039;&amp;#039;&amp;#039;) &amp;lt;math&amp;gt;Ux = y&amp;lt;/math&amp;gt; с верхней треугольной матрицей &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;. Матрица &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt; может быть одной из составляющих матрицы &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; в каких-либо разложениях и получается либо из &amp;lt;math&amp;gt;LU&amp;lt;/math&amp;gt;-разложения последней каким-либо из многочисленных способов (например, простое разложение Гаусса, разложение Гаусса с выбором ведущего элемента, компактная схема Гаусса, [[Метод Холецкого (квадратного корня), точечный вещественный вариант|разложение Холецкого]] и др.), либо из других (например из QR-разложения).  В силу треугольности &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt; решение СЛАУ является одной из модификаций общего метода подстановки и записывается простыми формулами.&lt;br /&gt;
&lt;br /&gt;
В&amp;lt;ref&amp;gt;В.В.Воеводин, Ю.А.Кузнецов. Матрицы и вычисления. - М.: Наука, 1984.&amp;lt;/ref&amp;gt; методом &amp;#039;&amp;#039;&amp;#039;обратной подстановки&amp;#039;&amp;#039;&amp;#039; назван также и метод решения СЛАУ с &amp;#039;&amp;#039;нижней треугольной матрицей&amp;#039;&amp;#039;. Там же отмечено, что в литературе иногда под &amp;#039;&amp;#039;обратной подстановкой&amp;#039;&amp;#039; имеют в виду, как и здесь, только решения СЛАУ с &amp;#039;&amp;#039;верхней треугольной матрицей&amp;#039;&amp;#039;, а решение &amp;#039;&amp;#039;нижних&amp;#039;&amp;#039; треугольных систем называют [[Прямая подстановка (вещественный вариант)|прямой подстановкой]]. Такой же системы названий будем придерживаться и здесь, во избежание одноимённого названия разных алгоритмов. Кроме того, &amp;#039;&amp;#039;&amp;#039;обратная подстановка&amp;#039;&amp;#039;&amp;#039;, представленная здесь, одновременно может быть частью &amp;#039;&amp;#039;&amp;#039;метода Гаусса для решения СЛАУ&amp;#039;&amp;#039;&amp;#039;, а именно - его &amp;#039;&amp;#039;&amp;#039;обратным ходом&amp;#039;&amp;#039;&amp;#039;, чего нельзя сказать про [[Прямая подстановка (вещественный вариант)|прямую подстановку]].&lt;br /&gt;
&lt;br /&gt;
Существует метод со сходным названием - [[Обратная подстановка с нормировкой]]. При том, что он решает, по существу, ту же задачу, что и простая &amp;#039;&amp;#039;&amp;#039;обратная подстановка&amp;#039;&amp;#039;&amp;#039;, его схема несколько сложнее. Это связано со специальными мерами по уменьшению влияния ошибок округления на результат. [[Обратная подстановка с нормировкой]] на данной странице не рассматривается.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Исходные данные: верхняя треугольная матрица &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt; (элементы &amp;lt;math&amp;gt;u_{ij}&amp;lt;/math&amp;gt;), вектор правой части &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; (элементы &amp;lt;math&amp;gt;y_{i}&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Вычисляемые данные: вектор решения &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; (элементы &amp;lt;math&amp;gt;x_{i}&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Формулы метода:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
x_{n} &amp;amp; = y_{n}/u_{nn} \\&lt;br /&gt;
x_{i} &amp;amp; = \left (y_{i} - \sum_{j = i+1}^{n} u_{ij} x_{j} \right ) / u_{ii}, \quad i \in [1, n - 1].&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Существует также блочная версия метода, однако в данном описании разобран только точечный метод.&lt;br /&gt;
&lt;br /&gt;
=== Вычислительное ядро алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Вычислительное ядро обратной подстановки можно составить из множественных (всего их &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt;) вычислений скалярных произведений подстрок матрицы &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt; на уже вычисленную часть вектора &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sum_{j = i+1}^{n} u_{ij} x_{j} &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
в режиме накопления или без него, в зависимости от требований задачи, с их последующим вычитанием из компоненты вектора &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; и деления на диагональный элемент матрицы &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;. В отечественных реализациях, даже в последовательных, упомянутый способ представления не используется. Дело в том, что даже в этих реализациях метода вычисление сумм типа &lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; y_{i} - \sum_{j = i+1}^{n} u_{ij} x_{j} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в которых и встречаются скалярные произведения, ведутся не в порядке «вычислили скалярное произведение, а потом вычли его из элемента», а путём вычитания из элемента покомпонентных произведений, являющихся частями скалярных произведений. Поэтому следует считать вычислительным ядром метода не вычисления скалярных произведений, а вычисления выражений&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; y_{i} - \sum_{j = i+1}^{n} u_{ij} x_{j} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в режиме накопления или без него, в зависимости от требований задачи, плюс деления результатов этих вычислений на диагональные элементы матрицы.&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Как уже записано в [[#Вычислительное ядро алгоритма|описании ядра алгоритма]], основную часть метода обратной подстановки составляют множественные (всего &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt;) вычисления сумм&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;y_{i} - \sum_{j = i+1}^{n} u_{ij} x_{j} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в режиме накопления или без него, плюс деления результатов этих вычислений на диагональные элементы матрицы.&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Последовательность исполнения такова:&lt;br /&gt;
&lt;br /&gt;
1. &amp;lt;math&amp;gt;x_{n} = y_{n}/u_{nn}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее для всех &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; от &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; &amp;#039;&amp;#039;по убыванию&amp;#039;&amp;#039; выполняются&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;math&amp;gt;x_{i} = \left (y_{i} - \sum_{j = i+1}^{n} u_{ij} x_{j} \right ) / u_{ii}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Особо отметим, что вычисления сумм вида &amp;lt;math&amp;gt;y_{i} - \sum_{j = i+1}^{n} u_{ij} x_{j}&amp;lt;/math&amp;gt; производят в режиме накопления вычитанием из &amp;lt;math&amp;gt;y_{i}&amp;lt;/math&amp;gt; произведений &amp;lt;math&amp;gt;u_{ij} x_{j}&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; от &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;i + 1&amp;lt;/math&amp;gt;, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;c убыванием&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;. &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Другие порядки выполнения суммирования приводят к резкому ухудшению параллельных свойств алгоритма&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;, хотя, к сожалению, остаются кое-где в литературе и пакетах программ. В качестве примера такого порядка можно привести фрагмент программы из&amp;lt;ref&amp;gt;Дж.Форсайт, К.Моллер. Численное решение систем линейных алгебраических уравнений. - М.:Мир, 1969.&amp;lt;/ref&amp;gt;, где обратная подстановка является обратным ходом в методе Гаусса, а возрастание индекса суммирования связано, в основном, с ограничениями используемого авторами книги старого диалекта Фортрана.&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Для обратной подстановки в случае решения линейной системы с верхней треугольной матрицей порядка &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;  в последовательном (наиболее быстром) варианте требуется:&lt;br /&gt;
	&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; делений,&lt;br /&gt;
* &amp;lt;math&amp;gt;\frac{n^2-n}{2}&amp;lt;/math&amp;gt; сложений (вычитаний),&lt;br /&gt;
* &amp;lt;math&amp;gt;\frac{n^2-n}{2}&amp;lt;/math&amp;gt; умножений. &lt;br /&gt;
Умножения и сложения (вычитания) — &amp;#039;&amp;#039;основная часть алгоритма&amp;#039;&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
При этом использование режима накопления требует совершения умножений и вычитаний в режиме двойной точности (или использования функции вроде DPROD в Фортране).&lt;br /&gt;
&lt;br /&gt;
При классификации по последовательной сложности, таким образом, метод обратной подстановки относится к алгоритмам &amp;#039;&amp;#039;со сложностью&amp;#039;&amp;#039; &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
Опишем [[глоссарий#Граф алгоритма|граф алгоритма]] как аналитически, так и в виде рисунка. &lt;br /&gt;
&lt;br /&gt;
Граф алгоритма обратной подстановки состоит из двух групп вершин, расположенных в целочисленных узлах двух областей разной размерности.&lt;br /&gt;
&lt;br /&gt;
[[Файл:DirectU.png|450px|thumb|left|Рис. 1. Обратная подстановка]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Первая&amp;#039;&amp;#039;&amp;#039; группа вершин расположена в одномерной области, соответствующая ей операция вычисляет функцию деления. &lt;br /&gt;
Естественно введённая единственная координата каждой из вершин &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; меняется в диапазоне от &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, принимая все целочисленные значения.&lt;br /&gt;
&lt;br /&gt;
Делимое в этой операции: &lt;br /&gt;
	&lt;br /&gt;
* при &amp;lt;math&amp;gt;i = n&amp;lt;/math&amp;gt; — элемент &amp;#039;&amp;#039;входных данных&amp;#039;&amp;#039;, а именно  &amp;lt;math&amp;gt;y_{n}&amp;lt;/math&amp;gt;; &lt;br /&gt;
* при &amp;lt;math&amp;gt;i &amp;lt; n&amp;lt;/math&amp;gt; — результат срабатывания операции, соответствующей вершине из второй группы, с координатами &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;i+1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Делитель для этой операции - элемент &amp;#039;&amp;#039;входных данных&amp;#039;&amp;#039;, а именно  &amp;lt;math&amp;gt;u_{nn}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Результат срабатывания операции является &amp;#039;&amp;#039;выходным данным&amp;#039;&amp;#039; &amp;lt;math&amp;gt;x_{i}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Вторая&amp;#039;&amp;#039;&amp;#039; группа вершин расположена в двумерной области, соответствующая ей операция  &amp;lt;math&amp;gt;a-bc&amp;lt;/math&amp;gt;. &lt;br /&gt;
Естественно введённые координаты области таковы: &lt;br /&gt;
* &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; — меняется в диапазоне от &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, принимая все целочисленные значения;&lt;br /&gt;
* &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; — меняется в диапазоне от &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;i+1&amp;lt;/math&amp;gt;, принимая все целочисленные значения.&lt;br /&gt;
&lt;br /&gt;
Аргументы операции следующие:&lt;br /&gt;
*&amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;:&lt;br /&gt;
** при &amp;lt;math&amp;gt;j = n&amp;lt;/math&amp;gt; элемент &amp;#039;&amp;#039;входных данных&amp;#039;&amp;#039; &amp;lt;math&amp;gt;y_{i}&amp;lt;/math&amp;gt;; &lt;br /&gt;
** при &amp;lt;math&amp;gt;j &amp;lt; n&amp;lt;/math&amp;gt; — результат срабатывания операции, соответствующей вершине из второй группы, с координатами &amp;lt;math&amp;gt;i, j+1&amp;lt;/math&amp;gt;;&lt;br /&gt;
*&amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; — элемент &amp;#039;&amp;#039;входных данных&amp;#039;&amp;#039;, а именно  &amp;lt;math&amp;gt;u_{ij}&amp;lt;/math&amp;gt;;&lt;br /&gt;
*&amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; — результат срабатывания операции, соответствующей вершине из первой группы, с координатой &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Результат срабатывания операции является &amp;#039;&amp;#039;промежуточным данным&amp;#039;&amp;#039; алгоритма.&lt;br /&gt;
&lt;br /&gt;
Описанный граф можно посмотреть на рис. 1, выполненном для случая &amp;lt;math&amp;gt;n = 5&amp;lt;/math&amp;gt;. Здесь вершины первой группы обозначены жёлтым цветом и знаком деления, вершины второй — зелёным цветом и буквой f. Изображена подача только входных данных из вектора &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, подача элементов матрицы &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;, идущая во все вершины, на рисунке не представлена.&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Для обратной подстановки в случае решения линейной системы с верхней треугольной матрицей порядка &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; в параллельном варианте требуется последовательно выполнить следующие ярусы:&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ярусов делений (в каждом из ярусов одно деление),&lt;br /&gt;
* по &amp;lt;math&amp;gt;n - 1&amp;lt;/math&amp;gt; ярусов умножений и сложений/вычитаний (в каждом из ярусов — линейное количество операций, от &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
Таким образом, в параллельном варианте, в отличие от последовательного, вычисления делений будут определять довольно значительную долю требуемого времени. При реализации на конкретных архитектурах наличие в отдельных ярусах [[глоссарий#Ярусно-параллельная форма графа алгоритма|ЯПФ]] отдельных делений может породить и другие проблемы. Например, при реализации метода обратной подстановки на ПЛИСах остальные вычисления (умножения и сложения/вычитания) могут быть конвейеризованы, что даёт экономию и по ресурсам на программируемых платах; деления из-за их изолированности приведут к занятию ресурсов на платах, которые будут простаивать большую часть времени. &lt;br /&gt;
&lt;br /&gt;
При этом использование режима накопления требует совершения умножений и вычитаний в режиме двойной точности, а в параллельном варианте это означает, что практически все промежуточные вычисления для выполнения алгоритма в режиме накопления должны быть двойной точности. В отличие от последовательного варианта это означает некоторое увеличение требуемой памяти.&lt;br /&gt;
&lt;br /&gt;
При классификации по высоте ЯПФ, таким образом, метод обратной подстановки относится к алгоритмам &amp;#039;&amp;#039;с линейной сложностью&amp;#039;&amp;#039;. При классификации по ширине ЯПФ его сложность также будет &amp;#039;&amp;#039;линейной&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Входные данные&amp;#039;&amp;#039;&amp;#039;: верхняя треугольная матрица &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt; (элементы &amp;lt;math&amp;gt;u_{ij}&amp;lt;/math&amp;gt;), вектор правой части &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; (элементы &amp;lt;math&amp;gt;y_{i}&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Объём входных данных&amp;#039;&amp;#039;&amp;#039;: :&amp;lt;math&amp;gt;\frac{n (n + 3)}{2}&amp;lt;/math&amp;gt; (в силу треугольности достаточно хранить только ненулевые элементы матрицы &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Выходные данные&amp;#039;&amp;#039;&amp;#039;: вектор решения &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; (элементы &amp;lt;math&amp;gt;x_{i}&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Объём выходных данных&amp;#039;&amp;#039;&amp;#039;: :&amp;lt;math&amp;gt;n~.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Соотношение последовательной и параллельной сложности в случае неограниченных ресурсов, как хорошо видно, является &amp;#039;&amp;#039;линейным&amp;#039;&amp;#039; (отношение квадратической к линейной). &lt;br /&gt;
&lt;br /&gt;
При этом вычислительная мощность алгоритма обратной подстановки, как отношение числа операций к суммарному объему входных и выходных данных – всего лишь &amp;#039;&amp;#039;константа&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
При этом алгоритм обратной подстановки полностью детерминирован. Использование другого порядка выполнения ассоциативных операций в данной версии нами не рассматривается, поскольку в корне меняет структуру алгоритма и меняет сложность с линейной на квадратичную.&lt;br /&gt;
&lt;br /&gt;
Наличие линейного количества ярусов ЯПФ, состоящих из одного-единственного деления, потенциально замедляющее параллельные реализации алгоритма, является его характерным &amp;quot;узким местом&amp;quot;, особенно в сравнении со схожей по решаемой математической задаче [[Прямая подстановка (вещественный вариант)|прямой подстановке]], где диагональные элементы единичны. В связи с этим для решения СЛАУ предпочтительны такие разложения, содержащие треугольные матрицы, где в треугольных матрицах диагональные элементы единичны. В тех же случаях, когда получаются неособенные треугольные матрицы, их желательно предварительно, до решения СЛАУ с ними, преобразовать в произведение диагональной и треугольной с единичными диагональными элементами.&lt;br /&gt;
&lt;br /&gt;
У алгоритма обратной подстановки существует несколько блочных вариантов. Граф некоторых из них совпадает с графом точечного варианта, различия связаны в основном с порядком прохождения основных циклов алгоритма, а именно - с их развёртыванием и перестановкой. Эти приёмы могут помочь в оптимизации обменов на конкретных вычислительных системах.&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>ASA</name></author>
	</entry>
</feed>