Реферат: Методы решения краевых задач, в том числе жестких краевых задач
--PAGE_BREAK--4 Метод «переноса краевых условий» в произвольную точку интервала интегрированияМетод обсчитан на компьютерах. По нему уже сделано 3 кандидатских физ-мат диссертации.
Метод подходит для любых краевых задач. А для «жестких» краевых задач показано, что метод считает быстрее, чем метод С.К.Годунова до 2-х порядков (в 100 раз), а для некоторых «жестких» краевых задач не требует ортонормирования вовсе. Смотри:
Численный метод переноса краевых условий для жестких дифференциальных уравнений строительной механики
Журнал «ММ», Том: 14 (2002), Номер: 9, 3 стр. 1409-003r.pdf
Полное решение системы дифференциальных уравнений имеет вид
Y(x) = K(x←x<img border=«0» width=«11» height=«24» src=«ref-1_898822939-83.coolpic» v:shapes="_x0000_i1149">) ∙ Y(x<img border=«0» width=«11» height=«24» src=«ref-1_898822939-83.coolpic» v:shapes="_x0000_i1150">) + Y*(x←x<img border=«0» width=«11» height=«24» src=«ref-1_898822939-83.coolpic» v:shapes="_x0000_i1151">) .
Или можно записать:
Y(0) = K(0←x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1152">) ∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1153">) + Y*(0←x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1154">) .
Подставляем это выражение для Y(0) в краевые условия левого края и получаем:
U∙Y(0) = u,
U∙[ K(0←x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1155">) ∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1156">) + Y*(0←x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1157">) ] = u,
[ U∙ K(0←x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1158">) ] ∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1159">) = u— U∙Y*(0←x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1160">) .
Или получаем краевые условия, перенесенные в точку x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1161">:
U<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1162">∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1163">) = u<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1164"> ,
где U<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1165">= [ U∙ K(0←x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1166">) ] и u<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1167">= u— U∙Y*(0←x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1168">) .
Далее запишем аналогично
Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1169">) = K(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1170">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1171">) ∙ Y(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1172">) + Y*(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1173">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1174">)
И подставим это выражение для Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1175">) в перенесенные краевые условия точки x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1176">
U<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1177">∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1178">) = u<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1179">,
U<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1180">∙ [ K(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1181">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1182">) ∙ Y(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1183">) + Y*(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1184">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1185">) ] = u<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1186"> ,
[ U<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1187">∙ K(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1188">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1189">) ] ∙ Y(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1190">) = u<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1191">— U<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1192">∙ Y*(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1193">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1194">) ,
Или получаем краевые условия, перенесенные в точку x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1195">:
U<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1196">∙ Y(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1197">) = u<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1198"> ,
где U<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1199">= [ U<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1200">∙ K(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1201">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1202">) ] и u<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1203">= u<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1204">— U<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1205">∙ Y*(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1206">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1207">) .
И так в точку x<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1208">переносим матричное краевое условие с левого края и таким же образом переносим матричное краевое условие с правого края и получаем:
U<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1209">∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1210">) = u<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1211"> ,
V<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1212">∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1213">) = v<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1214"> .
Из этих двух матричных уравнений с прямоугольными горизонтальными матрицами коэффициентов очевидно получаем одну систему линейных алгебраических уравнений с квадратной матрицей коэффициентов:
<img border=«0» width=«36» height=«51» src=«ref-1_898841842-219.coolpic» v:shapes="_x0000_i1215"> ∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1216">) = <img border=«0» width=«29» height=«51» src=«ref-1_898842139-255.coolpic» v:shapes="_x0000_i1217">.
А в случае «жестких» дифференциальных уравнений предлагается применять построчное ортонормирование матричных краевых условий в процессе их переноса в рассматриваемую точку. Для этого формулы ортонормирования систем линейных алгебраических уравнений можно взять в [Березин, Жидков].
То есть, получив
U<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1218">∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1219">) = u<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1220">,
применяем к этой группе линейных алгебраических уравнений построчное ортонормирование и получаем эквивалентное матричное краевое условие:
U<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1221">∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1222">) = u<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1223">.
И теперь уже в это проортонормированное построчно уравнение подставляем
Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1224">) = K(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1225">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1226">) ∙ Y(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1227">) + Y*(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1228">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1229">) .
И получаем
U<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1230">∙ [ K(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1231">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1232">) ∙ Y(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1233">) + Y*(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1234">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1235">) ] = u<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1236"> ,
[ U<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1237">∙ K(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1238">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1239">) ] ∙ Y(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1240">) = u<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1241">— U<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1242">∙ Y*(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1243">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1244">) ,
Или получаем краевые условия, перенесенные в точку x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1245">:
U<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1246">∙ Y(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1247">) = u<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1248"> ,
где U<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1249">= [ U<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1250">∙ K(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1251">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1252">) ] и u<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1253">= u<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1254">— U<img border=«0» width=«35» height=«25» src=«ref-1_898842628-123.coolpic» v:shapes="_x0000_i1255">∙ Y*(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1256">←x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1257">) .
Теперь уже к этой группе линейных алгебраических уравнений применяем построчное ортонормирование и получаем эквивалентное матричное краевое условие:
U<img border=«0» width=«37» height=«25» src=«ref-1_898846049-124.coolpic» v:shapes="_x0000_i1258">∙ Y(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1259">) = u<img border=«0» width=«37» height=«25» src=«ref-1_898846049-124.coolpic» v:shapes="_x0000_i1260">.
И так далее.
И аналогично поступаем с промежуточными матричными краевыми условиями, переносимыми с правого края в рассматриваемую точку.
В итоге получаем систему линейных алгебраических уравнений с квадратной матрицей коэффициентов, состоящую из двух независимо друг от друга поэтапно проортонормированных матричных краевых условий, которая решается любым известным методом для получения решения Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1261">) в рассматриваемой точке x<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1262">:
<img border=«0» width=«61» height=«56» src=«ref-1_898846536-316.coolpic» v:shapes="_x0000_i1263"> ∙ Y(x<img border=«0» width=«9» height=«23» src=«ref-1_898841296-78.coolpic» v:shapes="_x0000_i1264">) = <img border=«0» width=«55» height=«56» src=«ref-1_898846930-353.coolpic» v:shapes="_x0000_i1265">.
5 Второй вариант метода «переноса краевых условий» в произвольную точку интервала интегрирования
Этот вариант метода еще не обсчитан на компьютерах.
Предложено выполнять интегрирование по формулам теории матриц [Гантмахер] сразу от некоторой внутренней точки интервала интегрирования к краям:
Y(0) = K(0←x) ∙ Y(x) + Y*(0←x) ,
Y(1) = K(1←x) ∙ Y(x) + Y*(1←x) .
Подставим эти формулы в краевые условия и получим:
U∙Y(0) = u,
U∙[ K(0←x) ∙ Y(x) + Y*(0←x) ] = u,
[ U∙ K(0←x) ] ∙ Y(x) = u— U∙Y*(0←x) .
и
V∙Y(1) = v,
V∙[ K(1←x) ∙ Y(x) + Y*(1←x) ] = v,
[ V∙ K(1←x) ] ∙ Y(x) = v— V∙Y*(1←x) .
То есть получаем два матричных уравнения краевых условий, перенесенные в рассматриваемую точку x:
[ U∙ K(0←x) ] ∙ Y(x) = u— U∙Y*(0←x) ,
[ V∙ K(1←x) ] ∙ Y(x) = v— V∙Y*(1←x) .
Эти уравнения аналогично объединяются в одну систему линейных алгебраических уравнений с квадратной матрицей коэффициентов для нахождения решения Y(x) в любой рассматриваемой точке x:
<img border=«0» width=«99» height=«48» src=«ref-1_898847283-410.coolpic» v:shapes="_x0000_i1266"> ∙ Y(x) = <img border=«0» width=«123» height=«61» src=«ref-1_898847693-614.coolpic» v:shapes="_x0000_i1267">.
В случае «жестких» дифференциальных уравнений предлагается следующий алгоритм.
Используем свойство перемножаемости матриц Коши:
K(x<img border=«0» width=«8» height=«23» src=«ref-1_898826205-79.coolpic» v:shapes="_x0000_i1268">←x) = K(x<img border=«0» width=«12» height=«23» src=«ref-1_898827213-79.coolpic» v:shapes="_x0000_i1269">←x<img border=«0» width=«20» height=«19» src=«ref-1_898826446-94.coolpic» v:shapes="_x0000_i1270">) ∙ K(x<img border=«0» width=«20» height=«19» src=«ref-1_898826446-94.coolpic» v:shapes="_x0000_i1271">←x<img border=«0» width=«21» height=«23» src=«ref-1_898826634-95.coolpic» v:shapes="_x0000_i1272">) ∙ … ∙ K(x<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1273">←x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1274">) ∙ K(x<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1275">←x)
и запишем выражения для матриц Коши, например, в виде:
K(0←x) = K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1276">) ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1277">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1278">) ∙ K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1279">←x),
K(1←x) = K(1←x<img border=«0» width=«20» height=«24» src=«ref-1_898849359-95.coolpic» v:shapes="_x0000_i1280">) ∙ K(x<img border=«0» width=«20» height=«24» src=«ref-1_898849359-95.coolpic» v:shapes="_x0000_i1281">←x<img border=«0» width=«20» height=«23» src=«ref-1_898849549-97.coolpic» v:shapes="_x0000_i1282">) ∙ K(x<img border=«0» width=«20» height=«23» src=«ref-1_898849549-97.coolpic» v:shapes="_x0000_i1283">←x<img border=«0» width=«19» height=«23» src=«ref-1_898849743-94.coolpic» v:shapes="_x0000_i1284">) ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898849743-94.coolpic» v:shapes="_x0000_i1285">←x),
Тогда перенесенные краевые условия можно записать в виде:
[ U∙ K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1286">) ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1287">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1288">) ∙ K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1289">←x) ] ∙ Y(x) = u— U∙Y*(0←x) ,
[ V∙ K(1←x<img border=«0» width=«20» height=«24» src=«ref-1_898849359-95.coolpic» v:shapes="_x0000_i1290">) ∙ K(x<img border=«0» width=«20» height=«24» src=«ref-1_898849359-95.coolpic» v:shapes="_x0000_i1291">←x<img border=«0» width=«20» height=«23» src=«ref-1_898849549-97.coolpic» v:shapes="_x0000_i1292">) ∙ K(x<img border=«0» width=«20» height=«23» src=«ref-1_898849549-97.coolpic» v:shapes="_x0000_i1293">←x<img border=«0» width=«19» height=«23» src=«ref-1_898849743-94.coolpic» v:shapes="_x0000_i1294">) ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898849743-94.coolpic» v:shapes="_x0000_i1295">←x) ] ∙ Y(x) = v— V∙Y*(1←x)
или в виде:
[ U∙ K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1296">) ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1297">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1298">) ∙ K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1299">←x) ] ∙ Y(x) = u* ,
[ V∙ K(1←x<img border=«0» width=«20» height=«24» src=«ref-1_898849359-95.coolpic» v:shapes="_x0000_i1300">) ∙ K(x<img border=«0» width=«20» height=«24» src=«ref-1_898849359-95.coolpic» v:shapes="_x0000_i1301">←x<img border=«0» width=«20» height=«23» src=«ref-1_898849549-97.coolpic» v:shapes="_x0000_i1302">) ∙ K(x<img border=«0» width=«20» height=«23» src=«ref-1_898849549-97.coolpic» v:shapes="_x0000_i1303">←x<img border=«0» width=«19» height=«23» src=«ref-1_898849743-94.coolpic» v:shapes="_x0000_i1304">) ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898849743-94.coolpic» v:shapes="_x0000_i1305">←x) ] ∙ Y(x) = v* .
Тогда рассмотрим левое перенесенное краевое условие:
[ U∙ K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1306">) ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1307">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1308">) ∙ K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1309">←x) ] ∙ Y(x) = u* ,
[ U∙ K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1310">) ] ∙ { K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1311">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1312">) ∙ K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1313">←x) ∙ Y(x) } = u* ,
[ матрица ] ∙ { вектор } = вектор .
Эту группу линейных алгебраических уравнений можно подвергнуть построчному ортонормированию, которое сделает строчки [матрицы] ортонормированными, {вектор} затронут не будет, а вектор получит преобразование. То есть получим:
[ U∙ K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1314">) ]<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1315"> ∙ { K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1316">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1317">) ∙ K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1318">←x) ∙ Y(x) } = u*<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1319"> .
Далее последовательно можно записать:
[[ U∙ K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1320">) ]<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1321"> ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1322">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1323">) ] ∙ { K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1324">←x) ∙ Y(x) } = u*<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1325"> ,
[ матрица ] ∙ { вектор } = вектор .
Аналогично и эту группу линейных алгебраических уравнений можно подвергнуть построчному ортонормированию, которое сделает строчки [матрицы] ортонормированными, {вектор} затронут не будет, а вектор получит преобразование. То есть получим:
[[ U∙ K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1326">) ]<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1327"> ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1328">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1329">) ] <img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1330"> ∙ { K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1331">←x) ∙ Y(x) } = u*<img border=«0» width=«37» height=«25» src=«ref-1_898846049-124.coolpic» v:shapes="_x0000_i1332"> ,
Далее аналогично можно записать:
[[[ U∙ K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1333">) ]<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1334"> ∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1335">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1336">) ] <img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1337"> ∙ K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1338">←x) ] ∙ { Y(x) } = u*<img border=«0» width=«37» height=«25» src=«ref-1_898846049-124.coolpic» v:shapes="_x0000_i1339"> ,
[ матрица ] ∙ { вектор} = вектор .
Аналогично и эту группу линейных алгебраических уравнений можно подвергнуть построчному ортонормированию, которое сделает строчки [матрицы] ортонормированными, {вектор} затронут не будет, а вектор получит преобразование. То есть получим:
[[[ U∙ K(0←x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1340">) ]<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1341">∙ K(x<img border=«0» width=«19» height=«23» src=«ref-1_898848987-94.coolpic» v:shapes="_x0000_i1342">←x<img border=«0» width=«17» height=«19» src=«ref-1_898849175-92.coolpic» v:shapes="_x0000_i1343">) ] <img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1344"> ∙ K(x<img border=«0» width=«17» height=«23» src=«ref-1_898849267-92.coolpic» v:shapes="_x0000_i1345">←x) ] <img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1346"> ∙ Y(x) = u*<img border=«0» width=«36» height=«25» src=«ref-1_898855870-124.coolpic» v:shapes="_x0000_i1347"> .
Аналогично можно проортонормировать матричное уравнение краевых условий и для правого края независимо от левого края.
Далее проортонормированные уравнения краевых условий:
[ U∙ K(0←x) ]<img border=«0» width=«36» height=«25» src=«ref-1_898855870-124.coolpic» v:shapes="_x0000_i1348"> ∙ Y(x) = u*<img border=«0» width=«36» height=«25» src=«ref-1_898855870-124.coolpic» v:shapes="_x0000_i1349"> ,
[ V∙ K(1←x) ]<img border=«0» width=«37» height=«25» src=«ref-1_898856242-125.coolpic» v:shapes="_x0000_i1350"> ∙ Y(x) = v*<img border=«0» width=«37» height=«25» src=«ref-1_898856242-125.coolpic» v:shapes="_x0000_i1351">
как и ранее объединяются в одну обычную систему линейных алгебраических уравнений с квадратной матрицей коэффициентов для нахождения искомого вектора Y(x) :
<img border=«0» width=«140» height=«59» src=«ref-1_898856492-600.coolpic» v:shapes="_x0000_i1352">∙ Y(x) = <img border=«0» width=«56» height=«61» src=«ref-1_898857092-389.coolpic» v:shapes="_x0000_i1353">.
продолжение
--PAGE_BREAK--6 Метод дополнительных краевых условий
Этот метод еще не обсчитан на компьютерах.
Запишем на левом крае ещё одно уравнение краевых условий:
M∙ Y(0) = m.
В качестве строк матрицы M можно взять те краевые условия, то есть выражения тех физических параметров, которые не входят в параметры краевых условий левого края L или линейно независимы с ними. Это вполне возможно, так как у краевых задач столько независимых физических параметров какова размерность задачи, а в параметры краевых условий входит только половина физических параметров задачи. То есть, например, если рассматривается задача об оболочке ракеты, то на левом крае могут быть заданы 4 перемещения. Тогда для матрицы М можно взять параметры сил и моментов, которых тоже 4, так как полная размерность такой задачи – 8. Вектор m правой части неизвестен и его надо найти и тогда можно считать, что краевая задача решена, то есть сведена к задаче Коши, то есть найден вектор Y(0) из выражения:
<img border=«0» width=«31» height=«45» src=«ref-1_898857481-200.coolpic» v:shapes="_x0000_i1354"> ∙ Y(0) = <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1355">,
то есть вектор Y(0) находится из решения системы линейных алгебраических уравнений с квадратной невырожденной матрицей коэффициентов, состоящей из блоков U и M.
Аналогично запишем на правом крае ещё одно уравнение краевых условий:
N∙ Y(0) = n,
где матрица N записывается из тех же соображений дополнительных линейно независимых параметров на правом крае, а вектор nнеизвестен.
Для правого края тоже справедлива соответствующая система уравнений:
<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1356"> ∙ Y(1) = <img border=«0» width=«21» height=«45» src=«ref-1_898858067-221.coolpic» v:shapes="_x0000_i1357">.
Запишем Y(1) = K(1←0) ∙Y(0) + Y*(1←0) и подставим в последнюю систему линейных алгебраических уравнений:
<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1358"> ∙ [ K(1←0) ∙Y(0) + Y*(1←0) ] = <img border=«0» width=«21» height=«45» src=«ref-1_898858067-221.coolpic» v:shapes="_x0000_i1359">,
<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1360"> ∙ K(1←0) ∙Y(0) = <img border=«0» width=«21» height=«45» src=«ref-1_898858067-221.coolpic» v:shapes="_x0000_i1361"> — <img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1362"> ∙ Y*(1←0),
<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1363"> ∙ K(1←0) ∙Y(0) = <img border=«0» width=«123» height=«53» src=«ref-1_898859498-599.coolpic» v:shapes="_x0000_i1364"> ,
<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1365"> ∙ K(1←0) ∙Y(0) = <img border=«0» width=«19» height=«45» src=«ref-1_898860289-209.coolpic» v:shapes="_x0000_i1366"> .
Запишем вектор Y(0) через обратную матрицу:
Y(0) =<img border=«0» width=«41» height=«52» src=«ref-1_898860498-237.coolpic» v:shapes="_x0000_i1367"> ∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1368">
и подставим в предыдущую формулу:
<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1369"> ∙ K(1←0) ∙<img border=«0» width=«41» height=«52» src=«ref-1_898860498-237.coolpic» v:shapes="_x0000_i1370"> ∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1371"> = <img border=«0» width=«19» height=«45» src=«ref-1_898860289-209.coolpic» v:shapes="_x0000_i1372">.
Таким образом, мы получили систему уравнений вида:
В ∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1373"> = <img border=«0» width=«19» height=«45» src=«ref-1_898860289-209.coolpic» v:shapes="_x0000_i1374">,
где матрица В известна, векторы u и sизвестны, а векторы mи tнеизвестны.
Разобьем матрицу В на естественные для нашего случая 4 блока и получим:
<img border=«0» width=«80» height=«48» src=«ref-1_898862164-350.coolpic» v:shapes="_x0000_i1375">∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1376"> = <img border=«0» width=«19» height=«45» src=«ref-1_898860289-209.coolpic» v:shapes="_x0000_i1377">,
откуда можем записать, что
В11 ∙ u+ B12 ∙ m= s,
B21 ∙ u+ B22 ∙ m= t.
Следовательно, искомый вектор m вычисляется по формуле:
m= B12<img border=«0» width=«13» height=«23» src=«ref-1_898862917-86.coolpic» v:shapes="_x0000_i1378">∙ (s – B11∙ u).
А искомый вектор n вычисляется через вектор t:
t = B21 ∙ u+ B22 ∙ m,
n= t+ N∙ Y*(1←0).
В случае «жестких» дифференциальных уравнений предлагается выполнять поочередное построчное ортонормирование.
Запишем приведенную выше формулу
<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1379"> ∙ K(1←0) ∙<img border=«0» width=«41» height=«52» src=«ref-1_898860498-237.coolpic» v:shapes="_x0000_i1380"> ∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1381"> = <img border=«0» width=«19» height=«45» src=«ref-1_898860289-209.coolpic» v:shapes="_x0000_i1382">
в виде:
<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1383"> ∙ K(1←x2) ∙ K(x2←x1) ∙ K(x1←0) ∙<img border=«0» width=«41» height=«52» src=«ref-1_898860498-237.coolpic» v:shapes="_x0000_i1384"> ∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1385"> = <img border=«0» width=«19» height=«45» src=«ref-1_898860289-209.coolpic» v:shapes="_x0000_i1386">.
Эту формулу можно записать в виде разделения левой части на произведение матрицы на вектор:
[<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1387"> ∙ K(1←x2) ] ∙ { K(x2←x1) ∙ K(x1←0) ∙<img border=«0» width=«41» height=«52» src=«ref-1_898860498-237.coolpic» v:shapes="_x0000_i1388"> ∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1389"> } = <img border=«0» width=«19» height=«45» src=«ref-1_898860289-209.coolpic» v:shapes="_x0000_i1390">
[ матрица ] ∙ { вектор } = вектор
Эту группу линейных алгебраических уравнений можно подвергнуть построчному ортонормированию, которое сделает строчки [матрицы] ортонормированными, {вектор} затронут не будет, а вектор получит преобразование. То есть получим:
[<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1391"> ∙ K(1←x2) ]<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1392"> { K(x2←x1) ∙ K(x1←0) ∙<img border=«0» width=«41» height=«52» src=«ref-1_898860498-237.coolpic» v:shapes="_x0000_i1393"> ∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1394"> } = <img border=«0» width=«20» height=«45» src=«ref-1_898866231-226.coolpic» v:shapes="_x0000_i1395"><img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1396">
Здесь следует сказать, что подвектор t подвергать преобразованию не нужно, так как невозможно, так как его первоначальное значение не известно. Но подвектор t нам оказывается и не нужен для решения задачи.
Далее запишем:
[[<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1397"> ∙ K(1←x2) ]<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1398"> ∙ K(x2←x1)] { K(x1←0) ∙<img border=«0» width=«41» height=«52» src=«ref-1_898860498-237.coolpic» v:shapes="_x0000_i1399"> ∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1400"> } = <img border=«0» width=«20» height=«45» src=«ref-1_898866231-226.coolpic» v:shapes="_x0000_i1401"><img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1402">
[ матрица ] { вектор } = вектор
Аналогично и эту группу линейных алгебраических уравнений можно подвергнуть построчному ортонормированию, которое сделает строчки [матрицы] ортонормированными, {вектор} затронут не будет, а вектор получит преобразование. То есть получим:
[[<img border=«0» width=«28» height=«45» src=«ref-1_898857875-192.coolpic» v:shapes="_x0000_i1403"> ∙ K(1←x2) ]<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1404"> K(x2←x1)] <img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1405"> { K(x1←0) ∙<img border=«0» width=«41» height=«52» src=«ref-1_898860498-237.coolpic» v:shapes="_x0000_i1406"><img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1407"> } = <img border=«0» width=«20» height=«45» src=«ref-1_898866231-226.coolpic» v:shapes="_x0000_i1408"><img border=«0» width=«37» height=«25» src=«ref-1_898846049-124.coolpic» v:shapes="_x0000_i1409">.
И так далее.
В результате поочередного ортонормирования получим:
В<img border=«0» width=«23» height=«25» src=«ref-1_898868824-103.coolpic» v:shapes="_x0000_i1410"> ∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1411"> = <img border=«0» width=«19» height=«45» src=«ref-1_898860289-209.coolpic» v:shapes="_x0000_i1412"><img border=«0» width=«23» height=«25» src=«ref-1_898868824-103.coolpic» v:shapes="_x0000_i1413">,
<img border=«0» width=«80» height=«48» src=«ref-1_898862164-350.coolpic» v:shapes="_x0000_i1414"><img border=«0» width=«23» height=«25» src=«ref-1_898868824-103.coolpic» v:shapes="_x0000_i1415">∙ <img border=«0» width=«25» height=«45» src=«ref-1_898857681-194.coolpic» v:shapes="_x0000_i1416"> = <img border=«0» width=«19» height=«45» src=«ref-1_898860289-209.coolpic» v:shapes="_x0000_i1417"><img border=«0» width=«23» height=«25» src=«ref-1_898868824-103.coolpic» v:shapes="_x0000_i1418"> .
Следовательно, искомый вектор m вычисляется по формуле:
m= B12<img border=«0» width=«23» height=«29» src=«ref-1_898870392-121.coolpic» v:shapes="_x0000_i1419"> ∙ (s<img border=«0» width=«23» height=«25» src=«ref-1_898868824-103.coolpic» v:shapes="_x0000_i1420"> – B11<img border=«0» width=«23» height=«25» src=«ref-1_898868824-103.coolpic» v:shapes="_x0000_i1421">∙ u).
7 Формула для начала счета методом прогонки С.К.Годунова
Эта формула обсчитана на компьютерах в кандидатской диссертации.
Рассмотрим проблему метода прогонки С.К.Годунова.
редположим, что рассматривается оболочка ракеты. Это тонкостенная труба. Тогда система линейных обыкновенных дифференциальных уравнений будет 8-го порядка, матрица A(x) коэффициентов будет иметь размерность 8х8, искомая вектор-функция Y(x) будет иметь размерность 8х1, а матрицы краевых условий будут прямоугольными горизонтальными размерности 4х8.
Тогда в методе прогонки С.К.Годунова для такой задачи решение ищется в следующем виде:
Y(x) = Y<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1422">(x) c<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1423"> + Y<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1424">(x) c<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1425"> + Y<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1426">(x) c<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1427"> + Y<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1428">(x) c<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1429"> + Y*(x),
или можно записать в матричном виде:
Y(x) = Y<img border=«0» width=«48» height=«25» src=«ref-1_898871377-134.coolpic» v:shapes="_x0000_i1430">(x) ∙ c + Y*(x),
где векторы Y<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1431">(x), Y<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1432">(x), Y<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1433">(x), Y<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1434">(x) – это линейно независимые вектора-решения однородной системы дифференциальных уравнений, а вектор Y*(x) – это вектор частного решения неоднородной системы дифференциальных уравнений.
Здесь Y<img border=«0» width=«48» height=«25» src=«ref-1_898871377-134.coolpic» v:shapes="_x0000_i1435">(x)=|| Y<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1436">(x), Y<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1437">(x), Y<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1438">(x), Y<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1439">(x) || это матрица размерности 8х4, а c это соответствующий вектор размерности 4х1из искомых констант c<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1440">,c<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1441">,c<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1442">,c<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1443">.
Но вообще то решение для такой краевой задачи с размерностью 8 (вне рамок метода прогонки С.К.Годунова) может состоять не из 4 линейно независимых векторов Y<img border=«0» width=«8» height=«23» src=«ref-1_898826205-79.coolpic» v:shapes="_x0000_i1444">(x), а полностью из всех 8 линейно независимых векторов-решений однородной системы дифференциальных уравнений:
Y(x)=Y<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1445">(x)c<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1446">+Y<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1447">(x)c<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1448">+Y<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1449">(x)c<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1450">+Y<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1451">(x)c<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1452">+
+Y<img border=«0» width=«11» height=«24» src=«ref-1_898873369-81.coolpic» v:shapes="_x0000_i1453">(x)c<img border=«0» width=«11» height=«24» src=«ref-1_898873369-81.coolpic» v:shapes="_x0000_i1454">+Y<img border=«0» width=«11» height=«24» src=«ref-1_898873531-83.coolpic» v:shapes="_x0000_i1455">(x)c<img border=«0» width=«11» height=«24» src=«ref-1_898873531-83.coolpic» v:shapes="_x0000_i1456">+Y<img border=«0» width=«11» height=«24» src=«ref-1_898873697-83.coolpic» v:shapes="_x0000_i1457">(x)c<img border=«0» width=«11» height=«24» src=«ref-1_898873697-83.coolpic» v:shapes="_x0000_i1458">+Y<img border=«0» width=«11» height=«24» src=«ref-1_898873863-83.coolpic» v:shapes="_x0000_i1459">(x)c<img border=«0» width=«11» height=«24» src=«ref-1_898873863-83.coolpic» v:shapes="_x0000_i1460">+Y*(x),
И как раз трудность и проблема метода прогонки С.К.Годунова и состоит в том, что решение ищется только с половиной возможных векторов и констант и проблема в том, что такое решение с половиной констант должно удовлетворять условиям на левом крае (стартовом для прогонки) при всех возможных значениях констант, чтобы потом найти эти константы из условий на правом крае.
То есть в методе прогонки С.К.Годунова есть проблема нахождения таких начальных значений Y<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1461">(0), Y<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1462">(0), Y<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1463">(0), Y<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1464">(0), Y*(0) векторов Y<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1465">(x), Y<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1466">(x), Y<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1467">(x), Y<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1468">(x), Y*(x), чтобы можно было начать прогонку с левого края x=0, то есть чтобы удовлетворялись условия U∙Y(0) = uна левом крае при любых значениях констант c<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1469">,c<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1470">,c<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1471">,c<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1472">.
Обычно эта трудность «преодолевается» тем, что дифференциальные уравнения записываются не через функционалы, а через физические параметры и рассматриваются самые простейшие условия на простейшие физические параметры, чтобы начальные значения Y<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1473">(0), Y<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1474">(0), Y<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1475">(0), Y<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1476">(0), Y*(0) можно было угадать. То есть задачи со сложными краевыми условиями так решать нельзя: например, задачи с упругими условиями на краях.
Ниже предлагается формула для начала вычислений методом прогонки С.К.Годунова.
Выполним построчное ортонормирование матричного уравнения краевых условий на левом крае:
U∙Y(0) = u,
где матрица U прямоугольная и горизонтальная размерности 4х8.
В результате получим эквивалентное уравнение краевых условий на левом крае, но уже с прямоугольной горизонтальной матрицей U<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1477"> размерности 4х8, у которой будут 4 ортонормированные строки:
U<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1478">∙Y(0) = u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1479">,
где в результате ортонормирования вектор u преобразован в вектор u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1480">.
Как выполнять построчное ортонормирование систем линейных алгебраических уравнений можно посмотреть в [Березин, Жидков].
Дополним прямоугольную горизонтальную матрицу U<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1481"> до квадратной невырожденной матрицы W:
W= <img border=«0» width=«55» height=«53» src=«ref-1_898875890-284.coolpic» v:shapes="_x0000_i1482">,
где матрица М размерности 4х8 должна достраивать матрицу U<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1483"> до невырожденной квадратной матрицы W размерности 8х8.
В качестве строк матрицы М можно взять те краевые условия, то есть выражения тех физических параметров, которые не входят в параметры левого края или линейно независимы с ними. Это вполне возможно, так как у краевых задач столько независимых физических параметров какова размерность задачи, то есть в данном случае их 8 штук и если 4 заданы на левом крае, то ещё 4 можно взять с правого края.
Завершим ортонормирование построенной матрицы W, то есть выполним построчное ортонормирование и получим матрицу W<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1484"> размерности 8х8 с ортонормированными строками:
W<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1485"> = <img border=«0» width=«57» height=«56» src=«ref-1_898876501-313.coolpic» v:shapes="_x0000_i1486">.
Можем записать, что
Y<img border=«0» width=«48» height=«25» src=«ref-1_898871377-134.coolpic» v:shapes="_x0000_i1487">(0) = (М<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1488">)транспонированная = М<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1489">.
Тогда, подставив в формулу метода прогонки С.К.Годунова, получим:
Y(0) = Y<img border=«0» width=«48» height=«25» src=«ref-1_898871377-134.coolpic» v:shapes="_x0000_i1490">(0) ∙с + Y*(0)
или
Y(0) = М<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1491">∙с + Y*(0).
Подставим эту последнюю формулу в краевые условия U<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1492">∙Y(0) = u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1493"> и получим:
U<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1494">∙ [ М<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1495">∙с + Y*(0) ]= u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1496">.
Отсюда получаем, что на левом крае константы c уже не на что не влияют, так как
U<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1497">∙ М<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1498"> = 0 и остается только найти Y*(0) из выражения:
U<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1499">∙ Y*(0) = u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1500">.
Но матрица U<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1501"> имеет размерность 4х8 и её надо дополнить до квадратной невырожденной, чтобы найти вектор Y*(0) из решения соответствующей системы линейных алгебраических уравнений:
<img border=«0» width=«57» height=«56» src=«ref-1_898876501-313.coolpic» v:shapes="_x0000_i1502">∙ Y*(0) = <img border=«0» width=«48» height=«53» src=«ref-1_898878908-274.coolpic» v:shapes="_x0000_i1503">,
где 0 – любой вектор, в том числе вектор из нулей.
Отсюда получаем при помощи обратной матрицы:
Y*(0) = <img border=«0» width=«71» height=«60» src=«ref-1_898879182-367.coolpic» v:shapes="_x0000_i1504">∙ <img border=«0» width=«48» height=«53» src=«ref-1_898878908-274.coolpic» v:shapes="_x0000_i1505">,
Тогда итоговая формула для начала вычислений методом прогонки С.К.Годунова имеет вид:
Y(0) = М<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1506">∙с + <img border=«0» width=«71» height=«60» src=«ref-1_898879182-367.coolpic» v:shapes="_x0000_i1507">∙ <img border=«0» width=«48» height=«53» src=«ref-1_898878908-274.coolpic» v:shapes="_x0000_i1508">.
продолжение
--PAGE_BREAK--8 Второй алгоритм для начала счета методом прогонки С.К.Годунова
Этот алгоритм обсчитан на компьютерах в кандидатской диссертации.
Этот алгоритм требует дополнения матрицы краевых условий Uдо квадратной невырожденной:
<img border=«0» width=«31» height=«45» src=«ref-1_898857481-200.coolpic» v:shapes="_x0000_i1509">
Начальные значения Y<img border=«0» width=«9» height=«23» src=«ref-1_898826812-78.coolpic» v:shapes="_x0000_i1510">(0), Y<img border=«0» width=«11» height=«23» src=«ref-1_898826729-83.coolpic» v:shapes="_x0000_i1511">(0), Y<img border=«0» width=«11» height=«24» src=«ref-1_898871041-83.coolpic» v:shapes="_x0000_i1512">(0), Y<img border=«0» width=«11» height=«23» src=«ref-1_898871207-85.coolpic» v:shapes="_x0000_i1513">(0), Y*(0) находятся из решения следующих систем линейных алгебраических уравнений:
<img border=«0» width=«31» height=«45» src=«ref-1_898857481-200.coolpic» v:shapes="_x0000_i1514">∙ Y*(0) = <img border=«0» width=«21» height=«45» src=«ref-1_898881326-190.coolpic» v:shapes="_x0000_i1515">,
<img border=«0» width=«31» height=«45» src=«ref-1_898857481-200.coolpic» v:shapes="_x0000_i1516">∙ Y<img border=«0» width=«8» height=«23» src=«ref-1_898826205-79.coolpic» v:shapes="_x0000_i1517">(0) = <img border=«0» width=«20» height=«45» src=«ref-1_898881795-183.coolpic» v:shapes="_x0000_i1518">, где i = <img border=«0» width=«17» height=«96» src=«ref-1_898881978-202.coolpic» v:shapes="_x0000_i1519">, <img border=«0» width=«17» height=«96» src=«ref-1_898882180-204.coolpic» v:shapes="_x0000_i1520">, <img border=«0» width=«17» height=«96» src=«ref-1_898882384-203.coolpic» v:shapes="_x0000_i1521">, <img border=«0» width=«17» height=«96» src=«ref-1_898882587-201.coolpic» v:shapes="_x0000_i1522">,
где 0 – вектор из нулей размерности 4х1.
9 Замена метода численного интегрирования Рунге-Кутта в методе прогонки С.К.Годунова
Эта замена формул Рунге-Кутта на формулу теории матриц обсчитана на компьютерах в кандидатской диссертации.
В методе С.К.Годунова как показано выше решение ищется в виде:
Y(x) = Y<img border=«0» width=«48» height=«25» src=«ref-1_898871377-134.coolpic» v:shapes="_x0000_i1523">(x) ∙ c + Y*(x).
На каждом конкретном участке метода прогонки С.К.Годунова между точками ортогонализации можно вместо метода Рунге-Кутта пользоваться теорией матриц и выполнять расчет через матрицу Коши:
Y<img border=«0» width=«48» height=«25» src=«ref-1_898871377-134.coolpic» v:shapes="_x0000_i1524">(x<img border=«0» width=«9» height=«25» src=«ref-1_898829055-81.coolpic» v:shapes="_x0000_i1525">) = K(x<img border=«0» width=«9» height=«25» src=«ref-1_898829055-81.coolpic» v:shapes="_x0000_i1526">— x<img border=«0» width=«8» height=«23» src=«ref-1_898826205-79.coolpic» v:shapes="_x0000_i1527">) ∙Y<img border=«0» width=«48» height=«25» src=«ref-1_898871377-134.coolpic» v:shapes="_x0000_i1528">(x<img border=«0» width=«8» height=«23» src=«ref-1_898826205-79.coolpic» v:shapes="_x0000_i1529">).
Так выполнять вычисления быстрее, особенно для дифференциальных уравнений с постоянными коэффициентами.
И аналогично через теорию матриц можно вычислять и вектор Y*(x) частного решения неоднородной системы дифференциальных уравнений. Или для этого вектора отдельно можно использовать метод Рунге-Кутта, то есть можно комбинировать теорию матриц и метод Рунге-Кутта.
10 Метод половины констант
Этот метод пока не обсчитан на компьютерах.
Выше было показано, что решение системы линейных обыкновенных дифференциальных уравнений можно искать в виде только с половиной возможных векторов и констант. Была приведена формула для начала вычислений:
Y(0) = М<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1530">∙с + <img border=«0» width=«71» height=«60» src=«ref-1_898879182-367.coolpic» v:shapes="_x0000_i1531">∙ <img border=«0» width=«48» height=«53» src=«ref-1_898878908-274.coolpic» v:shapes="_x0000_i1532">.
Из теории матриц известно, что если матрица ортонормирована, то её обратная матрица есть её транспонированная матрица. Тогда последняя формула приобретает вид:
Y(0) = М<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1533">∙с + U<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1534">∙u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1535">
или
Y(0) = U<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1536">∙u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1537"> + М<img border=«0» width=«28» height=«29» src=«ref-1_898877057-133.coolpic» v:shapes="_x0000_i1538">∙с
или
Y(0) = <img border=«0» width=«108» height=«35» src=«ref-1_898885034-308.coolpic» v:shapes="_x0000_i1539"> ∙ <img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1540">,
Таким образом записана в матричном виде формула для начала счета с левого края, когда на левом крае удовлетворены краевые условия.
Далее запишем V∙Y(1) = v и Y(1) = K(1←0) ∙Y(0) + Y*(1←0) совместно:
V∙ [ K(1←0) ∙Y(0) + Y*(1←0) ] = v
V∙ K(1←0) ∙Y(0) = v— V∙Y*(1←0)
и подставим в эту формулу выражение для Y(0):
V∙ K(1←0) ∙<img border=«0» width=«108» height=«35» src=«ref-1_898885034-308.coolpic» v:shapes="_x0000_i1541"> ∙ <img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1542">= v— V∙Y*(1←0).
V∙ K(1←0) ∙<img border=«0» width=«108» height=«35» src=«ref-1_898885034-308.coolpic» v:shapes="_x0000_i1543"> ∙ <img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1544">= p.
Таким образом мы получили выражение вида:
D∙ <img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1545">= p,
где матрица D имеет размерность 4х8 и может быть естественно представлена в виде двух квадратных блоков размерности 4х4:
<img border=«0» width=«67» height=«27» src=«ref-1_898887150-193.coolpic» v:shapes="_x0000_i1546"> ∙ <img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1547">= p.
Тогда можем записать:
D1∙ u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1548"> + D2 ∙ c= p.
Отсюда получаем, что:
c= D2<img border=«0» width=«13» height=«23» src=«ref-1_898862917-86.coolpic» v:shapes="_x0000_i1549"> ∙ ( p— D1∙ u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1550"> )
Таким образом, искомые константы найдены.
Далее показано как применять этот метод для решения «жестких» краевых задач.
Запишем
V∙ K(1←0) ∙<img border=«0» width=«108» height=«35» src=«ref-1_898885034-308.coolpic» v:shapes="_x0000_i1551"> ∙ <img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1552">= p.
совместно с K(1←0) = K(1←x2) ∙ K(x2←x1) ∙ K(x1←0) и получим:
V∙ K(1←x2) ∙ K(x2←x1) ∙ K(x1←0) ∙<img border=«0» width=«108» height=«35» src=«ref-1_898885034-308.coolpic» v:shapes="_x0000_i1553"> ∙ <img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1554">= p.
Эту систему линейных алгебраических уравнений можно представить в виде:
[ V∙ K(1←x2) ] ∙ { K(x2←x1) ∙ K(x1←0) ∙<img border=«0» width=«108» height=«35» src=«ref-1_898885034-308.coolpic» v:shapes="_x0000_i1555"> ∙ <img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1556"> } = p.
[ матрица ] ∙ { вектор } = вектор
Эту группу линейных алгебраических уравнений можно подвергнуть построчному ортонормированию, которое сделает строчки [матрицы] ортонормированными, {вектор} затронут не будет, а вектор получит преобразование. То есть получим:
[ V∙ K(1←x2) ] <img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1557">{K(x2←x1) ∙ K(x1←0) ∙<img border=«0» width=«108» height=«35» src=«ref-1_898885034-308.coolpic» v:shapes="_x0000_i1558"><img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1559"> } =p<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1560">.
И так далее.
В итоге поочередного вычленений матриц слева из вектора и ортонормирования получим систему:
D<img border=«0» width=«55» height=«25» src=«ref-1_898890587-145.coolpic» v:shapes="_x0000_i1561"> ∙ <img border=«0» width=«48» height=«53» src=«ref-1_898885342-298.coolpic» v:shapes="_x0000_i1562">= p<img border=«0» width=«55» height=«25» src=«ref-1_898890587-145.coolpic» v:shapes="_x0000_i1563">,
Отсюда получаем, что:
c= D2<img border=«0» width=«55» height=«29» src=«ref-1_898891175-176.coolpic» v:shapes="_x0000_i1564"> ∙ (p<img border=«0» width=«55» height=«25» src=«ref-1_898890587-145.coolpic» v:shapes="_x0000_i1565"> — D1<img border=«0» width=«55» height=«25» src=«ref-1_898890587-145.coolpic» v:shapes="_x0000_i1566">∙ u<img border=«0» width=«28» height=«25» src=«ref-1_898852657-109.coolpic» v:shapes="_x0000_i1567">)
Таким образом, искомые константы найдены.
11 Применяемые формулы ортонормирования
Эти формулы обсчитаны в кандидатской диссертации.
Взято из: Березин И.С., Жидков Н.П. Методы вычислений, том II, Государственное издательство физико-математической литературы, Москва, 1962 г. 635 стр.
Пусть дана система линейных алгебраических уравнений порядка n:
А<img border=«0» width=«13» height=«23» src=«ref-1_898891750-89.coolpic» v:shapes="_x0000_i1568">=<img border=«0» width=«13» height=«23» src=«ref-1_898891839-92.coolpic» v:shapes="_x0000_i1569">.
Здесь над векторами поставим черточки вместо их обозначения жирным шрифтом.
Будем рассматривать строки матрицы А системы как векторы:
<img border=«0» width=«23» height=«32» src=«ref-1_898891931-212.coolpic» v:shapes="_x0000_i1570">=(<img border=«0» width=«28» height=«29» src=«ref-1_898892143-213.coolpic» v:shapes="_x0000_i1571">,<img border=«0» width=«31» height=«29» src=«ref-1_898892356-214.coolpic» v:shapes="_x0000_i1572">,…,<img border=«0» width=«31» height=«29» src=«ref-1_898892570-213.coolpic» v:shapes="_x0000_i1573">).
Ортонормируем эту систему векторов.
Первое уравнение системы А<img border=«0» width=«13» height=«23» src=«ref-1_898891750-89.coolpic» v:shapes="_x0000_i1574">=<img border=«0» width=«13» height=«23» src=«ref-1_898891839-92.coolpic» v:shapes="_x0000_i1575"> делим на <img border=«0» width=«67» height=«64» src=«ref-1_898892964-492.coolpic» v:shapes="_x0000_i1576">.
При этом получим:
<img border=«0» width=«29» height=«28» src=«ref-1_898893456-193.coolpic» v:shapes="_x0000_i1577"><img border=«0» width=«23» height=«28» src=«ref-1_898893649-191.coolpic» v:shapes="_x0000_i1578">+<img border=«0» width=«31» height=«28» src=«ref-1_898893840-194.coolpic» v:shapes="_x0000_i1579"><img border=«0» width=«25» height=«28» src=«ref-1_898894034-195.coolpic» v:shapes="_x0000_i1580">+…+<img border=«0» width=«29» height=«29» src=«ref-1_898894229-194.coolpic» v:shapes="_x0000_i1581"><img border=«0» width=«27» height=«29» src=«ref-1_898894423-196.coolpic» v:shapes="_x0000_i1582">=<img border=«0» width=«25» height=«28» src=«ref-1_898894619-220.coolpic» v:shapes="_x0000_i1583">, <img border=«0» width=«21» height=«31» src=«ref-1_898894839-188.coolpic» v:shapes="_x0000_i1584">=(<img border=«0» width=«29» height=«28» src=«ref-1_898893456-193.coolpic» v:shapes="_x0000_i1585">,<img border=«0» width=«31» height=«28» src=«ref-1_898893840-194.coolpic» v:shapes="_x0000_i1586">,…,<img border=«0» width=«29» height=«29» src=«ref-1_898894229-194.coolpic» v:shapes="_x0000_i1587">),
где <img border=«0» width=«31» height=«29» src=«ref-1_898895608-196.coolpic» v:shapes="_x0000_i1588">=<img border=«0» width=«69» height=«89» src=«ref-1_898895804-601.coolpic» v:shapes="_x0000_i1589">, <img border=«0» width=«25» height=«28» src=«ref-1_898894619-220.coolpic» v:shapes="_x0000_i1590">=<img border=«0» width=«69» height=«89» src=«ref-1_898896625-618.coolpic» v:shapes="_x0000_i1591">, <img border=«0» width=«53» height=«59» src=«ref-1_898897243-377.coolpic» v:shapes="_x0000_i1592">=1.
Второе уравнение системы заменяется на:
<img border=«0» width=«31» height=«28» src=«ref-1_898897620-195.coolpic» v:shapes="_x0000_i1593"><img border=«0» width=«23» height=«28» src=«ref-1_898893649-191.coolpic» v:shapes="_x0000_i1594">+<img border=«0» width=«32» height=«28» src=«ref-1_898898006-198.coolpic» v:shapes="_x0000_i1595"><img border=«0» width=«25» height=«28» src=«ref-1_898894034-195.coolpic» v:shapes="_x0000_i1596">+…+<img border=«0» width=«33» height=«29» src=«ref-1_898898399-200.coolpic» v:shapes="_x0000_i1597"><img border=«0» width=«27» height=«29» src=«ref-1_898894423-196.coolpic» v:shapes="_x0000_i1598">=<img border=«0» width=«28» height=«28» src=«ref-1_898898795-226.coolpic» v:shapes="_x0000_i1599">, <img border=«0» width=«24» height=«31» src=«ref-1_898899021-190.coolpic» v:shapes="_x0000_i1600">=(<img border=«0» width=«31» height=«28» src=«ref-1_898897620-195.coolpic» v:shapes="_x0000_i1601">,<img border=«0» width=«32» height=«28» src=«ref-1_898898006-198.coolpic» v:shapes="_x0000_i1602">,…,<img border=«0» width=«33» height=«29» src=«ref-1_898898399-200.coolpic» v:shapes="_x0000_i1603">),
где <img border=«0» width=«33» height=«29» src=«ref-1_898899804-203.coolpic» v:shapes="_x0000_i1604">=<img border=«0» width=«71» height=«96» src=«ref-1_898900007-596.coolpic» v:shapes="_x0000_i1605">, <img border=«0» width=«28» height=«28» src=«ref-1_898898795-226.coolpic» v:shapes="_x0000_i1606">=<img border=«0» width=«71» height=«96» src=«ref-1_898900829-628.coolpic» v:shapes="_x0000_i1607">,
<img border=«0» width=«33» height=«36» src=«ref-1_898901457-226.coolpic» v:shapes="_x0000_i1608">=<img border=«0» width=«35» height=«29» src=«ref-1_898901683-224.coolpic» v:shapes="_x0000_i1609">-(<img border=«0» width=«27» height=«31» src=«ref-1_898901907-216.coolpic» v:shapes="_x0000_i1610">,<img border=«0» width=«21» height=«31» src=«ref-1_898894839-188.coolpic» v:shapes="_x0000_i1611">)<img border=«0» width=«31» height=«29» src=«ref-1_898895608-196.coolpic» v:shapes="_x0000_i1612">, <img border=«0» width=«28» height=«35» src=«ref-1_898902507-242.coolpic» v:shapes="_x0000_i1613">=<img border=«0» width=«25» height=«28» src=«ref-1_898902749-217.coolpic» v:shapes="_x0000_i1614">-(<img border=«0» width=«27» height=«31» src=«ref-1_898901907-216.coolpic» v:shapes="_x0000_i1615">,<img border=«0» width=«21» height=«31» src=«ref-1_898894839-188.coolpic» v:shapes="_x0000_i1616">)<img border=«0» width=«25» height=«28» src=«ref-1_898894619-220.coolpic» v:shapes="_x0000_i1617">.
Аналогично поступаем дальше. Уравнение с номером i примет вид:
<img border=«0» width=«27» height=«29» src=«ref-1_898903590-189.coolpic» v:shapes="_x0000_i1618"><img border=«0» width=«23» height=«28» src=«ref-1_898893649-191.coolpic» v:shapes="_x0000_i1619">+<img border=«0» width=«29» height=«29» src=«ref-1_898903970-190.coolpic» v:shapes="_x0000_i1620"><img border=«0» width=«25» height=«28» src=«ref-1_898894034-195.coolpic» v:shapes="_x0000_i1621">+…+<img border=«0» width=«28» height=«29» src=«ref-1_898904355-191.coolpic» v:shapes="_x0000_i1622"><img border=«0» width=«27» height=«29» src=«ref-1_898894423-196.coolpic» v:shapes="_x0000_i1623">=<img border=«0» width=«24» height=«29» src=«ref-1_898904742-216.coolpic» v:shapes="_x0000_i1624">, <img border=«0» width=«21» height=«32» src=«ref-1_898904958-187.coolpic» v:shapes="_x0000_i1625">=(<img border=«0» width=«27» height=«29» src=«ref-1_898903590-189.coolpic» v:shapes="_x0000_i1626">,<img border=«0» width=«29» height=«29» src=«ref-1_898903970-190.coolpic» v:shapes="_x0000_i1627">,…,<img border=«0» width=«28» height=«29» src=«ref-1_898904355-191.coolpic» v:shapes="_x0000_i1628">),
где <img border=«0» width=«29» height=«29» src=«ref-1_898905715-193.coolpic» v:shapes="_x0000_i1629">=<img border=«0» width=«69» height=«96» src=«ref-1_898905908-588.coolpic» v:shapes="_x0000_i1630">, <img border=«0» width=«24» height=«29» src=«ref-1_898904742-216.coolpic» v:shapes="_x0000_i1631">=<img border=«0» width=«69» height=«96» src=«ref-1_898906712-613.coolpic» v:shapes="_x0000_i1632">,
<img border=«0» width=«29» height=«36» src=«ref-1_898907325-214.coolpic» v:shapes="_x0000_i1633">=<img border=«0» width=«31» height=«29» src=«ref-1_898907539-216.coolpic» v:shapes="_x0000_i1634">-(<img border=«0» width=«23» height=«32» src=«ref-1_898891931-212.coolpic» v:shapes="_x0000_i1635">,<img border=«0» width=«21» height=«31» src=«ref-1_898894839-188.coolpic» v:shapes="_x0000_i1636">)<img border=«0» width=«31» height=«29» src=«ref-1_898895608-196.coolpic» v:shapes="_x0000_i1637">-(<img border=«0» width=«23» height=«32» src=«ref-1_898891931-212.coolpic» v:shapes="_x0000_i1638">,<img border=«0» width=«24» height=«31» src=«ref-1_898899021-190.coolpic» v:shapes="_x0000_i1639">)<img border=«0» width=«33» height=«29» src=«ref-1_898899804-203.coolpic» v:shapes="_x0000_i1640">-…-(<img border=«0» width=«23» height=«32» src=«ref-1_898891931-212.coolpic» v:shapes="_x0000_i1641">,<img border=«0» width=«37» height=«32» src=«ref-1_898909168-212.coolpic» v:shapes="_x0000_i1642">)<img border=«0» width=«51» height=«31» src=«ref-1_898909380-224.coolpic» v:shapes="_x0000_i1643">,
<img border=«0» width=«25» height=«36» src=«ref-1_898909604-239.coolpic» v:shapes="_x0000_i1644">=<img border=«0» width=«21» height=«29» src=«ref-1_898909843-206.coolpic» v:shapes="_x0000_i1645">-(<img border=«0» width=«23» height=«32» src=«ref-1_898891931-212.coolpic» v:shapes="_x0000_i1646">,<img border=«0» width=«21» height=«31» src=«ref-1_898894839-188.coolpic» v:shapes="_x0000_i1647">)<img border=«0» width=«25» height=«28» src=«ref-1_898894619-220.coolpic» v:shapes="_x0000_i1648">-(<img border=«0» width=«23» height=«32» src=«ref-1_898891931-212.coolpic» v:shapes="_x0000_i1649">,<img border=«0» width=«24» height=«31» src=«ref-1_898899021-190.coolpic» v:shapes="_x0000_i1650">)<img border=«0» width=«28» height=«28» src=«ref-1_898898795-226.coolpic» v:shapes="_x0000_i1651">-…-(<img border=«0» width=«23» height=«32» src=«ref-1_898891931-212.coolpic» v:shapes="_x0000_i1652">,<img border=«0» width=«37» height=«32» src=«ref-1_898909168-212.coolpic» v:shapes="_x0000_i1653">)<img border=«0» width=«40» height=«29» src=«ref-1_898911721-245.coolpic» v:shapes="_x0000_i1654">.
Процесс будет осуществим, если система линейных алгебраических уравнений линейно независима.
В результате мы придем к новой системе С<img border=«0» width=«13» height=«23» src=«ref-1_898891750-89.coolpic» v:shapes="_x0000_i1655">=<img border=«0» width=«15» height=«23» src=«ref-1_898912055-95.coolpic» v:shapes="_x0000_i1656">, где матрица С будет с ортонормированными строками, то есть обладает свойством С*С<img border=«0» width=«15» height=«25» src=«ref-1_898912150-91.coolpic» v:shapes="_x0000_i1657">= E, где Е – это единичная матрица.
(Таким образом, решение системы можно записать в виде <img border=«0» width=«13» height=«23» src=«ref-1_898891750-89.coolpic» v:shapes="_x0000_i1658">= С<img border=«0» width=«15» height=«25» src=«ref-1_898912150-91.coolpic» v:shapes="_x0000_i1659"><img border=«0» width=«15» height=«23» src=«ref-1_898912055-95.coolpic» v:shapes="_x0000_i1660">.)
продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по математике
Реферат по математике
Краевые задачи и разностные схемы
1 Сентября 2013
Реферат по математике
Линейные дифференциальные уравнения
3 Августа 2015
Реферат по математике
Экзамен по алгебре 9 класс, демо-версия 2007, решения заданий
1 Сентября 2013
Реферат по математике
Программа вступительных экзаменов по математике в 2004г МГУ
1 Сентября 2013