Gauss matlab

Páginas: 7 (1605 palabras) Publicado: 23 de junio de 2011
Introducción

El programa tiene como objetivo la resolución de sistemas de ecuaciones lineales, para esto se utiliza el método de Gauss. Con motivo de optimizar el método se utiliza un pivoteo parcial, que esta probado, reduce el error del calculo.
El programa admite cualquier tipo y tamaño de sistema de ecuaciones siempre y cuando sean lineales. Se llevan a cabo una serie de validaciones enel código para tener un control de errores, estas advertirán al usuario si los datos ingresados llevan a una incompatibilidad matemática o teórica en la resolución de un sistema de ecuaciones lineales.

Declaración de Funciones:

Función Gauss

function R= gauss2(A,B)

cola = A(:,1);
fila = A(1,:);
filb = B(1,:);
colb = B(:,1);
m = length(fila);
n =length(cola);
v = length(colb);
u = length(filb);
%m/u cantidad de columnas
%n/v cantidiad de filas
txt=0;
txt1=0;
txt2=0;
if m == n
if v == n
% pivoteo y triangulacion superior
for o = 1: n-1
[A,B] = pivotpar2(A,B,o);
for l = o+1:n
a = A(l,o);
p =A(o,o);
if p == 0
txt = 'pivote nulo';
else
for s = 1:m
A(l,s)=A(l,s)-A(o,s)*(a/A(o,o));
end
for y = 1:u
B(l,y)=B(l,y)-B(o,y)*(a/A(o,o));
end
endend
end

E = [A,B];
k = m + u;
% lleva a ceros los valores de la matriz de ecuacuines que no
% pertenecen a la diagonal
for h = n : -1 : 2
for ab = h-1: -1 : 1
r = E(ab,h);
z = E(h,h);
if z == 0
txt1 ='pivote2 nulo';
else
for ac = 1:k
E(ab,ac)=E(ab,ac)-E(h,ac)*(r/E(h,h));
end
end
end

end
% deja la diagonal en 1
for oo = 1: n
div = E(oo,oo);
if div == 0
txt2 = 'no pueden haber0 en la diagonal de resultados';
else
for ss = 1:m
E(oo,ss)=E(oo,ss)/div;
end
end
end
F=E(:,m+1:k);
%determina si hubo problemas en la operacion y reportar
if txt==0
if txt1==0
if txt2==0R=F;
else
R=txt2;
end
else
R=txt1;
end
else
R=txt;
end


else
R = 'hay diferencia entre cantidad de resultados y cuaciones';
end
else
R = 'la matriz deecuaciones no es cuadrada';
end



end

Función Pivoteo Parcial

function [C,D] = pivotpar2(A,B,c)
co = A(1,:);
f = A(:,1);
cob = B(1,:);
m = length(co);
n = length(f);
g = length(cob);
for i = c : n
for j = n :-1 : i+1
if A(j,c) < A(j-1,c)
for l = 1: m
temp = A(j,l);A(j,l) = A(j-1,l);
A(j-1,l) = temp;
end
for w = 1: g
temp2 = B(j,w);
B(j,w) = B(j-1,w);
B(j-1,w) = temp2;
end
end
end
end
C = A;
D = B;
end

Matrices dato

A:
1 3 8 2 5 3 54
5 9 1 6 5 1 63
5 2 0 6 3 6 4
1 3 3...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Codificación En Matlab De Método De Gauss
  • Eliminación De Gauss En Matlab
  • Matlab gauss gussseidel,potencias normalizado
  • Método de Gauss Jordan en MatLab (ejemplo de destilación de hidrocarburos)
  • Script y Ejemplo Para Matlab Para Resolver Una Matriz Por El Metodo De Gauss
  • Gauss
  • Gauss
  • Gauss

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS