Как инвертировать матрицу в F #? - PullRequest
6 голосов
/ 20 марта 2009

Мне нужно выполнить базовую регрессию OLS с помощью F #. Для этого мне нужны некоторые функции линейной алгебры, но я не совсем понимаю, что там. Я не могу найти способ инвертировать матрицу. Есть некоторая документация для библиотеки под названием Microsoft.FSharp.Math.LinearAlgebra, но я не знаю, существует ли она больше.

Ответы [ 4 ]

6 голосов
/ 21 марта 2009

Если вы добавите FSharp Powerpack в свой проект (в ссылках .NET), вы можете использовать различные функции библиотеки матриц

edit: вам также нужно добавить экспериментальную библиотеку Fsharp.Powerpack.MathProviders, после чего вы можете вызвать следующим образом

open    Microsoft.FSharp.Math
let m = Matrix.create 10 10 1.2
let m2 = Experimental.LinearAlgebra.Inverse m
1 голос
/ 23 марта 2009

FlyingFrog do Numerics библиотека, которая содержит инверсию матрицы среди многих других функций.

Не уверен, какой из них предпочтительнее, тот или иной (явно устаревший) «экспериментальный» код из PowerPack. Я думаю, вы всегда можете хранить исходный код для управляемого бита версии PowerPack в надежном месте, все еще доступном здесь:

C:\Program Files\FSharp-1.9.6.2\source\fsharp\FSharp.PowerPack\math\lapack\linear_algebra_managed.fs.
0 голосов
/ 20 марта 2009

Вы проверили это . Это может помочь.

0 голосов
/ 20 марта 2009

я не знаю; в версии 1.9.6 F # я ничего не вижу, документы здесь

http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html

и в пространстве имен Microsoft.FSharp.Math в FSharp.Powerpack.dll есть материал Matrix, но я не вижу «инвертирования», и не знаю, что такое «LinearAlgebra» (устарело? поиск в Интернете предполагает, что он исчез несколько релизов назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...