Kraut matritsasining parchalanishi - Crout matrix decomposition

Yilda chiziqli algebra, Kraut matritsasining parchalanishi bu LU parchalanishi parchalanadigan a matritsa ichiga pastki uchburchak matritsa (L), an yuqori uchburchak matritsa (U) va, har doim ham kerak bo'lmasa ham, a almashtirish matritsasi (P). U tomonidan ishlab chiqilgan Preskott Durand Krout. [1]

Kruut matritsasining parchalanishi algoritm dan bir oz farq qiladi Doolittle usuli. Doolittle usuli bir birlik pastki uchburchak matritsasini va yuqori uchburchak matritsasini qaytaradi, Crout usuli esa pastki uchburchak matritsasini va birlik yuqori uchburchak matritsasini qaytaradi.

Shunday qilib, agar A matritsaning matritsa dekompozitsiyasi shunday bo'lsa:

A = LDU

L birlik pastki pastki uchburchak matritsa, D diagonali matritsa va U yuqori uchburchak matritsa bo'ladigan bo'lsa, u holda Doolittle usuli hosil bo'ladi.

A = L (DU)

va Crout usuli ishlab chiqaradi

A = (LD) U.

Amaliyotlar

C bajarilishi:

bekor krujka(ikki baravar konst **A, ikki baravar **L, ikki baravar **U, int n) {	int men, j, k;	ikki baravar sum = 0;	uchun (men = 0; men < n; men++) {		U[men][men] = 1;	}	uchun (j = 0; j < n; j++) {		uchun (men = j; men < n; men++) {			sum = 0;			uchun (k = 0; k < j; k++) {				sum = sum + L[men][k] * U[k][j];				}			L[men][j] = A[men][j] - sum;		}		uchun (men = j; men < n; men++) {			sum = 0;			uchun(k = 0; k < j; k++) {				sum = sum + L[j][k] * U[k][men];			}			agar (L[j][j] == 0) {				printf("det (L) 0 ga yaqin! n 0 ga bo'lish mumkin emas ... n");				Chiqish(EXIT_FAILURE);			}			U[j][men] = (A[j][men] - sum) / L[j][j];		}	}}

Oktav / Matlab dasturlari:

   funktsiya[L, U] =LUdecompCrout(A)[R, C] = hajmi(A);        uchun i = 1: R            L(men, 1) = A(men, 1);            U(men, men) = 1;        oxirij = 2 uchun: R            U(1, j) = A(1, j) / L(1, 1);        oxirii = 2 uchun: R            uchun j = 2: i                L(men, j) = A(men, j) - L(men, 1:j - 1) * U(1:j - 1, j);            oxirij = i + 1 uchun: R                U(men, j) = (A(men, j) - L(men, 1:men - 1) * U(1:men - 1, j)) / L(men, men);            oxirioxiri   oxiri

Adabiyotlar

  1. ^ Matbuot, Uilyam H. (2007). Raqamli retseptlar 3-nashr: Ilmiy hisoblash san'ati. Kembrij universiteti matbuoti. 50-52 betlar. ISBN  9780521880688.