The Mathematica Journal
Departments
Feature Articles
Tricks of the Trade
In and Out
Columns
New Products
New Publications
Classifieds
Calendar
Announcement
News Bulletins
New in the Library
Mailbox
FAQ
Contact Us
About the Journal
Staff and Contributors
Submissions
Subscriptions
Advertising
Back Issues
Home
Search
Download This Issue

Matrix Derivative

Given that is a matrix that varies with time , define its Moore-Penrose pseudoinverse, . How can I find a simplified expression for in terms of ?

Mathematica does not know how to differentiate an arbitrary matrix object.

Noting that

one approach is to define a rule that formally computes the derivative of the Inverse of an arbitrary invertible matrix, dividing through by the "additional" generated by the chain rule.

We also see that Mathematica does not know how to differentiate the transpose of a matrix object.

So we define a rule to correctly differentiate Transpose, again dividing through by .

Introducing the Moore-Penrose pseudoinverse, , as follows, we can now compute its derivative.

To expand this result we add some rules to Dot.

This expression simplifies somewhat, noting that and appear in the result.

We have used HoldForm so that we can recover the explicit expression if required.

For example, with

becomes

and the Moore-Penrose pseudoinverse is

The expression for in terms of and reads as follows.

It is straightforward to check that this result agrees with direct differentiation of .


Copyright © 2002 Wolfram Media, Inc. All rights reserved.