Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-0202
II Semestre 2009
[<=] [home] [<>] [\/] [=>]
CI-0202 Principios de Informática

Examen de Ampliación [solución]

      Utilice la biblioteca JAMA para construir un programa que pueda resolver sistemas de ecuaciones de la forma AX=B. Construya su matriz A[70x70] llenando la primera fila con los primeros 70 números de Fibonacci. Para construir la segunda, corra todos los número de la primera fila hacia la izquierda una posición, y continúe así generando cada una de las 70 filas. Este es un ejemplo de una matriz de renglones Fibonacci:

0 1 1 2 3 5 8  Matriz A[7x7]
1 1 2 3 5 8 0
1 2 3 5 8 0 1
2 3 5 8 0 1 1
3 5 8 0 1 1 2
5 8 0 1 1 2 3
8 0 1 1 2 3 5

      Resuelva el sistema AX=B para los siguientes valores de X:

      Puede obtener la biblioteca JAMA aquí:

Consulta:
Profe: ¿Cómo construyo el programa? El archivo ".jar" no me funciona...
Respuesta:
Todos los archivos que forman un proyecto DrJava deben estar en una carpeta.
Si no quiere usar un proyecto, agregue el archivo ".jar" en el menú Edit→Preferences→ResourceLocations de DrJava.


import Jama.*;           // paquete JAMA de matrices
import java.lang.System; // Esta siempre la importa Java

/** FiboMatrix utiliza el paquete de datos Jama = Java Matrix Class.
    Ejemplo de uso de la biblioteca JAMA con una matriz de Fibonacci
    de dimensión 7.
*/
public class FiboMatrix {
    /** Programa principal. */
    public static void main( String args[] ) {
        double mat_double[][] = { // valores iniciales para M[][]
            { 0., 1., 1., 2., 3., 5., 8. },
            { 1., 1., 2., 3., 5., 8., 0. }, // F(0)==0
            { 1., 2., 3., 5., 8., 0., 1. }, // F(1)==1
            { 2., 3., 5., 8., 0., 1., 1. },
            { 3., 5., 8., 0., 1., 1., 2. }, // F(n)==F(n-1)+F(n-2)
            { 5., 8., 0., 1., 1., 2., 3. },
            { 8., 0., 1., 1., 2., 3., 5. },
        };
        Matrix M = new Matrix(mat_double);
        Matrix B = Matrix.random(M.getColumnDimension(),1);
        Matrix X = M.solve(B);

        B = B.transpose(); // para que salga impreso su valor en un renglón
        X = X.transpose();

        System.out.print("Matrix original M[][]"); {
            java.io.PrintWriter pwOut = new java.io.PrintWriter(System.out);
            M.print( pwOut, 6,2 );
            pwOut.flush(); // sin "flush()" graba retardado
        }
        System.out.print("Vector incógnita B[]"); {
            final boolean autoFlush = true;
            B.print( new java.io.PrintWriter(System.out,autoFlush) , 6,2 );
        }
        System.out.print("Vector solución X[]"); {
            B.print(  6,2 );
        }
    }
}

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<drjava version="drjava-20090821-r5004">
  <project autorefresh="false" main="FiboMatrix" root="" work="">
    <createjar file=""/>
    <source>
      <file active="true" name="FiboMatrix.java"
            package="" timestamp="4-Dec-2009 10:20:00">
        <select from="0" to="0"/>
        <scroll column="0" row="0"/>
      </file>
    </source>
    <included/>
    <excluded/>
    <collapsed/>
    <classpath>
      <file absolute="false" name="Jama-1.0.2.jar"/>
    </classpath>
    <breakpoints/>
    <watches/>
    <bookmarks/>
  </project>
</drjava>

 

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2009
Derechos de autor reservados © 2009
[home] <> [/\]