Решение систем уравнений методом прогонки примеры

Метод прогонки

Пример №1 . Решить задачу методом динамического программирования в прямом и обратном времени для целевой функции, заданной таблично.
F(x1,x2,x3) = f1(x1) + f2(x2) + f3(x3) → max
x1 + 2x2 + 2x3 ≤ 5

X012345
f1(x1)6711121516
f2(x2)9111315
f3(x3)8121416

Решение.
I этап. Условная оптимизация. f1(L) = max(f1); 0 ≤ x1 ≤ 5; x1 = 0,1,2,3,4,5.
f1(0) = max[6] = 6
f1(1) = max[6, 7] = 7
f1(2) = max[6, 7, 11] = 11
f1(3) = max[6, 7, 11, 12] = 12
f1(4) = max[6, 7, 11, 12, 15] = 15
f1(5) = max[6, 7, 11, 12, 15, 16] = 16
Таблица 1 – Расчет значения функции f1(L)

L012345
f1(L)6711121516
x1012345

f2(L) = max[f2 + f1(L — 2x2)]; 0 ≤ x2 ≤ 5; x2 = 0,1,2,3,4,5.
f2(0) = max[9+6] = 15
f2(1) = max[9+7] = 16
f2(2) = max[9+11, 11+6] = 20
f2(3) = max[9+12, 11+7] = 21
f2(4) = max[9+15, 11+11, 13+6] = 24
f2(5) = max[9+16, 11+12, 13+7] = 25
Таблица 2 – Расчет значения функции f2(L)

L012345
f2(L)151620212425
x2000000

f3(L) = max[f3 + f2(L — 2x3)]; 0 ≤ x3 ≤ 5; x3 = 0,1,2,3,4,5.
f3(0) = max[8+15] = 23
f3(1) = max[8+16] = 24
f3(2) = max[8+20, 12+15] = 28
f3(3) = max[8+21, 12+16] = 29
f3(4) = max[8+24, 12+20, 14+15] = 32
f3(5) = max[8+25, 12+21, 14+16] = 33
Таблица 3 – Расчет значения функции f3(L)

L012345
f3(L)232428293233
x3000000

II этап. Безусловная оптимизация.
Таким образом, максимум f3(5) = 33
При этом x3 = 0, так как f3(5) = 33 достигается при х3=0 (см. таблицу 3).
Остальные x распределяются следующим образом:
L = 5 — 2 * 0 = 5
f2(5) = 25 достигается при х2 = 0 (см. таблицу 2).
L = 5 — 2 * 0 = 5
f1(5) = 16 достигается при х1 = 5 (см. таблицу 1).
L = 5 — 1 * 5 = 0
В итоге наилучший вариант достигается при значениях: x1 = 5, x2 = 0, x3 = 0

Пример №2 . Рассмотрим задачу об оптимальном размещении капитала K = nh в m различных независимых фондах (банки, организации, фирма и т.д.), для которых известна ожидаемая прибыль fi при капиталовложениях xi = ih, i = 1..n. Здесь n – количество дискретных приращений h (дискрет), на которые разбит капитал К.
Пусть такие данные имеются по четырем (m=4) фондам для h = 1 млн. руб., n = 6

Решение.
I этап. Условная оптимизация.
1-й шаг: k = 4.
Предположим, что все средства в количестве x4 = 6 отданы 4-у предприятию. В этом случае максимальный доход, как это видно из таблицы 1*, составит 0.56, следовательно:
F4(c4) = g4(x4)
Таблица 1.

0x10123456
x4f0(x0) / F4(x4)0000000
000000000
10.2000000.20
20.3300000.3300
30.420000.42000
40.48000.480000
50.5300.5300000
60.560.56*000000

Таблица 1*.

c10123456
F0(c1)00.20.330.420.480.530.56
x10123456

2-й шаг: k = 3.
Определяем оптимальную стратегию при распределении средств между остальными предприятиями. При этом рекуррентное соотношение Беллмана имеет вид:
F3(c3) = max [ g3(x3) + F4(c3 — x3)]
Таблица 2.

0x20123456
x3f3(x3) / F3(x3)00.20.330.420.480.530.56
0000.2*0.330.420.480.530.56
10.150.150.35*0.48*0.570.630.680
20.250.250.450.580.670.7300
30.40.40.6*0.73*0.82000
40.50.50.70.83*0000
50.620.620.8200000
60.730.73000000

Заполняем таблицу 2*. Для этого на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение x2.
Таблица 2*.

c20123456
F3(c2)00.20.350.480.60.730.83
x20011334

3-й шаг: k = 2.
Определяем оптимальную стратегию при распределении средств между остальными предприятиями. При этом рекуррентное соотношение Беллмана имеет вид:
F2(c2) = max [ g2(x2) + F3(c2 — x2)]
Таблица 3.

0x30123456
x2f4(x4) / F2(x2)00.20.350.480.60.730.83
0000.20.350.480.60.730.83
10.250.25*0.45*0.60.730.850.980
20.410.410.61*0.76*0.891.0100
30.550.550.750.9*1.03*000
40.650.650.8510000
50.750.750.9500000
60.80.8000000

Заполняем таблицу 3*. Для этого на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение x3.
Таблица 3*.

c30123456
F4(c3)00.250.450.610.760.91.03
x30112233

4-й шаг: k = 1.
Определяем оптимальную стратегию при распределении средств между остальными предприятиями. При этом рекуррентное соотношение Беллмана имеет вид:
F1(c1) = max [ g1(x1) + F2(c1 — x1)]
Таблица 4.

0x40123456
x1f5(x5) / F1(x1)00.250.450.610.760.91.03
0000.250.450.610.760.91.03
10.280.28*0.53*0.73*0.891.041.180
20.450.450.70.91.061.2100
30.650.650.9*1.1*1.26*000
40.780.781.031.230000
50.90.91.1500000
61.021.02000000

Заполняем таблицу 4*. Для этого на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение x4.
Таблица 4*.

c40123456
F5(c4)00.280.530.730.91.11.26
x40111333

II этап. Безусловная оптимизация.
1-й шаг: k = 1.
По данным таблицы 4* максимальный доход при распределении 6 между предприятиями составляет c1 = 6, F1(6) = 1.26. При этом 1-му предприятию нужно выделить x1 = 3.
2-й шаг: k = 2.
Определим величину оставшихся денежных средств, приходящихся на долю остальных предприятий.
c2 = c1 — x1 = 6 — 3 = 3.
По данным таблицы 3* максимальный доход при распределении 3 между предприятиями составляет c2 = 3, F2(3) = 0.61. При этом 2-му предприятию нужно выделить x2 = 2.
3-й шаг: k = 3.
Определим величину оставшихся денежных средств, приходящихся на долю остальных предприятий.
c3 = c2 — x2 = 3 — 2 = 1.
По данным таблицы 2* максимальный доход при распределении 1 между предприятиями составляет c3 = 1, F3(1) = 0.2. При этом 3-му предприятию нужно выделить x3 = 0.
4-й шаг: k = 4.
Определим величину оставшихся денежных средств, приходящихся на долю остальных предприятий.
c4 = c3 — x3 = 1 — 0 = 1.
По данным таблицы 1* максимальный доход при распределении 1 между предприятиями составляет c4 = 1, F4(1) = 0.20. При этом 4-му предприятию нужно выделить x4 = 1.
Таким образом, оптимальный план инвестирования предприятия: x1 = 3, x2 = 2, x3 = 0, x4 = 1, который обеспечит максимальный доход, равный: F(6) = g1(3) + g2(2) + g3(0) + g4(1) = 0.65 + 0.41 + 0 + 0.20 = 1.26.

Пример №3 . Распределите c=200 млн ден. ед. инвестиций между четырьмя министерствами республики ( n=4 ) на реконструкцию и модернизацию производственных мощностей таким образом, чтобы суммарный прирост производства продукции всех министерств f4(с) был максимальным. Прирост выпуска продукции в каждом из министерств gi(x) в зависимости от объема выделенных средств x (0 c=200 млн ден. ед. между первыми тремя министерствами, максимизирующее их суммарный прирост производства продукции f3(с).
Примечание. Основная задача решается с помощью процедуры прямой прогонки. Ответ на подзадачу можно получить из таблицы n-1 исходного решения.

Линейные уравнения. Решение систем линейных уравнений. Метод прогонки.

Метод прогонки (алгоритм Томаса) используют для решения СЛУ типа Ax=F, где Aтрёхдиагональная матрица. Это вариант метода последовательного исключения неизвестных.

Система уравнений Ax=F равноценна соотношению:

Метод прогонки базируется на предположении, что неизвестные, которые необходимо найти, связаны соотношением:

Выразим xi-1 и xi через xi+1, подставим в уравнение, используя это соотношение, (1):

где Fi — правая часть i-го уравнения.

Это соотношение выполняется не завися от решения, если потребовать:

,

,

Получаем из 1-го уравнения:

.

После того, как нашли прогоночные коэффициенты α и β, используем уравнение (2) и получим решение системы. Причем,

.

Еще одним вариантом объяснения смысла метода прогонки является такой вариант: преобразуем уравнение (1) к равнозначному ему уравнению:

c надиагональной (наддиагональной) матрицей:

Рассчеты проводим в 2 этапа. На 1-ом этапе вычисляем компоненты матрицы C′i и вектора F′, начиная с i=2 до i=n:

На 2-ом этапе, для i=n,n−1,…,1 вычисляем решение:

Для применимости формул метода прогонки достаточно свойства строгого диагонального преобладания у матрицы A.

Метод прогонки

Метод прогонки является модификацией метода Гаусса для частного случая разреженных систем – системы уравнений с трехдиагоналъной матрицей. Такие системы получаются при моделировании некоторых инженерных задач, а также при численном решении краевых задач для дифференциальных уравнений.

Запишем систему уравнений в виде

(2.13)

На главной диагонали матрицы этой системы стоят элементы b1, b2, …, bn,над ней – элементы с1, с2. , сn-1 под ней – элементы а2, а3. , ап (при этом обычно все коэффициенты bi не равны нулю). Остальные элементы матрицы равны нулю.

Метод прогонки состоит из двух этапов – прямой прогонки (аналога прямого хода метода Гаусса) и обратной прогонки (аналога обратного хода метода Гаусса). Прямая прогонка состоит в вычислении прогоночных коэффициентов Ai,Bi,с помощью которых каждое неизвестное xi выражается через zi+1:

(2.14)

Из первого уравнения системы (2.13) найдем

С другой стороны, по формуле (2.14) Приравнивая коэффициенты в обоих выражениях для х1, получаем

(2.15)

Подставим во второе уравнение системы (2.13) вместо х1его выражение через х2по формуле (2.14):

Выразим отсюда х2 через х3:

Аналогично вычисляют прогоночные коэффициенты для любого номера i:

(2.16)

Обратная прогонка состоит в последовательном вычислении неизвестных xi. Сначала нужно найти хп. Для этого воспользуемся выражением (2.14) при i = п –1 и последним уравнением системы (2.13). Запишем их:

Отсюда, исключая хn-1, находим

Далее, используя формулы (2.14) и вычисленные ранее по формулам (2.15), (2.16) прогоночные коэффициенты, последовательно вычисляем все неизвестные хn1, xn-2. 1. Алгоритм решения системы линейных уравнений вида (2.13) методом прогонки приведен на рис. 2.4.

Рис. 2.4. Алгоритм метода прогонки

При анализе алгоритма метода прогонки надо учитывать возможность деления на нуль в формулах (2.15), (2.16). Можно показать, что при выполнении условия преобладания диагональных элементов, т.е. если , причем хотя бы для одного значения iимеет место строгое неравенство, деления на нуль не возникает, и система (2.13) имеет единственное решение.

Приведенное условие преобладания диагональных элементов обеспечивает также устойчивость метода прогонки относительно погрешностей округлений. Последнее обстоятельство позволяет использовать метод прогонки для решения больших систем уравнений. Заметим, что данное условие устойчивости прогонки является достаточным, но не необходимым. В ряде случаев для хорошо обусловленных систем вида (2.13) метод прогонки оказывается устойчивым даже при нарушении условия преобладания диагональных элементов.


источники:

http://www.calc.ru/Resheniye-Sistem-Lineynykh-Uravneniy-Metod-Progonki.html

http://3ys.ru/metody-resheniya-nelinejnykh-uravnenij-i-zadach-linejnoj-algebry/metod-progonki.html