Numerically stable determinant of matrix product












0














What is the best way in general to numerically calculate the determinant of a product of two matrices?



Calculate the matrix product first and then calculate the determinant of the result or calculate the determinants of the two matrices and subsequently multiply them?



The determinant calculation is done using tested routines (python-numpy i.e. LAPACK).










share|cite|improve this question






















  • "calculate the determinants of the two matrices and subsequently multiply them" - this is the more stable route. Generally, if you can avoid multiplying matrices before computing anything else (determinants, eigenvalues, etc.), do so.
    – J. M. is not a mathematician
    Apr 21 '17 at 10:13










  • It's probably more stable, but determinants in general are rather expensive to calculate.
    – mathreadler
    Apr 21 '17 at 10:29
















0














What is the best way in general to numerically calculate the determinant of a product of two matrices?



Calculate the matrix product first and then calculate the determinant of the result or calculate the determinants of the two matrices and subsequently multiply them?



The determinant calculation is done using tested routines (python-numpy i.e. LAPACK).










share|cite|improve this question






















  • "calculate the determinants of the two matrices and subsequently multiply them" - this is the more stable route. Generally, if you can avoid multiplying matrices before computing anything else (determinants, eigenvalues, etc.), do so.
    – J. M. is not a mathematician
    Apr 21 '17 at 10:13










  • It's probably more stable, but determinants in general are rather expensive to calculate.
    – mathreadler
    Apr 21 '17 at 10:29














0












0








0







What is the best way in general to numerically calculate the determinant of a product of two matrices?



Calculate the matrix product first and then calculate the determinant of the result or calculate the determinants of the two matrices and subsequently multiply them?



The determinant calculation is done using tested routines (python-numpy i.e. LAPACK).










share|cite|improve this question













What is the best way in general to numerically calculate the determinant of a product of two matrices?



Calculate the matrix product first and then calculate the determinant of the result or calculate the determinants of the two matrices and subsequently multiply them?



The determinant calculation is done using tested routines (python-numpy i.e. LAPACK).







numerical-linear-algebra






share|cite|improve this question













share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










asked Apr 21 '17 at 9:39









TheCat

11




11












  • "calculate the determinants of the two matrices and subsequently multiply them" - this is the more stable route. Generally, if you can avoid multiplying matrices before computing anything else (determinants, eigenvalues, etc.), do so.
    – J. M. is not a mathematician
    Apr 21 '17 at 10:13










  • It's probably more stable, but determinants in general are rather expensive to calculate.
    – mathreadler
    Apr 21 '17 at 10:29


















  • "calculate the determinants of the two matrices and subsequently multiply them" - this is the more stable route. Generally, if you can avoid multiplying matrices before computing anything else (determinants, eigenvalues, etc.), do so.
    – J. M. is not a mathematician
    Apr 21 '17 at 10:13










  • It's probably more stable, but determinants in general are rather expensive to calculate.
    – mathreadler
    Apr 21 '17 at 10:29
















"calculate the determinants of the two matrices and subsequently multiply them" - this is the more stable route. Generally, if you can avoid multiplying matrices before computing anything else (determinants, eigenvalues, etc.), do so.
– J. M. is not a mathematician
Apr 21 '17 at 10:13




"calculate the determinants of the two matrices and subsequently multiply them" - this is the more stable route. Generally, if you can avoid multiplying matrices before computing anything else (determinants, eigenvalues, etc.), do so.
– J. M. is not a mathematician
Apr 21 '17 at 10:13












It's probably more stable, but determinants in general are rather expensive to calculate.
– mathreadler
Apr 21 '17 at 10:29




It's probably more stable, but determinants in general are rather expensive to calculate.
– mathreadler
Apr 21 '17 at 10:29










1 Answer
1






active

oldest

votes


















0














Certainly, compute the two determinants of the factors individually. The matrix product can contain catastrophic roundoff error, destroying any evidence of the actual determinant. For example, consider the product
$$ begin{pmatrix} 1&0\10^9&1end{pmatrix}begin{pmatrix} 1&10^9\0&1end{pmatrix}
= begin{pmatrix} 1&10^9\10^9&10^{18}+1end{pmatrix}.$$

In IEEE double precision, that's
begin{pmatrix} 1&10^9\10^9&10^{18}end{pmatrix} whose determinant is $0$. Taking the product of the determinants of the original two matrics yields the correct answer $1$.






share|cite|improve this answer





















    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "69"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2244763%2fnumerically-stable-determinant-of-matrix-product%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Certainly, compute the two determinants of the factors individually. The matrix product can contain catastrophic roundoff error, destroying any evidence of the actual determinant. For example, consider the product
    $$ begin{pmatrix} 1&0\10^9&1end{pmatrix}begin{pmatrix} 1&10^9\0&1end{pmatrix}
    = begin{pmatrix} 1&10^9\10^9&10^{18}+1end{pmatrix}.$$

    In IEEE double precision, that's
    begin{pmatrix} 1&10^9\10^9&10^{18}end{pmatrix} whose determinant is $0$. Taking the product of the determinants of the original two matrics yields the correct answer $1$.






    share|cite|improve this answer


























      0














      Certainly, compute the two determinants of the factors individually. The matrix product can contain catastrophic roundoff error, destroying any evidence of the actual determinant. For example, consider the product
      $$ begin{pmatrix} 1&0\10^9&1end{pmatrix}begin{pmatrix} 1&10^9\0&1end{pmatrix}
      = begin{pmatrix} 1&10^9\10^9&10^{18}+1end{pmatrix}.$$

      In IEEE double precision, that's
      begin{pmatrix} 1&10^9\10^9&10^{18}end{pmatrix} whose determinant is $0$. Taking the product of the determinants of the original two matrics yields the correct answer $1$.






      share|cite|improve this answer
























        0












        0








        0






        Certainly, compute the two determinants of the factors individually. The matrix product can contain catastrophic roundoff error, destroying any evidence of the actual determinant. For example, consider the product
        $$ begin{pmatrix} 1&0\10^9&1end{pmatrix}begin{pmatrix} 1&10^9\0&1end{pmatrix}
        = begin{pmatrix} 1&10^9\10^9&10^{18}+1end{pmatrix}.$$

        In IEEE double precision, that's
        begin{pmatrix} 1&10^9\10^9&10^{18}end{pmatrix} whose determinant is $0$. Taking the product of the determinants of the original two matrics yields the correct answer $1$.






        share|cite|improve this answer












        Certainly, compute the two determinants of the factors individually. The matrix product can contain catastrophic roundoff error, destroying any evidence of the actual determinant. For example, consider the product
        $$ begin{pmatrix} 1&0\10^9&1end{pmatrix}begin{pmatrix} 1&10^9\0&1end{pmatrix}
        = begin{pmatrix} 1&10^9\10^9&10^{18}+1end{pmatrix}.$$

        In IEEE double precision, that's
        begin{pmatrix} 1&10^9\10^9&10^{18}end{pmatrix} whose determinant is $0$. Taking the product of the determinants of the original two matrics yields the correct answer $1$.







        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered Nov 24 at 4:16









        Don Hatch

        281112




        281112






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Mathematics Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2244763%2fnumerically-stable-determinant-of-matrix-product%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Plaza Victoria

            In PowerPoint, is there a keyboard shortcut for bulleted / numbered list?

            How to put 3 figures in Latex with 2 figures side by side and 1 below these side by side images but in...