mathjs icon indicating copy to clipboard operation
mathjs copied to clipboard

Schur result not quasi upper triangular

Open jacksonloper opened this issue 1 month ago • 2 comments

Describe the bug A clear and concise description of what the bug is.

I think sometimes Schur returns a matrix that isn't quasi upper triangular.

To Reproduce Generic orthonormal matrices seem to create a problem. For example:

math.matrix([
      [-0.03591206220229135, -0.09100469507870354, 0.9952027277203429],
      [-0.3802068171617618, -0.9197139315803332, -0.09782157349362577],
      [0.9242040358990549, -0.38189583596928406, -0.0015717815434243287]
    ])

Possibly mathjs is running QR without a Wilkinson/Francis shift strategy?

Happy to contribute a PR on this if I'm not hallucinating the problem :).

jacksonloper avatar Nov 22 '25 05:11 jacksonloper

Thanks for reporting @jacksonloper! Help looking into this issue and improving the function if needed would be very welcome!

josdejong avatar Nov 26 '25 10:11 josdejong

I can confirm that on the input matrix M originally provided, schur(M) returns a result in which T is no quasi-upper-triangular (in fact, it appears that T is essentially M unchanged). That behavior is definitely a bug. And since linear algebra algorithms are definitely not my forte, a PR would be very welcome.

gwhitney avatar Dec 01 '25 22:12 gwhitney