Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Programa: sel1.m
clear
%Sistemas de ecuaciones 3x3 complatible determinado
%{
Dado el sistema de ecuaciones:
x +y +3z = 10
2x -y + z = 6
x - y - z = 0
%}
vars=['x','y','z'];
A=[1 1 3; 2 -1 1; 1 -1 -1]; % Matriz de los coeficientes
b=[10;6;0]; % Terminos independientes
n=length(b); % Dimensión del vector
d=det(A);
Amp=[A b];
fprintf(' Determinante de la matriz de los coeficientes |A| = %d \n',d);
r1= rank(A);
fprintf(' Rango de la matriz de los coeficientes A rang(A)= %d \n',r1);
r= rank(Amp);
fprintf(' Rango de la matriz de los ampliada rang(Ab)= %d \n\n',r);
x=zeros(n,1);
if (d !=0)
fprintf(' Como |A| es diferente de cero el sistema es determinado y tiene solucion unica \n\n ');
% Solucion del Sistema aplicando Cramer
disp(' Solucion del sistema aplicando Cramer ');
for i=1:n
Ab=[A(:,1:i-1),b,A(:,i+1:n)];
v=det(Ab);
if d!=0
x(i)=v/d;
fprintf('\n %s = %f / %f = %f ', vars(i),v,d,x(i));
end
end
disp('');
fprintf(' \n Solucion del sistema por la via de la inversa ');
disp('');
in = inv(A);
fprintf(' \n La inversa es: \n');
disp(in);
disp('');
s=zeros(n,1);
s = in* b;
fprintf(' \n La solucion s = A''*b es: \n');
for j=1:n
fprintf('\n %s = %f ', vars(j),s(j))
end
end
disp('');
disp(' Matriz ampliada ');
disp('');
disp(Amp)
disp('');
disp(' Llevando a la forma escalonada ');
disp('');
es = rref(Amp);
disp(es);
Al ejecutarlo se obtiene:
La inversa es:
1.00000 -1.00000 2.00000
1.50000 -2.00000 2.50000
-0.50000 1.00000 -1.50000
x = 4.000000
y = 3.000000
z = 1.000000
Sistemas de ecuaciones lineales 3x3 Compatible indeterminado (infinita soluciones)
Programa: sel2.m
%Sistemas de ecuaciones 3x3 complatible indeterminado
%{
Dado el sistema de ecuaciones:
x + 2y - z = 1
2x + y -2z = 2
x - y - z = 1
%}
vars=['x','y','z'];
A=[1,2,-1;2,1,-2;1,-1,-1]; % Matriz de los coeficientes
b=[1;2;1]; % Terminos independientes
n=length(b); % Dimensión del vector
d=det(A);
Amp=[A b];
fprintf(' Orden del sistema de ecuaciones n = %d \n',n);
fprintf(' Determinante de la matriz de los coeficientes |A| = %d \n',d);
r1= rank(A);
fprintf(' Rango de la matriz de los coeficientes A rang(A)= %d \n',r1);
r= rank(Amp);
fprintf(' Rango de la matriz de los ampliada rang(Ab)= %d \n\n',r);
x=zeros(n,1);
if (d !=0)
fprintf(' Como |A| es diferente de cero el sistema es determinado y tiene solucion unica \n\n ');
% Solucion del Sistema aplicando Cramer
disp(' Solucion del sistema aplicando Cramer ');
for i=1:n
Ab=[A(:,1:i-1),b,A(:,i+1:n)];
v=det(Ab);
if d!=0
x(i)=v/d;
fprintf('\n %s = %f / %f = %f ', vars(i),v,d,x(i));
end
end
else
if r1<n
fprintf(' Como |A|=0 y Rango(A)=Rango(Ab) < n el sistema es compatible indeterminado y tiene infinitas soluciones\n\n
');
% Solucion del Sistema aplicando Cramer
disp(' Solucion del sistema aplicando Cramer ');
for i=1:n
Ab=[A(:,1:i-1),b,A(:,i+1:n)];
v=det(Ab);
fprintf('\n %s = %f / 0 = indeterminado \n', vars(i),v);
end
elseif r==n
fprintf(' Como |A|=0 y Rango(A)<Rango(Ab) = n el sistema es incompatible y no tiene infinitas solucion\n\n ');
% Solucion del Sistema aplicando Cramer
disp(' Solucion del sistema aplicando Cramer ');
for i=1:n
Ab=[A(:,1:i-1),b,A(:,i+1:n)];
v=det(Ab);
fprintf('\n %s = %f / 0 = indefinido \n', vars(i),v);
end
end
end
disp('');
disp(' Matriz ampliada ');
disp('');
disp(Amp);
disp('');
disp(' Llevando a la forma escalonada ');
disp('');
es = rref(Amp);
disp(es);
Al ejecutarlo se obtiene:
Como |A|=0 y Rango(A)=Rango(Ab) < n el sistema es compatible indeterminado y tiene infinitas soluciones
x = 0.000000 / 0 = indeterminado
y = 0.000000 / 0 = indeterminado
z = 0.000000 / 0 = indeterminado
Matriz ampliada
1 2 -1 1
2 1 -2 2
1 -1 -1 1
Llevando a la forma escalonada
1 0 -1 1
0 1 0 0
0 0 0 0
Programa: sel3.m
%Sistemas de ecuaciones 3x3 incompatibles
%{
Dado el sistema de ecuaciones:
x + y + z = 0
x + 2y -z = -1
x +2y -z = 10
%}
vars=['x','y','z'];
A=[1,1,1;1,2,-1;1,2,-1]; % Matriz de los coeficientes
b=[0;-1;10]; % Terminos independientes
n=length(b); % Dimensión del vector
d=det(A);
Amp=[A b];
fprintf(' Orden del sistema de ecuaciones n = %d \n',n);
fprintf(' Determinante de la matriz de los coeficientes |A| = %d \n',d);
r1= rank(A);
fprintf(' Rango de la matriz de los coeficientes A rang(A)= %d \n',r1);
r= rank(Amp);
fprintf(' Rango de la matriz de los ampliada rang(Ab)= %d \n\n',r);
x=zeros(n,1);
if (d !=0)
fprintf(' Como |A| es diferente de cero el sistema es determinado y tiene solucion unica \n\n ');
% Solucion del Sistema aplicando Cramer
disp(' Solucion del sistema aplicando Cramer ');
for i=1:n
Ab=[A(:,1:i-1),b,A(:,i+1:n)];
v=det(Ab);
if d!=0
x(i)=v/d;
fprintf('\n %s = %f / %f = %f ', vars(i),v,d,x(i));
end
end
else
if r<n
fprintf(' Como |A|=0 y Rango(A)=Rango(Ab) < n el sistema es compatible indeterminado y tiene infinitas soluciones\n\n
');
% Solucion del Sistema aplicando Cramer
disp(' Solucion del sistema aplicando Cramer ');
for i=1:n
Ab=[A(:,1:i-1),b,A(:,i+1:n)];
v=det(Ab);
fprintf('\n %s = %f / 0 = indeterminado \n', vars(i),v);
end
elseif r==n
fprintf(' Como |A|=0 y Rango(A)<Rango(Ab) = n el sistema es incompatible y no tiene infinitas solucion\n\n ');
% Solucion del Sistema aplicando Cramer
disp(' Solucion del sistema aplicando Cramer ');
for i=1:n
Ab=[A(:,1:i-1),b,A(:,i+1:n)];
v=det(Ab);
fprintf('\n %s = %f / 0 = indefinido \n', vars(i),v);
end
end
end
disp('');
disp(' Matriz ampliada ');
disp('');
disp(Amp);
disp('');
disp(' Llevando a la forma escalonada ');
disp('');
es = rref(Amp);
disp(es);
Al ejecutarlo se obtiene:
x = -33.000000 / 0 = indefinido
y = 22.000000 / 0 = indefinido
z = 11.000000 / 0 = indefinido
Matriz ampliada
1 1 1 0
1 2 -1 -1
1 2 -1 10
1 0 3 0
0 1 -2 0
0 0 0 1
Al ejecutarlo se obtiene:
Grafsel2.m
%Segundo sistema con infinitas soluciones
[x,y] = meshgrid(0:0.1: 30);
z = -2+x+2*y;
hold on
mesh(x,y,z)
z = -1+x+y/2;
mesh(x,y,z)
z = -1+x-y;
mesh(x,y,z)
%recta intersección
% x=[0,3];
% y=x+1;
% line(x,y,[3,3], 'color','b')
xlabel('x')
ylabel('y')
zlabel('z')
title('Planos que se cortan en una recta (Infinitas soluciones)')
grid on
hold off
view(100,30)
Al ejecutarlo se obtiene:
Grafsel3.m