2012-02-09 39 views
5

Gần đây tôi đã bắt đầu sử dụng MathNet để thực hiện đại số tuyến tính của chúng tôi, tuy nhiên tôi đang gặp một số vấn đề khi dịch MATLAB sang MathNet.MathNet tương đương với MATLAB giải quyết C = A B

Trong MATLAB Tôi thường sử dụng đơn giản giải quyết bằng cách sử dụng toán tử dấu chéo ngược:

C = A \ B

tương đương về điều này trong MathNet là gì?

Tôi nhận được kết quả tương tự trong một ma trận nhỏ sử dụng C = Inv (A) * B, nhưng tôi không biết kết quả có chính xác hay không.

Trả lời

2

Tôi không nghĩ MathNet có bất kỳ "tương đương" nào của toán tử dấu gạch chéo ngược của Matlab. Xem trang web này để biết một số thông tin về cách hoạt động của dấu gạch chéo ngược của Matlab: Matlab manual on mldivide(). Tôi đoán bạn có thể xem xét một số phương pháp giải quyết, như QRSolve, nhưng tôi không nghĩ rằng chúng sẽ dễ sử dụng ...

Ý của bạn là "chính xác"? Bạn có hỏi liệu toán tử inv() của MathNet có đảo ngược chính xác một ma trận hay chỉ đơn giản là hỏi bạn có thể tính C là Inv (A) * (B) không?

Nếu bạn hỏi sau, có, đối với ma trận vuông Matlab của dấu gạch chéo ngược là gần giống như Inv (A) * (B).

+0

Im yêu cầu có sau. Ok, sau đó tôi sẽ sử dụng nó. Khi bạn viết đó là gần như nhau, trong đó nằm sự khác biệt? – Bildsoe

+0

Sự khác biệt là Matlab thực hiện loại trừ Gauss khi sử dụng toán tử dấu gạch chéo ngược, do đó làm giảm độ phức tạp tính toán và tăng tính ổn định số. Tính toán rõ ràng của nghịch đảo có thể được điều hòa trong một số điều kiện và do đó khi làm việc trong Matlab, bạn nên sử dụng dấu gạch chéo ngược. – Niclas

+0

Ok, cảm ơn. Tôi nghĩ rằng tôi cần phải nhìn vào một số đại số tuyến tính :) – Bildsoe

4

var C = A.QR().Solve(B); (sử dụng QR decomposition)

Đối với ma trận vuông cũng: var C = A.LU().Solve(B); (sử dụng phân tích lu)

1

Với các bài kiểm tra tôi đã thực hiện sử dụng Matlab và Math.Net Numerics:

Ma trận A Vector B

Matlab: A \ B Math.Net numerics:. A.QR() Giải quyết (B)

Cả hai cho kết quả tương tự (trong trường hợp của tôi). Tôi nghĩ rằng nó sẽ làm việc với B là một Ma trận.

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