Н.И. Яцкин - Линейная алгебра (Теоремы и алгоритмы) (1109879), страница 94
Текст из файла (страница 94)
1Коды Maple-процедур⎡⎢ 1⎢⎢⎢⎢⎢⎢0⎢⎢⎢⎢⎢⎢ 0⎢⎢⎢0⎢⎢BGJ 2 = ⎢⎢⎢03⎢⎢⎢⎢⎢⎢ 0⎢⎢ 0⎢⎢⎢ 0⎢⎢⎢⎢ 0⎢⎢ 0⎢0⎣00001000010000100001000000000000000000000000⎡⎢ 4⎢3⎢⎢⎢⎢⎢0⎢⎢⎢⎢-1⎢⎢ 3⎢⎢⎢-7⎢⎢ 3F 2 = ⎢⎢ 1⎢3⎢⎢⎢⎢ 3⎢⎢ 0⎢⎢ 0⎢⎢⎢ 0⎢⎢⎢⎢ 0⎢⎢ 0⎢1⎣111214-512-2312512000010-14-14-1414140001001712-14-1112-29121112000000535300-23-8323001000-23-11323010000565-53-530023113-230000002383-23000000141414-14-14000000-1112-145122312-512000000-4 ⎤⎥3 ⎥⎥⎥⎥0 ⎥⎥⎥⎥1 ⎥⎥3 ⎥⎥⎥7 ⎥⎥3 ⎥⎥⎥-1 ⎥⎥⎥3 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎦-17 ⎤⎥12 ⎥⎥1 ⎥⎥⎥4 ⎥⎥⎥11 ⎥⎥12 ⎥⎥⎥29 ⎥⎥12 ⎥⎥⎥-11 ⎥⎥, d 23 = 6⎥12 ⎥⎥1 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎦----------------------------------------------------------------------------------566Коды Maple-процедур---------------------------------------------------------------------------------p1 = 21p1 = 12p1 = 13p1 = 14---------------------------------------------------------------------------------p2 = 31p2 = 22p2 = 13------------------------------------------------------------------------------------------------------------------------------------------------------------------q1 = 11q1 = 02q1 = 03q1 = 14---------------------------------------------------------------------------------q2 = 11q2 = 12q2 = 13-------------------------------------------------------------------------------------------------------------------------------------------------------------------⎡⎢ *⎢*DIAGR 1 = ⎢⎢⎢⎢ *⎢*⎣⎡⎢ *DIAGR 2 = ⎢⎢ *⎢⎢⎣*⎤⎥⎥⎥⎥⎥⎥* ⎥⎦**⎤⎥⎥⎥⎥* ⎥⎦Прил.
1Прил. 1Коды Maple-процедур567---------------------------------------------------------------------------------⎡4⎢⎢3DIAGR 1 = ⎢⎢⎢⎢ 2⎢1⎣⎡⎢8DIAGR 2 = ⎢⎢7⎢⎢⎣6⎤⎥⎥⎥⎥⎥⎥5 ⎥⎦⎤⎥⎥⎥⎥11 ⎥⎦109------------------------------------------------------------------------------------------------------------------------------------------------------------------⎡2⎢⎢⎢⎢0⎢⎢0⎢⎢0⎢⎢⎢0⎢JS = ⎢⎢0⎢⎢⎢0⎢⎢0⎢⎢⎢0⎢⎢⎢⎢0⎢⎣01200000000001200000000001200000000000200000000000-100000000001-100000000001-100000000000-100000000001-100⎤⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥-1 ⎥⎦-------------------------------------------------------------------------------------------------------------------------------------------------------------------⎡0⎢⎢⎢⎢ 0⎢⎢ 1⎢⎢ 0⎢⎢⎢-2⎢M 1 = ⎢⎢ 0⎢⎢4⎢0⎢⎢ 0⎢⎢⎢0⎢⎢⎢⎢ 0⎢⎣ 10010-10000100-110-1-10010010-1-120010000-110-1-1001000010-10000100010-200000110-1-120010000⎤⎥0 ⎥⎥⎥1 ⎥⎥-1 ⎥⎥⎥-2 ⎥⎥⎥0 ⎥⎥,⎥1 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎦568Коды Maple-процедур⎡1⎢⎢⎢⎢0⎢⎢0⎢⎢0⎢⎢⎢0⎢MG 1 = ⎢⎢0⎢⎢4⎢0⎢⎢0⎢⎢⎢0⎢⎢⎢⎢0⎢⎣011000000000⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢H1 = ⎢⎢⎢⎢4⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣11-100000000-100-1000000011-1000000000⎤⎥0 ⎥⎥⎥1 ⎥⎥-1 ⎥⎥⎥-2 ⎥⎥⎥0 ⎥⎥, G1 =⎥41 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎦11000000000⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣Прил.
110000000000-100-100000001⎤⎥0 ⎥⎥⎥0 ⎥⎥-1 ⎥⎥⎥-1 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎦0⎤⎥0 ⎥⎥⎥1 ⎥⎥-1 ⎥⎥⎥-2 ⎥⎥⎥0 ⎥⎥⎥1 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎦---------------------------------------------------------------------------------⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢H1 = [ ], G1 = ⎢⎢⎢⎢33⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣-1 ⎤⎥0 ⎥⎥⎥-1 ⎥⎥1 ⎥⎥⎥1 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥-1 ⎥⎥⎥0 ⎥⎥⎥-1 ⎥⎥⎥-1 ⎥⎦----------------------------------------------------------------------------------Прил. 1Коды Maple-процедур⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢H1 = [ ], G1 = ⎢⎢⎢⎢22⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣569-1 ⎤⎥-1 ⎥⎥⎥0 ⎥⎥1 ⎥⎥⎥0 ⎥⎥⎥-1 ⎥⎥⎥0 ⎥⎥-1 ⎥⎥⎥1 ⎥⎥⎥-1 ⎥⎥⎥-1 ⎥⎦---------------------------------------------------------------------------------⎡-1⎢⎢⎢⎢ 0⎢⎢ 0⎢⎢ 1⎢⎢⎢ 0⎢M 1 = ⎢⎢ 0⎢⎢1⎢0⎢⎢-1⎢⎢⎢0⎢⎢⎢⎢ 0⎢⎣-10010-2000001⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢H1 = ⎢⎢⎢⎢1⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣1⎤⎡-1⎥⎥⎢⎢0⎥⎢⎢ 0⎥⎢⎢ 0-1 ⎥⎥⎥⎢⎢ 0-1 ⎥⎥⎢⎢⎢ 02 ⎥⎥⎥⎥⎢0 ⎥, MG 1 = ⎢⎢ 0⎥⎢⎢10 ⎥⎥⎢0⎥⎢⎢ 01⎥⎥⎥⎢⎢0⎥⎢0⎥⎥⎢⎢0⎥⎢⎢ 0⎥⎥⎢⎣ 00⎦0⎤⎥0 ⎥⎥⎥1 ⎥⎥0 ⎥⎥⎥-2 ⎥⎥⎥0 ⎥⎥, G1 =⎥10 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥1 ⎥⎦⎡-1⎢⎢⎢⎢ 0⎢⎢ 0⎢⎢ 1⎢⎢⎢ 0⎢⎢⎢⎢ 0⎢⎢ 0⎢⎢-1⎢⎢⎢0⎢⎢⎢⎢ 0⎢⎣-1010000000001⎤⎥-1 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎦0⎤⎥0 ⎥⎥⎥1 ⎥⎥0 ⎥⎥⎥-2 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥1 ⎥⎦-------------------------------------------------------------------------------------------------------------------------------------------------------------------570Коды Maple-процедур⎡0⎢⎢⎢⎢⎢⎢ 4⎢⎢17⎢⎢⎢ 9⎢⎢17⎢⎢⎢ -1⎢⎢17⎢M 2 = ⎢⎢ -9⎢⎢3⎢⎢17⎢⎢16⎢⎢17⎢⎢⎢0⎢⎢ 0⎢⎢⎢0⎢⎢⎢⎢ 0⎢⎣ 1430100717317-617-317111700010217-417-261741781701000-517-717-317717-31700100517717-1417-717201710000⎡4⎢⎢⎢⎢17⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ 0⎢MG 2 = ⎢⎢⎢⎢ 03⎢⎢⎢⎢⎢⎢ 0⎢⎢⎢0⎢⎢ 0⎢⎢⎢0⎢⎢⎢⎢ 0⎢⎣ 0-13-7313111214-512-2312512-14-14-1414140000001000100717-34217-12-51714517-14010000-13-23000-1000000000000000000000000Прил.
10-1343-49-43-430000014-47481112-1136-1112-111200000535300-23-8323-23-11323000001000100010000-14516-14-14141400000-17 ⎤⎥12 ⎥⎥1 ⎥⎥⎥4 ⎥⎥⎥11 ⎥⎥12 ⎥⎥⎥29 ⎥⎥12 ⎥⎥⎥-11 ⎥⎥,⎥12 ⎥⎥⎥⎥1 ⎥⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎦00-2353-29-23-2300000-2353-119-83-53000001 ⎤⎥4 ⎥⎥17 ⎥⎥⎥48 ⎥⎥⎥-17 ⎥⎥12 ⎥⎥⎥17 ⎥⎥36 ⎥⎥⎥17 ⎥⎥⎥12 ⎥⎥17 ⎥⎥⎥12 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎦Прил. 1Коды Maple-процедур⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢H2 = ⎢⎢⎢⎢3⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣430-13-7313000001⎤⎡⎥⎥⎢⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎥⎢⎥, G = ⎢⎢⎥⎥ 2 ⎢⎢3⎥⎥⎢⎢⎥⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎦⎢⎣430-13-7313000001571⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦---------------------------------------------------------------------------------⎡ 0⎢⎢⎢⎢ 1⎢⎢⎢⎢⎢ 1⎢⎢⎢⎢⎢ -2⎢⎢⎢⎢⎢⎢ -1⎢⎢M 2 = ⎢⎢⎢⎢ 32⎢⎢⎢⎢ 2⎢⎢ 0⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ 1⎢⎢⎢⎢⎢ 0⎢⎣01-2-13-1343130101-1-40-114-110311000002-22313-830417917-117-9171617000717317-617-3171117001217-417-2617417817010-517-717-317717-317000001010010000 ⎤⎥5 ⎥⎥17 ⎥⎥⎥7 ⎥⎥⎥17 ⎥⎥-14 ⎥⎥⎥17 ⎥⎥⎥-7 ⎥⎥17 ⎥⎥⎥20 ⎥⎥,17 ⎥⎥⎥1 ⎥⎥⎥0 ⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥0 ⎥⎥⎥⎦572Коды Maple-процедур⎡1⎢⎢⎢⎢⎢⎢⎢⎢0⎢⎢⎢0⎢⎢⎢⎢0⎢⎢MG 2 = ⎢⎢⎢⎢02⎢⎢⎢⎢0⎢⎢0⎢⎢0⎢⎢⎢0⎢⎢⎢⎢0⎢⎣0-1323-2-4301-1-20100000000000000000000000⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢H 2 = ⎢⎢⎢2⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣0417917-117-91716170000141771701117-517000000⎡⎢⎢⎢⎢⎤⎥⎢⎢⎥⎥⎥⎢⎢⎥⎥⎢⎢⎢⎥⎥⎥⎢⎢⎥⎥⎢⎢⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎥⎥⎢⎥⎥, G = ⎢⎢⎥ 22 ⎢⎢⎥⎥⎢⎢⎥⎥⎢⎢⎢⎥⎥⎢⎢⎥⎥⎢⎢⎥⎥⎥⎢⎢⎥⎥⎢⎢⎢⎥⎥⎥⎢⎢⎥⎥⎢⎢⎢⎦⎢⎢⎢⎣7178170-217417000000-2-13-134313-12-22313-83Прил.
1217-22171-317617000000-517-13170-1172170000005⎤⎥17 ⎥⎥-4 ⎥⎥⎥17 ⎥⎥⎥0 ⎥⎥1 ⎥⎥⎥17 ⎥⎥⎥-2 ⎥⎥17 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎦0417917-117-917161700⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥1 ⎥⎥⎥⎦----------------------------------------------------------------------------------Прил. 1Коды Maple-процедур⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢M 2 = ⎢⎢⎢⎢1⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣4300-8304343430-430-6175175171217-517-117-617-617-101711170⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢H2 = ⎢⎢⎢⎢1⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣001010-2-1-103121000110001 ⎤⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥⎥⎡⎢41 ⎥⎥⎢⎢3⎥⎥⎢⎥⎢⎢-4 ⎥⎥⎢⎢0⎥⎥⎥⎢⎢⎥⎢⎢0-1 ⎥⎥⎢0⎥⎥⎢⎥⎥, MG 2 = ⎢⎢⎢04⎥1⎢0⎥⎥⎢⎢⎥⎥⎢⎢03⎥⎢0⎥⎥⎢⎢⎥⎥⎢⎢01⎥⎢⎢⎥⎥⎢⎢0⎥⎥⎢⎣00⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥0 ⎥⎦⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢0⎤⎥⎥⎢1⎥⎢⎢⎥⎢⎢1 ⎥⎥⎢⎢-2 ⎥⎥⎢⎢⎥⎥⎢-1 ⎥⎢⎥⎥3 ⎥, G2 = ⎢⎢⎢⎢⎥12 ⎥⎥⎢⎢⎢⎢0 ⎥⎥⎥⎥⎢⎢⎢0⎥⎥⎥⎢⎢1⎥⎢⎢⎥0 ⎥⎦⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣4300-8304343430-430-6175175171217-517-117-617-617-101711170573-6175170000000000010-200000000-1000000001 ⎤⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥-2 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎦0 ⎤⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥⎥-2 ⎥⎥⎥⎥⎥-1 ⎥⎥⎥⎥⎥⎥3 ⎥⎥⎥⎥⎥2 ⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥0 ⎥⎦----------------------------------------------------------------------------------574Коды Maple-процедурПрил.
1---------------------------------------------------------------------------------⎡⎢ -1⎢⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢⎢ 1⎢⎢⎢ 0⎢⎢⎢⎢⎢GS = ⎢⎢ 0⎢⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ -1⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ -1⎣-1-10043-100000-111011-10-8301-2-20-10000010-1-10010000-1-100-43-1-1010-243434343-13-134313-13-7313-1020-202313-83-6175175171217-517-117-617-617-10171117000100417917-117-9171617000010 ⎤⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥⎥-2 ⎥⎥⎥⎥⎥-1 ⎥⎥⎥⎥⎥⎥3 ⎥⎥⎥⎥⎥2 ⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥⎥0 ⎥⎥⎦-------------------------------------------------------------------------------------------------------------------------------------------------------------------⎡2⎢⎢⎢⎢0⎢⎢0⎢⎢0⎢⎢⎢0⎢J = ⎢⎢0⎢⎢⎢0⎢⎢0⎢⎢⎢0⎢⎢⎢⎢0⎢⎣01200000000001200000000001200000000000200000000000-100000000001-100000000001-100000000000-100000000001-100⎤⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥0 ⎥⎥⎥-1 ⎥⎦Прил.
1Коды Maple-процедур⎡⎢ -1⎢⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢⎢ 1⎢⎢⎢ 0⎢⎢⎢⎢⎢T = ⎢⎢ 0⎢⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ -1⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ 0⎢⎢⎢⎢⎢ -1⎣-1-10043-100000-111011-10-8301-2-20-10000010-1-10010000-1-100-43-1-1010-243434357543-13-134313-13-7313-1020-202313-830001-6175175171217-517-117-617-617-1017111700417917-117-9171617000010 ⎤⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥⎥-2 ⎥⎥⎥⎥⎥-1 ⎥⎥⎥⎥⎥⎥3 ⎥⎥⎥⎥⎥2 ⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥0 ⎥⎥⎥⎥⎥⎥1 ⎥⎥⎥⎥⎥0 ⎥⎥⎦-------------------------------------------------------------------------------------------------------------------------------------------------------------------det ( T ) =32007803-------------------------------------------------------------------------------------------------------------------------------------------------------------------576Коды Maple-процедур3.
Пакет процедур Quadro(к ТР3 "Диагонализациясимметрических билинейных (квадратичных)форм "; п. 39.1)> restart;with(LinearAlgebra):> # Пакет Quadro содержит три процедуры# Lagr, Jacob, Signatura;# обеспечивает работу с симметрическими билинейными# (квадратичными) формами, заданными# симметрическими квадратными матрицами.# Реализованы алгоритмы диагонализации Лагранжа и Якоби# (над любым числовым полем),# а также алгоритм нормализации (над полем R).> Quadro[Lagr]:=proc(A::'Matrix'(symmetric))local B,T,E,n,i,j,k,signal,U,U1,V;#####Процедура Lagr, сценарного типа:симметрическая квадратная матрица(отвечающая квадратичной форме)приводится к конгруэнтному диагональному видус помощью метода Лагранжа.n:=RowDimension(A);# Размер матрицы.B:=Matrix(n,A);# Рабочая копия матрицы.E:=IdentityMatrix(n);# Единичная матрица.T:=Matrix(n,E);# Заготовка для матрицы перехода# к диагонализирующему базису.V:=<<1,1>|<-1,1>>;# Вспомогательная матрица (блок);# используется при применении# второго приема Лагранжа.for k from 1 to n-1 do# Цикл по номеру диагонального элемента.print(`k=`||k);Прил.
1Прил. 1Коды Maple-процедур577if not Equal(SubMatrix(B,k..n,k..n),ZeroMatrix(n-k+1)) then# Если юго-восточный блок# (по отношению к данной диагональной позиции)# ненулевой, то - работаем...if Equal(Diagonal(SubMatrix(B,k..n,k..n)),ZeroVector(n-k+1))then# Если диагональ юго-восточного блока нулевая,# то применяем второй прием Лагранжа.if B[k,k+1]=0 then# Если в позиции (k,k+1) находится нуль,# то предварительно переставляем в эту позицию# ненулевой (внедиагональный) элемент.signal:=false;# Сигнал для фиксации обнаружения ненулевого элемента,# с выходом из цикла поиска.for j from k+2 to n doif B[k,j]<>0 then# Ненулевой элемент обнаружен# в текущей строке.signal:=true;break;fi;od;if signal thenU:=ColumnOperation(E,[k+1,j],inplace=false);# Перестановка ненулевого элемента# в нужную позицию.print(`U=`,U);T:=T.U;# Накопление элементарных преобразований# в матрице перехода.B:=Transpose(U).B.U;# Пересчет матрицы квадратичной формы.print(`B=`,B);elsefor j from k+2 to n doif B[k+1,j]<>0 then# Ненулевой элемент обнаружен# в строке, следующей за текущей.signal:=true;break:fi;od;578Коды Maple-процедурif signal thenU:=ColumnOperation(E,[k,k+1],inplace=false);# Перестановка ненулевого элемента# в нужную позицию (первый этап).print(`U=`,U);T:=T.U;# Накопление элементарных преобразований# в матрице перехода.B:=Transpose(U).B.U;# Пересчет матрицы квадратичной формы.print(`B=`,B);U:=ColumnOperation(E,[k+1,j],inplace=false);# Перестановка ненулевого элемента# в нужную позицию (второй этап).print(`U=`,U);T:=T.U;# Накопление элементарных преобразований# в матрице перехода.B:=Transpose(U).B.U;# Пересчет матрицы квадратичной формы.print(`B=`,B);elsefor i from k+2 to n-1 dofor j from i+1 to n doif B[i,j]<>0 then# Ненулевой элемент обнаружен# ниже строки, следующей за текущей.signal:=true;break;fi;od;if signal thenbreak;fi;od;U:=ColumnOperation(E,[k+1,j],inplace=false);# Перестановка ненулевого элемента# в нужную позицию (первый этап).print(`U=`,U);T:=T.U;# Накопление элементарных преобразований# в матрице перехода.B:=Transpose(U).B.U;# Пересчет матрицы квадратичной формы.print(`B=`,B);Прил.