Реферат: СИНГУЛЯРНОЕ РАЗЛОЖЕНИЕ В ЛИНЕЙНОЙ ЗАДАЧЕ МЕТОДА НАИМЕНЬШИХ КВАДРАТОВ
H=F*G-S
U(I,L)=F-G
DO 240 K=L,N
240 RV1(K)=U(I,K)/H
IF(I.EQ.M) GO TO 270
DO 260 J=L,M
S=0.0
DO 250 K=L,N
250 S=S+U(J,K)*U(I,K)
DO 260 K=L,N
U(J,K)=U(J,K)+S*RV1(K)
260 CONTINUE
270 DO 280 K=L,N
280 U(I,K)=SCALE*U(I,K)
290 ANORM=AMAX1(ANORM,ABS(W(I))+ABS(RV1(I)))
300 CONTINUE
IF(.NOT.MATV) GO TO 410
DO 400 II=1,N
I=N+1-II
IF(I.EQ.N) GO TO 390
IF(G.EQ.0.0) GO TO 360
DO 320 J=L,N
320 V(J,I)=(U(I,J)/U(I,L))/G
DO 350 J=L,N
S=0.0
DO 340 K=L,N
340 S=S+U(I,K)*V(K,J)
DO 350 K=L,N
V(K,J)=V(K,J)+S*V(K,I)
350 CONTINUE
360 DO 380 J=L,N
V(I,J)=0.0
V(J,I)=0.0
380 CONTINUE
390 V(I,I)=1.0
G=RV1(I)
L=I
400 CONTINUE
410 IF(.NOT.MATU) GO TO 510
MN=N
IF(M.LT.N) MN=M
DO 500 II=1,MN
I=MN+1-II
L=I+1
G=W(I)
IF(I.EQ.N) GO TO 430
DO 420 J=L,N
420 U(I,J)=0.0
430 IF(G.EQ.0.0) GO TO 475
IF(I.EQ.MN) GO TO 460
DO 450 J=L,N
S=0.0
DO 440 K=L,M
440 S=S+U(K,I)*U(K,J)
F=(S/U(I,I))/G
DO 450 K=I,M
U(K,J)=U(K,J)+F*U(K,I)
450 CONTINUE
460 DO 470 J=I,M
470 U(J,I)=U(J,I)/G
GO TO 490
475 DO 480 J=I,M
480 U(J,I)=0.0
490 U(I,I)=U(I,I)+1.0
500 CONTINUE
510 DO 700 KK=1,N
K1=N-KK
K=K1+1
ITS=0
520 DO 530 LL=1,K
L1=K-LL
L=L1+1
IF(ABS(RV1(L))+ANORM.EQ.ANORM) GO TO 565
IF(ABS(W(L1))+ANORM.EQ.ANORM) GO TO 540
530 CONTINUE
540 C=0.0
S=1.0
DO 560 I=L,K
F=S*RV1(I)
RV1(I)=C*RV1(I)
IF(ABS(F)+ANORM.EQ.ANORM) GO TO 565
G=W(I)
H=SQRT(F*F+G*G)
W(I)=H
C=G/H
S=-F/H
IF(.NOT.MATU) GO TO 560
DO 550 J=1,M
Y=U(J,L1)
Z=U(J,I)
U(J,L1)=Y*C+Z*S
U(J,I)=-Y*S+Z*C
550 CONTINUE
560 CONTINUE
565 Z=W(K)
IF(L.EQ.K) GO TO 650
IF(ITS.EQ.30) GO TO 1000
ITS=ITS+1
X=W(L)
Y=W(K1)
G=RV1(K1)
H=RV1(K)
F=((Y-Z)*(Y+Z)+(G-H)*(G+H))/(2.0*H*Y)
G=SQRT(F*F+1.0)
F=((X-Z)*(X+Z)+H*(Y/(F+SIGN(G,F))-H))/X
C=1.0
S=1.0
DO 600 I1=L,K1
I=I1+1
G=RV1(I)
Y=W(I)
H=S*G
G=C*G
Z=SQRT(F*F+H*H)
RV1(I1)=Z
C=F/Z
S=H/Z
F=X*C+G*S
G=-X*S+G*C
H=Y*S
Y=Y*C
IF(.NOT.MATV) GO TO 575
DO 570 J=1,N
X=V(J,I1)
Z=V(J,I)
V(J,I1)=X*C+Z*S
V(J,I)=-X*S+Z*C
570 CONTINUE
575 Z=SQRT(F*F+H*H)
W(I1)=Z
IF(Z.EQ.0.0) GO TO 580
C=F/Z
S=H/Z
580 F=C*G+S*Y
X=-S*G+C*Y
IF(.NOT.MATU) GO TO 600
DO 590 J=1,M
Y=U(J,I1)
Z=U(J,I)
U(J,I1)=Y*C+Z*S
U(J,I)=-Y*S+Z*C
590 CONTINUE
600 CONTINUE
RV1(L)=0.0
RV1(K)=F
W(K)=X
GO TO 520
650 IF(Z.GE.0.0) GO TO 700
W(K)=-Z
IF(.NOT.MATV) GO TO 700
DO 690 J=1,N
690 V(J,K)=-V(J,K)
700 CONTINUE
GO TO 1001
1000 IERR=K
1001 RETURN
E N D
ПРИЛОЖЕНИЕ 2. контрольный примерВходные данные
(матрица изначально сингулярна – первая строка равна сумме второй и третьей с обратным знаком)
3 3 3
.3200000E 02 .1400000E 02 .7400000E 02
-0.2400000E 02 -0.1000000E 02 -0.5700000E 02
-0.8000000E 01 -0.4000000E 01 -0.1700000E 02
-0.1400000E 02 0.1300000E 02 0.1000000E 01
Полученный результат
МАТРИЦА А
.3200000E+02 .1400000E+02 .7400000E+02
-.2400000E+02 -.1000000E+02 -.5700000E+02
-.8000000E+01 -.4000000E+01 -.1700000E+02
ПРАВЫЕ ЧАСТИ
-.1400000E+02 .1300000E+02 .1000000E+01
СИНГУЛЯРНЫЕ ЧИСЛА
.1048255E+03
.7310871E-06
.1271749E+01
ЧИСЛО ОБУСЛОВЛЕННОСТИ= .1433830E+09
Корни
.1215394E+01 .1821742E+01 -.1059419E+01
Правые корни после проверки
-.1400000E+02 .1300000E+02 .1000001E+01
Видно, что правые части соответствуют начальным данным. Решение верно.
[1] Матрица А эрмитова если она совпадает со своей комплексно сопряженной .
[2] Матрица А унитарная если , где – сопряженная матрица.
[3] Сингулярным разложением произвольной m´n–матрицы называется разложение вида , где U и V – ортогональные матрицы, а S – диагональная матрица с неотрицательными диагональными элементами. Диагональные элементы S (, i=1,...,k, где k=min(m,n)) называются сингулярными числами А. Это множество чисел однозначно определяется матрицей А. Число ненулевых сингулярных чисел равно рангу А.
[4] Симметричная матрица положительно определена, если все ее собственные значения положительны. Положительно определенная матрица P обладает также тем свойством, что для всех .
[5] Симметричная матрица неотрицательно определена, если все ее собственные значения неотрицательны. Такая матрица P обладает также тем свойством, что для всех . Для произвольной mxn–матрицы А матрица симметрична и неотрицательно определена. Она положительно определена, если rankA=n.
[6] Обратной матрицей для квадратной невырожденной матрицы А называется такая матрица, для которой .
[7] Матрица перестановки - это квадратная матрица, столбцы которой получаются перестановкой столбцов единичной матрицы. Матрица перестановки ортогональна.
[8] Матрица А хессенбергова (верхняя хессенбергова) если для j<i–1 (сохраняется одна диагональ ниже главной диагонали). Если матрица симметричная то хессенбергова матрица становится трехдиагональной.
[9] Симметричная матрица А есть трехдиагональная при для |i-j|>1. Трехдиагональная матрица – это частный случай хесенберговой матрицы.