Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Pseudoinversing matrix .. is this correct?

by tall_man (Parson)
on Aug 11, 2005 at 23:18 UTC ( #483146=note: print w/ replies, xml ) Need Help??


in reply to Pseudoinversing matrix .. is this correct?

I see a couple of problems here. First, there seems to be confusion between the mxn matrix B (which you assigned to the variable $matrix) and the diagonal matrix in the decomposition (which you assigned to the variable $b).

Secondly, the diagonal result in $b is returned in the form of a single row. It must be converted to a diagonal matrix before you can work on it.

I would do something like this instead:

my $mt = transpose($matrix); my $m2 = $mt x $matrix; my $m2i = $m2->inv; my $psuedo = $m2i x $mt;

You will only need svd if the m2 matrix is singular or ill-conditioned. It will allow you to "fix" any near-zeros on the diagonal.


Comment on Re: Pseudoinversing matrix .. is this correct?
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://483146]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (9)
As of 2014-07-11 08:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (220 votes), past polls