Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Libreria de matrices (https://www.clubdelphi.com/foros/showthread.php?t=37507)

Delphius 15-11-2006 13:06:14

Libreria de matrices
 
Buenos dias foristas,

Tengo, obligadamente, para implementar el desarrollo de mi tesis... declarar funciones y procedimientos generales para matrices. Cosas como multiplicaciones, sumas, inversas, traspuestas, determinante, ortogonalidad, etc...

No es que sea vago (bueno.. alguito soy:D ), me preguntaba si existe una librería que ya cuente con esas funciones... para evitarme un poco de esfuerzo y de inventar la rueda.

Tenía, de hace unos unos años unos cuantos ejercicios que implementaban algo de eso... pero cuando fui a buscarlo me di cuenta de que los había borrado porque me estaban ocupando espacio en mi pequeño disco...
Ahora los hecho de menos....

Podría implementarlos de nuevo... pero me tomaria mucho tiempo... y el cual me hace falta.

Desde ya muchas gracias

Robert01 15-11-2006 14:57:45

Hola

Ya no está disponible en pascal el código de numerical recipes pero podés usar la librtería del dr jean debord. Visitá su página.

Otra posibilidad es que traduscas los códigos de statlib que están mayoritariamente en fortran (es más lento aunque existen programas que permiten una traducción casi directa).

si aún así no es la solución que buscás mandame te envío el código de numerical recipes en pascal (pero no es de dominio público).

saludos

Delphius 15-11-2006 15:54:31

Gracias por responder
 
Robert01, gracias por responder. Le voy a hechar un ojo.... a lo que me recomiendas...

Saludos,

Northern 15-11-2006 17:34:10

También puedes curiosear un poco en geometry.pas la famosa librería de Mike Lischke http://www.lischke-online.de/Geometry.php y aquí puedes ver el código sin bajarte el fichero http://www.koders.com/delphi/fid6EF9...82619DBA4.aspx

Saludos

Delphius 10-03-2007 21:59:15

Diagonalización de matrices
 
Despues de estar un buen tiempo empleando funciones de matrices, me he topado con un inconveniente y ha decir verdad me dejado consumido... necesito realizar el proceso de diagonalizacion de matrices, y en las librerias que me recomendaron no encuentro algo que me permita realizar esta función.

Matemáticamente es un proceso muy complicado de explicar... y debo admitir que a pesar de entenderlo (por lo menos eso creo:D)... escribir un algoritmo que lo realice es muy difícil. Pues, se sabe que no siempre se puede obtener la diagonalización.

La librerias que me recomendaron fueron de mucha utilidad, pero en este tema... no le veo ayuda.

Por eso me estaba preguntando si alguien conoce alguna libreria que disponsa de dicha funcionalidad, o si alguien sabe el algoritmo le estaré muy agradecido de si me pueden hechar una mano.

Gracias de antemano,
Saludos,

xander 10-03-2007 22:27:56

Yo alguna vez utilicé algo de código de esta librería...

tal vez te sirva, ojalá.

Delphius 10-03-2007 22:32:08

Gracias
 
Muchas gracias xander... me voy a poner a esa libreria.
Cita:

tal vez te sirva, ojalá.
Yo también espero que me sirva.

Saludos,

Delphius 12-03-2007 08:51:16

xander he notado que la libreria de la que me comentas tiene muchos errores, simplemente no compila, toqueteando algunas cosas la logré arrancar pero habría que ver si los cambios que apliqué no influyeron en algo.

Saludos,

xander 13-03-2007 18:59:03

Yo la utilicé en mis inicios con Delphi, creo que con Delphi 5 y no tenía problemas, tal vez hayan cambiado algunas cosas para las versiones posteriores. O haya sacado el autor una nueva versión con esos problemas.

Delphius 14-03-2007 05:00:08

xander, estuve diagnosticando la libreria y veo que es una especie de tuti-fruti, tal parece que todavia está en versión beta. Y ha decir verdad no le encuentro la utilidad que yo ando necesitando. Contiene exactamente lo mismo que las otras librerias que he probado.

Gracias por ofrecer tu ayuda.
Seguiré buscando... y si no encuentro nada, pues ¡a codificar!

Saludos,

Delphius 16-03-2007 06:49:28

Creo que lo encontré
 
Después de tanto buscar... creo que lo encontré
Espero que le sirva a alguien más.

Si bien no es una libreria de matrices, se puede entender muy bien el código que expone. Y como dije antes: ¡A codificar!

El sitio está piola, sencillo y se le entiende.

Saludos,

Robert01 16-03-2007 13:35:10

Delphius, porque no le das una mirada a este link

saludos

Delphius 16-03-2007 16:20:46

Muchísimas gracias Robert01, analizaré esa libreria. Lo curioso es que busqué en sorceforge.net pero se vé que no ha sabido buscar mejor.

La tendré en cuenta.
Muchas gracias por ayudarme.

Saludos,

jpolival 27-06-2007 01:42:46

Delphius Conseguiste La Libreria De Matrices? Yo La Necesito

Delphius 27-06-2007 02:26:36

Hola jpolival,

No he encontrado alguna librería que me haya gustado. No se si leíste el hilo entero... mi objetivo era encontrar alguna libreria que implementara funciones del tipo "científicas" Como Jacobi, Autovalores, autovectores... y cosas por el estilo.

Estuve probando las que recomendaron, Pero el caso es que ninguna de ellas tiene implementado los algoritmos que yo andaba necesitando.

La que está buena, para las operaciones elementales, y que probé y andubo es la que ofrece Robert01. Pero el método que emplea para el cálculo de los autovalores y autovectores es erroneo. Lo he comparado con ejemplos de unos libros que he conseguido por ayuda de mi profesora de Algebra y los resultados no son los esperados (en algunos coincidían pero no se correspondían con el orden).

Gracias a unos libros que amablemente me prestó mi profesora estoy yo mismo desarrollando mi propia libreria, no quisiera alterar ninguna librería que probé por temor a que complicara las cosas.

Me encantaría poder pasarte algo de código de mi libreria pero me veo imposibilitado... ya que forma parte de una sección que no puedo dar a publicar de mi trabajo de tesis. Además esta siendo elaborada y potenciada para las finalidades de mi trabajo.

Saludos,

Robert01 27-06-2007 14:06:12

Cita:

Empezado por Delphius
La que está buena, para las operaciones elementales, y que probé y andubo es la que ofrece Robert01. Pero el método que emplea para el cálculo de los autovalores y autovectores es erroneo.
Saludos,

Delphius: el método es el Householder, es el mejor método conocido para calcular autovectoes y autovalores, la rutina de jacobi también es correcta. El código está en fortran, c y pascal en esta página y en lugares. No se porque dices que es erróneo, el orden de los valores propios puede cambiarse usando algún otro procedimiento.

Yo comparé los valores obtenidos con otros programas como spss, etc además de probar manualmente los resultados para matrices pequeñas.

Hay otras rutinas en fortran que dan también resultados satisfactorios.
¿No habrá un error en los resultados que estás obteniendo vos?

Yo hace tiempo usé una rutina de jacobi que ordenaba los autovalores en otro orden, será eso lo que te pasa.

Saludos, espero respuesta

Robert01 27-06-2007 14:13:20

Lo siento, creía que te referías a otro post donde preguntabas sobre el método un método para el cálculo de autovectores y autovalores únicamente.

En definitiva, no se a que librería te refieres cunado dices que da resultados erróneos.

Saludos

Delphius 27-06-2007 20:04:20

Rta a Robert01
 
Robert01,
Muchas gracias por ayudarme y por el consejo. Es la primera vez que oigo sobre Householder, lo voy a investigar.

Cita:

El código está en fortran, c y pascal en esta página y en lugares. No se porque dices que es erróneo, el orden de los valores propios puede cambiarse usando algún otro procedimiento.
Es cierto, el código está en muchos lugares...y ese es su principal problema. No hay dos iguales, y cuando me refiero a que los resultados son erroneos me refiero al hecho de que he probado con varios ejemplos de libros y los valores de autovectores y autovalores no se correspondían. Por ponerte un ejemplo, digamos que para un autovalor 5 le corresponde el autovector (1,-1,5) y para el autovalor 3 es (3,-1,0). Pero el resultado que arrojaba la rutina era (3,-1,0) para el autovalor 5.
NOTA: los valores puestos son de ilustración, no tengo a mano un ejemplo.

Y en algunos ejemplos, los resultados eran totalmente diferentes a los esperados. Independientemente del orden.

Por otro lado, después de haber estado leyendo durante semanas. He empezado a ver que distintos sitios recomendaban NO implementar el código que estaba en la numerical recipes ya que está mal implementado. De hecho, en los foros de su sitio, han hablado de ello.

Cita:

Empezado por Robert01
¿No habrá un error en los resultados que estás obteniendo vos?

Yo hace tiempo usé una rutina de jacobi que ordenaba los autovalores en otro orden, será eso lo que te pasa.

No descarto también dicha posibilidad. No soy un matemático experto.

Y como dije, rutinas hay... cada una vaya a saber como lo ordena. Encontré un sitio que devuelve los resultados esperados en el orden esperado (según mis ejemplos en mis libros). Y Como contra parte lo estoy analizando con lo que encontré en otra ocasión y señalé anteriormente:

Cita:

Empezado por Yo
Después de tanto buscar... creo que lo encontré

Por el momento ambos coinciden entre los resultados. A pesar de ser diferentes...
Estoy realizando la traza, evaluandolos y viendo que tienen de común o de diferente. De cualquier manera la librería la estoy haciendo yo de acuerdo a la manera de como estoy viendo en los libros. Siguiendo mis apuntes de cátedra y con las rutinas agregadas y potenciadas adecuadas a los fines de mi trabajo.

Saludos,

Robert01 27-06-2007 22:12:10

Yo no me acuerdo de donde saqué el código si de numerical recipes o de otro lado. Para el médodo de Householder hay varias rutinas diferentes y también para jacobi.

Yo al código lo probé y comparé los valores y andaba bien, la primera vez lo hice con una rutina que traduje de fortran a c y todos los cálculos los hacía en una dll, el programa estaba hecho en visual basic porque en esa época no sabía nada de delphi.

Después usé el código de nuemrical recipes que está en pascal pero no creo que haya errores.

Si tenés tempo un día de estos vemos que está pasando. Podemos ahcer pruebas para ver que margen de error hay.


Si tenés dudas el código de jean pierre moreau para el cálculo de vectores y valores propios, da el código en c, pascal, fortran y basic.
Es fácil implementarlo en un programa delphi en consola o se puede hacer en forma gráfica.

Saludos


La franja horaria es GMT +2. Ahora son las 22:12:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi