• Lunes 23 de Diciembre de 2024, 16:57

Autor Tema:  no me funciona este algoritmo  (Leído 1133 veces)

cynthialaura

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
no me funciona este algoritmo
« en: Jueves 7 de Mayo de 2009, 16:42 »
0
quisiera sabe rqu edebo hacer para que fujncione este algortimo?
me da el sig. error:
??? Input argument 'A' is undefined.

Error in ==> C:MATLAB6p5workGaussSeidel.m
On line 16  ==> n = size(A,1);

function x = GaussSeidel(A,b,varargin)

% Implementacion del metodo Gauss-Seidel para la solucion de sistemas
% de ecuaciones, tomando como aproximacion inicial x0.
%
%    x = GaussSeidel(A,b,x0=zeros,eps=0.001,nrm=Inf)
%
% Regresa x, la solucion del sistema Ax=b. El criterio de terminacion es
% que norm(x-xAnt,nrm)/norm(x,nrm)<eps.

% 21 agosto 2007
% Manuel Valenzuela

MAXCICLOS = 1000;
MAXPIVOTE = 1;
n = size(A,1);
x = zeros(n,1);
eps = 0.001;
nrm = Inf;
if length(varargin)>=1
   x = varargin{1};
end
if length(varargin)>=2
   eps = varargin{2};
end
if length(varargin)>=3
   nrm = varargin{3};
end
A = [A b];

if MAXPIVOTE==0
   for i=1:n-1
      % Encontrar renglon del maximo pivote
      k = find(abs(A(:,i))==max(abs(A(i:n,i))),1,'last');

      if k~=i
         % Intercambiar renglones
         rPivote = A(k,:);
         A(k,:) = A(i,:);
         A(i,:) = rPivote;
      end
   end
end

b = A(:,n+1);
A = A(:,1:n);

% Se obtienen el vector c y la matriz T
c = b./diag(A);
T = zeros(n);
for i=1:n
   T(i,:) = A(i,:)/A(i,i);
end
T = -T+eye(n);

xAnt = x;
j = 0;
while 1
   j = j+1;
   if j>MAXCICLOS
       warning('numero maximo de ciclos excedido')
       break
   end
   for i=1:n
      x(i) = T(i,:)*x + c(i);
   end
   if (norm(x-xAnt,nrm)/norm(x,nrm)<eps)
      break
   end
   xAnt = x;
end

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: no me funciona este algoritmo
« Respuesta #1 en: Jueves 7 de Mayo de 2009, 21:14 »
0
:hola:
bueno este error es porque tu funcion GaussSeidel necesita los parametros A y b para trabajar
pero no defines antes cuanto vale A y b

Victor Pasilla Campos :hola: