Documente Academic
Documente Profesional
Documente Cultură
Conrado Campetella
Ejercicio 1
Obtenga los intercambios de renglones que se requieren para resolver los
siguientes sistemas de ecuaciones lineales aplicando algoritmos, los cuales
pueden ser utilizados en programas de computadoras.
Utilizando los siguientes algoritmos:
a)
b)
c)
d)
Eliminacin
Eliminacin
Eliminacin
Eliminacin
Gaussiana
Gaussiana
Gaussiana
Gaussiana
con
con
con
con
2)
2x 13x 2+ 2x 3=5
4x 1+ 2x 26x 3=14
2x 1 +2x 24x 3=8
Para resolver el problema se realiz un programa en java. El cdigo del
mismo se encuentra en el Anexo de la actividad.
El programa solicita ingresar el sistema y luego arroja la siguiente solucin.
La misma incluye la solucin del sistema utilizando la regla de Cramer.
Respecto a la misma, el programa solo funciona para sistemas de 3
ecuaciones con 3 incgnitas ya que solo puede calcular determinante de
matrices de 3x3.
Corremos el programa e ingresamos este sistema para obtener su solucin
por los distintos mtodos. El resultado obtenido es:
Programa para resolver sistemas de igual cantidad de incgnitas que
ecuaciones
Ingrese la cantidad de incgnitas y ecuaciones que tiene el sistema
3
Para ecuaciones de la forma a1X1+a2X2+..+anXn=bn
Ingrese a0 de la ecuacin 0
2
Ingrese a1 de la ecuacin 0
-3
Ingrese a2 de la ecuacin 0
2
Ingrese b0 de la ecuacin 0
5
Ingrese a0 de la ecuacin 1
-4
Ingrese a1 de la ecuacin 1
2
Ingrese a2 de la ecuacin 1
-6
Ingrese b1 de la ecuacin 1
14
Ingrese a0 de la ecuacin 2
2
Ingrese a1 de la ecuacin 2
2
Ingrese a2 de la ecuacin 2
-4
Ingrese b2 de la ecuacin 2
8
El sistema ingresado es:
2.0X0 -3.0X1 2.0X2 = 5.0
-4.0X0 2.0X1 -6.0X2 = 14.0
2.0X0 2.0X1 -4.0X2 = 8.0
La matriz ampliada del sistema es:
| 2.0 -3.0
| -4.0 2.0 -6.0
| 2.0 2.0
-4.0
2.0
5.0 |
14.0
8.0 |
2.0
-2.0
-8.5
5.0 |
33.0
24.0
|
Su solucin es:
X0 = 0.2941176470588238 X1 = -4.0588235294117645
-3.8823529411764706
-----------------------------------------------Utilizando Gauss con Pivoteo parcial
El sistema ingresado es:
2.0X0 -3.0X1 2.0X2 = 5.0
-4.0X0 2.0X1 -6.0X2 = 14.0
2.0X0 2.0X1 -4.0X2 = 8.0
La matriz ampliada del sistema es:
| 2.0 -3.0
| -4.0 2.0 -6.0
| 2.0 2.0
-4.0
2.0
5.0 |
14.0
8.0 |
X2 =
2.0
14.0
5.0 |
8.0 |
14.0 |
-1.0 12.0
33.0 |
Su solucin es:
X0 = 0.2941176470588234 X1 = -4.0588235294117645
-3.8823529411764706
-----------------------------------------------Utilizando Gauss con Pivoteo parcial Escalonado
El sistema ingresado es:
2.0X0 -3.0X1 2.0X2 = 5.0
-4.0X0 2.0X1 -6.0X2 = 14.0
2.0X0 2.0X1 -4.0X2 = 8.0
X2 =
2.0
5.0 |
14.0
8.0 |
2.0
14.0
5.0 |
8.0 |
14.0 |
15.0 |
-1.0 12.0
X0 = 0.29411764705882426 X1 = -4.058823529411765 X2 =
-3.882352941176471
-----------------------------------------------Utilizando Gauss con Pivoteo Completo
El sistema ingresado es:
2.0X0 -3.0X1 2.0X2 = 5.0
-4.0X0 2.0X1 -6.0X2 = 14.0
2.0X0 2.0X1 -4.0X2 = 8.0
La matriz ampliada del sistema es:
| 2.0 -3.0
| -4.0 2.0 -6.0
| 2.0 2.0
-4.0
2.0
5.0 |
14.0
8.0 |
14.0
2.0
5.0 |
8.0 |
14.0
0.6666666666666667
4.857142857142857
Su solucin es:
X2 = -3.882352941176471 X1 = -4.058823529411764 X0 =
0.2941176470588239
-----------------------------------------------Utilizando la Regla de Cramer
El sistema ingresado es:
2.0X0 -3.0X1 2.0X2 = 5.0
-4.0X0 2.0X1 -6.0X2 = 14.0
2.0X0 2.0X1 -4.0X2 = 8.0
La matriz A del sistema es:
| 2.0 -3.0
| -4.0 2.0 -6.0
| 2.0 2.0
-4.0
2.0
|
|
| 8.0 2.0
-4.0 |
|
-6.0
|
Su solucin es:
X0 = 0.29411764705882354
-3.8823529411764706
X1 = -4.0588235294117645
X2 =
}
public double getX(int i){
return x[i];
}
//--Mtodo de Gauss------------------------------public void gSus(){
//--Imprimiendo el Sistema-------------------System.out.println("El sistema ingresado es: ");
String men="";
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
men+=a[i][j]+"X"+j+"\t";
}
men+="= "+b[i]+"\n";
}
System.out.println(men);
//--Imprimiendo la Matriz Ampliada-------------------impMA("\nLa matriz ampliada del sistema es: ");
//--Eliminacin hacia Adelante---- //i - fila j - columna
for(int k=0; k<n-1;k++){
for(int i=k+1; i<n; i++){
double factor = a[i][k]/a[k][k];
for(int j=k; j<n; j++){
a[i][j]=a[i][j]-factor*a[k][j];
}
b[i]=b[i]-factor*b[k];
}
}
//--Imprimiendo la Matriz Ampliada Simplificada-------------------impMA("\nLa matriz ampliada luego de aplicar Gauss es: ");
//--Sustitucin hacia Atras-------------------x[n-1]=b[n-1]/a[n-1][n-1];
for(int i=n-2; i>=0;i--){
double sum = b[i];
for(int j=i+1;j<n;j++){
sum=sum-a[i][j]*x[j];
}
x[i]=sum/a[i][i];
}
//--Imprimiendo la Solucin-------------------System.out.println("Su solucin es: ");
men="";
for(int i=0;i<n;i++){
men+="X"+i+" = "+x[i]+"\t";
}
System.out.println(men);
}
//--Impresin de Matriz Ampliada--------------public void impMA(String titulo){
System.out.println(titulo);
String men="\n";
for(int i=0;i<n;i++){
men+="|\t";
for(int j=0;j<n;j++){
men+=a[i][j]+"\t";
}
men+=b[i]+"\t|\n";
}
System.out.println(men);
}
// LECTURA DE ENTEROS
public static int leerEnt()throws IOException{
BufferedReader entrada = new BufferedReader(new
InputStreamReader(System.in));
int x;
try{
x=Integer.parseInt(entrada.readLine());
return x;
}
catch(NumberFormatException e) {
System.out.println("Ese dato no es vlido. Por Favor ingrese
otro: ");
x=leerEnt();
return x;
}
}
//-------------------------------------}
pivoteo (0);
//--Imprimiendo la Matriz Ampliada luego de Pivotear-------------------impMA("\nLa matriz ampliada del sistema luego del pivoteo parcial
es: ");
//--Eliminacin hacia Adelante---- //i - fila j - columna
for(int k=0; k<n-1;k++){
for(int i=k+1; i<n; i++){
double factor = a[i][k]/a[k][k];
for(int j=k; j<n; j++){
a[i][j]=a[i][j]-factor*a[k][j];
}
b[i]=b[i]-factor*b[k];
}
}
//--Imprimiendo la Matriz Ampliada Simplificada-------------------impMA("\nLa matriz ampliada luego de aplicar Gauss es: ");
//--Sustitucin hacia Atras-------------------x[n-1]=b[n-1]/a[n-1][n-1];
for(int i=n-2; i>=0;i--){
double sum = b[i];
for(int j=i+1;j<n;j++){
sum=sum-a[i][j]*x[j];
}
x[i]=sum/a[i][i];
}
//--Imprimiendo la Solucin-------------------System.out.println("Su solucin es: ");
men="";
for(int i=0;i<n;i++){
men+="X"+i+" = "+x[i]+"\t";
}
System.out.println(men);
}
// Pivoteo-----------------------------------------------public void pivoteo(int l){
int p=l;
double mayor=Math.abs(a[l][l]);
double aux;
for(int i=l+1; i<n; i++){
aux=Math.abs(a[i][l]);
if(aux>mayor){
mayor=aux;
p=i;
}
}
if(p!=l){
for(int i=l; i<n;i++){
aux = a[p][i];
a[p][i]=a[l][i];
a[l][i]=aux;
}
aux = b[p];
b[p]=b[l];
b[l]=aux;
}
}
}
x[n-1]=b[n-1]/a[n-1][n-1];
for(int i=n-2; i>=0;i--){
double sum = b[i];
for(int j=i+1;j<n;j++){
sum=sum-a[i][j]*x[j];
}
x[i]=sum/a[i][i];
}
//--Imprimiendo la Solucin-------------------System.out.println("Su solucin es: ");
men="";
for(int i=0;i<n;i++){
men+="X"+i+" = "+x[i]+"\t";
}
System.out.println(men);
}
}
x=leerEnt();
return x;
}
}
//-------------------------------------}
gpe.setN(n);
gpe.setA(a);
gpe.setB(b);
gpe.gSus();
System.out.println("------------------------------------------------");
System.out.println("Utilizando Gauss con Pivoteo Completo");
gpc.setN(n);
gpc.setA(a);
gpc.setB(b);
gpc.gSus();
System.out.println("------------------------------------------------");
System.out.println("Utilizando la Regla de Cramer");
rc.setN(n);
rc.setA(a);
rc.setB(b);
rc.rCramer();
}
}