Слайд 3
Вопрос: Как найти решение уравнения (1) ?
На прошлом семинаре предлагалось сводить
решение уравнения (1) к нахождения решения системы алгебраических уравнений
Ch = D, (2)
где C – матрица, составленная из элементов заданных матриц A и B, вектор D составлен из элементов заданной матрицы Y, вектор h – искомый, его компонентами являются элементы искомой матрицы H.
Для нахождения решения системы (2) предлагалось использовать пакет программ, разработанный в Институте математики им. С.Л. Соболева.
Уравнение Сильвестра
(1)
Слайд 6Пример программы (Maple)
Задаются матрицы A, B, Y так, чтобы можно было
следить за спектрами матриц A, B:
with(LinearAlgebra):
DA:=<<1 | 0>, <0 | 2>>;TA:=<<2 | 3>, <4 | 5>>;
detTA:=Determinant(TA);
condTA:=ConditionNumber(TA);
A:=TA.DA.MatrixInverse(TA);
DB:=<<-1 | 0| 0| 0>, <0 | -2| 0| 0>, <0| 0| -3| 0>, <0| 0| 0| -4>>;
TB:=<<4 | 2| 3| 5>, <3 | 5| 2| 1>, <2| 3| 1| 0>, <4| 3| 0| 1>>;
detTB:=Determinant(TB);
condTB:=ConditionNumber(TB);
B:=TB.DB.MatrixInverse(TB);
Y:=<<2 | 4>,< 3| 5>, <3 | 5>,< 6| 7>>;
Слайд 7Переход от уравнения (1) к системе (2), нахождение решения системы (2),
восстановление решения уравнения (1), вычисление невязки.
H:=Matrix(4,2,symbol=h):
Y1:=H.A-B.H:
sys:=[Y1[1,1]=Y[1,1],Y1[1,2]=Y[1,2],Y1[2,1]=Y[2,1],Y1[2,2]=Y[2,2],Y1[3,1]=Y[3,1],Y1[3,2]=Y[3,2],Y1[4,1]=Y[4,1],Y1[4,2]=Y[4,2]]:
var:=[h[1, 1],h[1, 2],h[2, 1],h[2, 2],h[3, 1],h[3, 2],h[4, 1],h[4, 2]]:
(HH, f) := GenerateMatrix( sys, var );
condHH:=ConditionNumber(HH);
h_sol:=Vector(LinearSolve(HH,f)):
H_sol:=<,,,>;
MatrixNorm(Y-H_sol . A+B.H_sol,2);