Necesito realizar una regresión MCO básica usando F #. Para hacer esto necesito algunas funciones de Algebra Lineal, pero estoy confundido en cuanto a lo que hay por ahí. No puedo encontrar ninguna forma de invertir una matriz. Existe documentación para una biblioteca llamada Microsoft.FSharp.Math.LinearAlgebra
, pero no sé si ya existe.¿Cómo invierto una matriz en F #?
Respuesta
Si se agrega el FSharp Powerpack a su proyecto (en las referencias .NET), se pueden utilizar diversas funciones de la biblioteca de la matriz
edit: también hay que añadir los Fsharp.Powerpack.MathProviders biblioteca experimentales, a continuación, puede llamar de la siguiente manera
open Microsoft.FSharp.Math
let m = Matrix.create 10 10 1.2
let m2 = Experimental.LinearAlgebra.Inverse m
Puedo crear una matriz muy bien, puedo agregarlos, multiplicarlos e incluso transponerlos, pero no puedo invertirlos. –
La actualización debería hacer el trabajo – Codingday
El código que tuve que usar fue Microsoft.FSharp.Math.Experimental.LinearAlgebra .Inverso (m) Pero eso funciona, muchas gracias –
No lo sé; en la versión 1.9.6 de F # No veo nada improvisada, los documentos están aquí
http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html
y hay cosas de Matrix en el espacio de nombres en el Microsoft.FSharp.Math FSharp.Powerpack.dll, pero no veo 'invertir' de forma directa, y no sé sobre el material 'LinearAlgebra' (la búsqueda web obsoleta sugiere que desaparecieron algunas versiones).
Bien, si no lo sabes, ¿qué esperanza hay para el resto de nosotros? :) El dll está en 1.9.6.2 CTP y nada indica que esté en desuso (excepto su ausencia de los documentos, supongo ...) – Benjol
¿Has comprobado this. Podría ayudar.
¿Todavía existen dnAnalytics? No puedo acceder a su página web nunca más. –
Eso sería una pena. No intenté buscarlo y me disculpo si esto es un callejón sin salida. :( – Craig
Parece que codeplex no funcionó para el mantenimiento. DnAnalytics parece estar de vuelta hoy. –
FlyingFrog hacer una biblioteca que contiene Numerics inversión de matrices entre muchas otras funciones.
No estoy seguro de cuál es preferible, eso o el código 'experimental' (aparentemente obsoleto) del PowerPack. Supongo que siempre puede mantener el código fuente del bit administrado de la versión del PowerPack en un lugar seguro, todavía disponible aquí:
C:\Program Files\FSharp-1.9.6.2\source\fsharp\FSharp.PowerPack\math\lapack\linear_algebra_managed.fs.
Si está invirtiendo matrices de coma flotante grandes, entonces el código experimental del antiguo F # Power Pack dará un mejor rendimiento (¡si puede hacer que funcione!) . Si está haciendo matrices pequeñas u otros tipos (por ejemplo, inversión exacta mediante aritmética racional de precisión arbitraria) t La gallina F # para Numerics es el camino a seguir. –
- 1. ¿Cómo invierto mi matriz?
- 2. ¿Cómo invierto BooleanToVisibilityConverter?
- 3. Atravesar una matriz F # 2D
- 4. ¿Cómo invierto una cadena UTF-8 en su lugar?
- 5. ¿Cómo invierto un objeto itertools.chain?
- 6. ¿Cómo invierto un color/color?
- 7. F # Crear matriz 2D
- 8. F #: Convirtiendo una cadena en una matriz de bytes
- 9. F # genera una secuencia/matriz de fechas
- 10. Inicialización de la matriz en F #
- 11. ¿Cómo invierto el orden de los objetos en un NSMutableArray?
- 12. F # Tipos de matriz multidimensional
- 13. ¿Cómo invierto la ruta inversa de un archivo estático?
- 14. Cómo crear una clase vacía en F #
- 15. ¿Cómo implementar una clase abstracta en F #?
- 16. ¿Cómo implemento correctamente una propiedad en F #?
- 17. ¿Cómo implementar una interfaz C# en F #?
- 18. F # - Cómo llenar un System.Collections.Generic.List de la matriz
- 19. F #: ¿Cómo dividir una secuencia en una secuencia de secuencias
- 20. Cómo ordenar una matriz en JavaScript
- 21. Convertir una cadena de 0-F en una matriz de bytes en Ruby
- 22. ¿Cómo ejecutar el código F # encontrado en una cadena en un programa F # compilado?
- 23. ¿Cómo se escribe el molde en F #?
- 24. Transformar la función 2d spline f (t) en f (x)
- 25. Crear una matriz de bytes con el tamaño dinámico en F #
- 26. ¿Cómo restar una matriz de una matriz?
- 27. Cómo obtener F # powerpack para F # 3.0
- 28. F # cómo escribir una declaración vacía
- 29. Cómo convertir una matriz de bytes en una matriz int?
- 30. Almacenar una matriz en HashMap
Depende de qué tipo de elemento es. 'Microsoft.FSharp.Math.Experimental.LinearAlgebra.Inverse' solo es compatible con' float', IIRC. –