El gaussiano se puede programar
Función x = Gaussian(A,B)
Los tamaños de las matrices A, B deben ser NA x NA y NA x NB.
Esta función utiliza el algoritmo de eliminación gaussiano para resolver Ax = B.
NA = size(A, 2); [NB1, NB] = size(B
Si NB1 ~= NA, error('A y B deben tener dimensiones compatibles); '); end
n = NA NB; AB = [A(1:NA, 1:NA) B(1:NA, 1:NB)]; epss = eps*ones(NA, 1);
Para k = 1: NA
Escala la rotación parcial en AB(k, k) según la ecuación. (2.2.20)
[akx,kx] = max(abs(AB(k:NA,k))./max(abs([AB(k:NA,k 1:NA)epss (1: NA-k 1)])'));
Si akx lteps, error ('matriz singular sin solución única');
MX = k kx-); 1;
Si la fila kx gt1 cambia (si es necesario)
tmp_row = AB(k,k:N);
AB(k,k: N ) = AB(mx,k:N);
AB(mx,k:N)= tmp_row;
Fin
Método de eliminación directa gaussiana p>
AB(k,k 1:N) = AB(k,k 1:N)/AB(k,k);
AB(k,k)= 1; elemento diagonal a
Para m = k 1: NA
AB(m,k 1:N) = AB(m,k 1:N) - AB(m,k) *AB(k,k 1:N); (2.2.5)
AB(m,k)= 0;
Fin
Fin
La dirección del triángulo superior ecuación matricial Post-reemplazo
Todos los elementos diagonales son iguales a 1
x(NA,) = AB(NA, NA 1:N);
Para m = NA-1: -1: 1
x(m,)= AB(m,NA 1:N)-AB(m,m 1:NA)*x(m 1:NA, ); (2.2.7)
Fin
Ejemplo:
gt gta =[0 1 1; =[2 0 1]';
gt gtx = Gaussiano (A, b)
x =
1.00000000000000
1.00000000000000
1.00000000000000