2009-03-20 49 views
6

Tôi cần thực hiện một số hồi quy OLS cơ bản bằng F #. Để làm điều này, tôi cần một số hàm Đại số tuyến tính, nhưng tôi bị nhầm lẫn với những gì ở ngoài đó. Tôi không thể tìm thấy bất kỳ cách nào để đảo ngược một ma trận. Có một số tài liệu cho thư viện có tên là Microsoft.FSharp.Math.LinearAlgebra, nhưng tôi không biết liệu có tồn tại nữa không.Làm cách nào để đảo ngược ma trận trong F #?

+0

Phụ thuộc vào loại yếu tố của bạn. 'Microsoft.FSharp.Math.Experimental.LinearAlgebra.Inverse' chỉ hỗ trợ' float', IIRC. –

Trả lời

6

Nếu bạn thêm FSharp Powerpack để dự án của bạn (trong tài liệu tham khảo NET), bạn có thể sử dụng chức năng khác nhau của thư viện ma trận

chỉnh sửa: bạn cũng cần phải thêm Fsharp.Powerpack.MathProviders thư viện thí nghiệm, sau đó bạn có thể gọi như sau

open Microsoft.FSharp.Math 
let m = Matrix.create 10 10 1.2 
let m2 = Experimental.LinearAlgebra.Inverse m 
+0

Tôi có thể tạo một Ma trận tốt, tôi có thể thêm chúng, nhân chúng và thậm chí chuyển đổi chúng, nhưng tôi không thể đảo ngược chúng. –

+0

Bản cập nhật nên thực hiện công việc – Codingday

+0

Mã tôi đã sử dụng là Microsoft.FSharp.Math.Experimental.LinearAlgebra Nhưng nó hoạt động, cảm ơn bạn rất nhiều –

0

Tôi không biết; trong phiên bản 1.9.6 của F # Tôi không nhìn thấy bất cứ điều gì ngay, các tài liệu đang ở đây

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

và có Matrix thứ trong không gian tên Microsoft.FSharp.Math trong FSharp.Powerpack.dll, nhưng tôi không thấy 'đảo ngược', và tôi không biết về công cụ 'LinearAlgebra' (không dùng nữa? tìm kiếm trên web cho thấy nó biến mất một vài bản phát hành trở lại).

+0

Lòng tốt, nếu bạn không biết, hy vọng sẽ có gì đối với phần còn lại của chúng ta? :) Các dll là trong 1.9.6.2 CTP và không có gì chỉ ra rằng nó không được chấp nhận (ngoại trừ nó vắng mặt từ các tài liệu, tôi đoán ...) – Benjol

0

Bạn đã xem this chưa. Nó sẽ giúp.

+0

Liệu dnAnalytics vẫn tồn tại? Tôi không thể truy cập trang web của họ nữa. –

+0

Đó sẽ là một sự xấu hổ. Tôi đã không cố gắng đào bới xung quanh cho nó và tôi appologize nếu đây là một kết thúc chết. :( – Craig

+0

Có vẻ như codeplex đã ngừng hoạt động để bảo trì. DnAnalytics dường như đã trở lại ngày hôm nay –

1

FlyingFrog làm một thư viện Numerics trong đó có đảo ngược Matrix trong số nhiều chức năng khác.

Không chắc chắn cái nào là thích hợp hơn, hoặc mã 'thử nghiệm' được thử nghiệm '' từ PowerPack. Tôi đoán bạn luôn có thể giữ mã nguồn cho bit được quản lý của phiên bản PowerPack ở một nơi an toàn, vẫn có sẵn tại đây:

C:\Program Files\FSharp-1.9.6.2\source\fsharp\FSharp.PowerPack\math\lapack\linear_algebra_managed.fs. 
+1

Nếu bạn đảo ngược ma trận điểm nổi lớn thì mã thử nghiệm từ F # Power Pack cũ sẽ cho hiệu suất tốt hơn (nếu bạn có thể làm cho nó hoạt động!) Nếu bạn đang làm ma trận nhỏ hoặc các loại khác (ví dụ như đảo ngược chính xác thông qua số học hợp lý tùy ý) hen F # cho Numerics là con đường để đi. –

Các vấn đề liên quan