Академический Документы
Профессиональный Документы
Культура Документы
TEMA:
Matrices Cramer e Inversa
2. OBJETIVOS:
2.1. Objetivo General
Crear un programa para la resolucin de las matrices de Cramer e inversa en Net
beans
2.2. Objetivos Especificos
Investigar el fundamento terico acerca de las Matrices de Cramer e Inversa.
Identificar el lenguaje de programacin adecuado para la ejecucin del
programa.
Conocer un lenguaje de programacin en el cual podamos resolver matrices.
3. MARCO TERICO
1 0 0 0
1 0 0 0
1 0 0
I 3 0 1 0
1 0
I2 I4
0 1 0 0 1 0
0 0 1
0 0 0 1
Es la matriz que obtenemos de cambiar las filas por las columnas. La transpuesta de A
la representamos por A T .
Ejemplo:
3.2.3 Matriz Adjunta
Definicin: Si A es una matriz cuadrada n x n y B es la matriz de sus cofactores, entonces
la Adjunta de A, denotada por adjA que es la transpuesta de la matriz B cuadrada n x n .
Ejemplo I:
Calcula la adjA
1 3
A
4 2
Primero calculamos TODOS los cofactores de la matriz A.
A11 2 A12 4
A21 3 A22 1
Segundo con las respuestas formo la matriz B y luego obtengo B T que es la adjA .
2 4 2 3
B BT adjA
3 1 4 1
Ejemplo II:
Calcula la adjA
1 2 3
A 5 1 2
3 4 3
Solucin
Primero calculamos TODOS los cofactores de la matriz A.
1 2 5 2 5 1
A11 (1)11 5 A12 (1)1 2 21 A13 (1)13 17
4 3 3 3 3 4
2 3 1 3 1 2
A21 (1) 21 6 A22 (1) 2 2 12 A23 (1) 23 2
4 3 3 3 3 4
2 3 1 3 1 2
A31 (1) 31 1 A32 (1) 3 2 13 A33 (1) 33 9
1 2 5 2 5 1
Segundo con las respuestas formo la matriz B y luego obtengo B T que es la adjA .
5 21 17 5 6 1
B 6 12 2 B 21 12 13 adjA
T
1 13 9 17 2 9
3.3 Netbeans
package ecu3;
import javax.swing.table.DefaultTableModel;
public class frmEcuaciones extends javax.swing.JFrame {
Double a11,a12,a13,a21,a22,a23,a31,a32,a33;
DefaultTableModel modelo=new DefaultTableModel();
public frmEcuaciones() {
initComponents();
String titu[]={"X","Y","Z","B"};
modelo.setColumnIdentifiers(titu);
tblA.setModel(modelo);
String datos[]={"2","4","-3","12"};
String datos2[]={"3","-5","2","13"};
String datos3[]={"-1","3","2","17"};
modelo.addRow(datos);
modelo.addRow(datos2);
modelo.addRow(datos3);
}
private Double redo(Double N){
return (Math.rint(N*100)/100);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGap(0, 100, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGap(0, 100, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(tblA);
jButton1.setText("Solucionar");
jButton1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment
.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblX,
javax.swing.GroupLayout.PREFERRED_SIZE, 54,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(lblY,
javax.swing.GroupLayout.PREFERRED_SIZE, 54,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(44, 44, 44)
.addComponent(lblZ,
javax.swing.GroupLayout.PREFERRED_SIZE, 53,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 452,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(94, 94, 94)
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 293,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(288, Short.MAX_VALUE)
.addComponent(jLabel2,
javax.swing.GroupLayout.PREFERRED_SIZE, 210,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(74, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 14,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 109,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(55, 55, 55)
.addComponent(jLabel2)
.addGap(3, 3, 3)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment
.BASELINE)
.addComponent(jButton1,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblX,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblY,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblZ,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(41, 41, 41))
pack();
}// </editor-fold>
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(frmEcuaciones.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(frmEcuaciones.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(frmEcuaciones.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(frmEcuaciones.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
deter=deter+Math.pow(-1,
i+j)*matriz[i][j]*this.Determinante(0, temp);
return deter;
//clculo de submatriz eliminado i, j
count2++;
count1++;
return temp;
double elementoAdjunto=Math.pow(-1,
i+j)*this.Determinante(0, temp);
tempAdjunta[i][j]=elementoAdjunto;
return tempAdjunta;
//metodo para obtener la transpuesta de la matriz