MatLab para el método de pivoteo de Gauss

Resuelto
Hola,
de hecho, estoy empezando a trabajar con Matlab, por favor, quiero un programa Matlab para el método de Gauss para resolver Ax=b (utilizando pivoteo).
Gracias
Configuración: Windows XP Firefox 1.5.0.7

8 respuestas

  1. clear all
    close all
    a=[1 5 8;2 -4 10;6 2 -5]
    b=[5;1;3]
    A=[a b]
    n=size(A,1)
    for k=1:n-1
    for i=k+1:n
    w=A(i,k)/A(k,k)
    for j=k:n+1
    A(i,j)=A(i,j)-w*A(k,j)
    end
    end
    end
    A
    for i=n:-1:1
    s=0;
    for j=i+1:n
    s=s+A(i,j)*x(j);
    end
    x(i)=(A(i,n+1)-s)/A(i,i)
    end
    x
    106
    1. ```matlab
      function x = gaussElimination(A, b)
      n = length(b);

      % Augmenter la matrice A avec le vecteur b
      Aug = [A b];

      for k = 1:n
      % Vérifier si le pivot est nul
      if (Aug(k, k) == 0)
      % Chercher une ligne en dessous pour échanger
      for i = k+1:n
      if (Aug(i, k) ~= 0)
      Aug([k, i], :) = Aug([i, k], :);
      break;
      end
      end
      end

      % Appliquer l'élimination de Gauss
      for i = k+1:n
      factor = Aug(i, k) / Aug(k, k);
      Aug(i, :) = Aug(i, :) - factor * Aug(k, :);
      end
      end

      % Résoudre le système par substitution arrière
      x = zeros(n, 1);
      for i = n:-1:1
      x(i) = (Aug(i, end) - Aug(i, 1:n) * x) / Aug(i, i);
      end
      end
      ```
      0
    2. ¡Genial! ¡Gracias!
      0
    3. Gracias por la buena nota, hasta luego para otro control.
      0
    4. gracias
      0
    5. ¡graciassss!
      0