Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
|
|
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:
- X = (1 .. 1 .. 1)
- X = (1 2 3 .. 70)
- X = (0 1 0 1 .. )
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.
-
Haga una carpeta nueva en la que copiará todos los archivos
de su proyecto.
- Primero debe obtener el paquete "
.jar
" completo de
JAMA:
http://math.nist.gov/javanumerics/jama/
-
Coloque el código Java en el archivo
FiboMatrix.java
.
-
Para crear el proyecto DrJava, coloque el código
XML en el archivo
FiboMatrix.drjava
.
-
Copie los archivos "
.jar
" que forman la biblioteca
JAMA en su carpeta.
-
Verifique que el nombre de los archivos "
.jar
" que
están en su carpeta son los nombres que se mencionan en el
proyecto DrJava. Por ejemplo, si en su carpeta está el
archivo "Jama-1.0.2.jar
" es necesario que en el
proyecto DrJava sea ese el nombre que se menciona en la etiqueta
"classpath
" del proyecto:
<classpath>
<file absolute="false" name="Jama-
1.0.2.jar"/>
<classpath/>
-
También es posible crear el proyecto desde DrJava en el
menú
Project→New, para luego agregar los archivos
"
.jar
" en la sección "Extra Classpath" de
Project→Properties.
-
La lista de archivos que usted debe tener en su carpeta es la
siguiente:
-
Abra el proyecto
FiboMatrix.drjava
con DrJava, compílelo y ejecútelo.
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
Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2009
Derechos de autor reservados © 2009