Aplicación del Método de Gauss y Gauss - Jordan
Enviado por Marco Ortega • 25 de Marzo de 2021 • Tarea • 2.832 Palabras (12 Páginas) • 208 Visitas
Métodos Numéricos[pic 1]
[pic 2][pic 3]
[pic 4]
Nombre del estudiante: | |||
Tema: | Aplicación del Método de Gauss y Gauss - Jordan | ||
Fecha de entrega: | 20 de marzo 2021 | Calificación: |
Problema a resolver: | Con los datos del diagrama siguiente (donde los porcentajes están dados en peso), encuentra posibles valores de las corrientes M1, M2 y M3 mediante:
[pic 5] |
Solución propuesta: | a. clc fprintf('Ingrese la matriz de coeficientes en formato [a1 a2 a3;b1 b2 b3;c1 c2 c3]:') a=input(' '); fprintf('Ingrese el vector de terminos independientes en el formato [r1;r2;r3]') b=input(' '); pause fprintf('La matriz aumentada A|B del sistema es:') n=length(a); m=size(a); r=size(b); if m(2)==r(1) k=1; while k<=(n-1) c=a; if a(k,k)~=0 i=k+1; while i<=n j=k; AB=[a,b] fprintf('Eliminar la columna %d a partir de F(%d)',k,k) fprintf('F(%d)-%.4f/%.4f*F(%d)',i,c(i,k),c(k,k),k) b(i)=b(i)-((c(i,k)/c(k,k))*b(k)); pause while j<=n a(i,j)=a(i,j)-((c(i,k)/c(k,k))*a(k,j)); j=j+1; end i=i+1; end else fprintf('El sistema es inconsistente.') k=n+1; end k=k+1; c=a; end AB=[a,b] i=n; while i>=1 d(1,i)=a(i,i); i=i-1; end e=any(any(d==0)); if e==0 fprintf('Los valores de las incognitas son:\n') i=n; while i>=1 j=i+1; s=0; while j<=n s=s+(a(i,j)*x(j)); j=j+1; end x(i)=(b(i)-s)/a(i,i); fprintf('x(%d) es igual a',i) fprintf('x(%d) = (b(%d)-s)/a(%d,%d)',i,i,i,i) fprintf('x(%d) = (%.5f - %.5f)/%.5f',i,b(i),s,a(i,i)) fprintf('x(%d) = %.5f\n\n',i,x(i)) if i>1 pause end i=i-1; end else fprintf('El sistema no tiene solucion o tiene soluciones infinitas.') end else fprintf('Faltan argumentos de entrada.') end Evidencia: Ingrese la matriz de coeficientes en formato [a1 a2 a3;b1 b2 b3;c1 c2 c3]: [0.95 0 0.55;0 0.87 0.24;0.05 0.13 0.21] Ingrese el vector de terminos independientes en el formato [r1;r2;r3] [56.6895;33.1353;10.1752] La matriz aumentada A|B del sistema es:
x(2) es igual ax(2) = (b(2)-s)/a(2,2)x(2) = (33.13530 - 3.70320)/0.87000x(2) = 33.83000 x(1) es igual ax(1) = (b(1)-s)/a(1,1)x(1) = (56.68950 - 8.48650)/0.95000x(1) = 50.74000 b. clc fprintf('Ingrese la matriz de coeficientes en formato [a1 a2 a3;b1 b2 b3;c1 c2 c3]:') aa=input(' '); fprintf('Ingrese el vector de terminos independientes en el formato [r1;r2;r3]:') bb=input(' '); A=[aa,bb]; fprintf('La matriz aumentada A|B del sistema es:') A pause [m,n] = size(A); i = 1; j = 1; k = 0; tol = max([m,n])*eps*norm(A,'inf'); while (i <= m) & (j <= n) [p,k] = max(abs(A(i:m,j))); k = k+i-1; if (p <= tol) fprintf(['Columna ' int2str(j) ' es insignificante.']) A(i:m,j) = zeros(m-i+1,1) pause j = j + 1; else if i ~= k fprintf(['Cambiar filas ' int2str(i) ' y ' int2str(k) blanks(10)]) fprintf('\n\n') A([i k],:) = A([k i],:) pause end
fprintf('Eliminar columna %d\n',j) fprintf(['a partir de en A(' int2str(i) ',' int2str(j) ')' blanks(10)]) fprintf('\n\nA(%d,%d)/%0.5f\n',i,j,A(i,j)) A(i,j:n) = A(i,j:n)/A(i,j) pause fprintf(['Eliminar columna ' int2str(j) blanks(10)]) fprintf('\n') A pause for k = 1:m if k ~= i fprintf('\n') fprintf('Fila[%d]=Fila[%d] - (A[%d,%d]/A[%d,%d])*Fila[%d]\n',k,k,k,j,i,j,j) pause A(k,j:n) = A(k,j:n) - A(k,j)*A(i,j:n) end end pause i = i + 1; j = j + 1; end end fprintf('Los valores de las incognitas son:\n') for k = 1:m fprintf('\n\n\tx(%d)=%d\n',k,A(k,n)) pause end Evidencia: Ingrese la matriz de coeficientes en formato [a1 a2 a3;b1 b2 b3;c1 c2 c3]: [0.95 0 0.55;0 0.87 0.24;0.05 0.13 0.21] Ingrese el vector de terminos independientes en el formato [r1;r2;r3]: [56.6895;33.1353;10.1752] La matriz aumentada A|B del sistema es: Eliminar columna 1 Elimir columna 1
Eliminar columna 2 Elimir columna 2
Eliminar columna 3 Elimir columna 3
Los valores de las incognitas son:
|
Formato de Proyectos[pic 6][pic 7]
...