Red de conocimiento informático - Consumibles informáticos - El gaussiano se puede programar

El gaussiano se puede programar

Gaussian.M

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

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