MatLab para el método de pivoteo de Gauss
Resuelto
magimax69
Mensajes publicados
1
Estado
Miembro
-
saida -
saida -
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
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
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
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
randa
```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
```
BN
¡Genial! ¡Gracias!