NucNrmApp: Python package for nuclear norm approximation

Zhang Liu and Lieven Vandenberghe

This webpage contains an earlier version of the software. The latest version is at CVXOPT’s applications section.

Introduction

NucNrmApp is a Python package for solving convex optimization with nuclear norm approximation term in the objective. The implementation exploits the structure in the primal-dual interior-point method to achieve a higher efficiency than general-purpose SDP solvers. Details of the algorithm is described in the paper Interior-point method for nuclear norm approximation with application to system identification by Z. Liu and L. Vandenberghe.

Download

  • Files: nucnrmapp.tar contains the solver, utility and example files.

NucNrmApp requires CVXOPT, which can be installed on both Linux and Windows platform. NucNrmApp is tested on CVXOPT version 1.1.

Instruction

The main function, nucnrmapp, is defined in the file “nucnrm.py”. It solves the nuclear norm approximation problem
 begin{array}{ll} mbox{minimize} & | mathcal A(x) + B |_* + frac{1}{2} (x-x_0)^TQ(x-x_0)  mbox{subject to} & Cx + d <= 0, end{array}
where mathcal A(x) = sum_{i=1}^n A_i x_i is a linear matrix valued mapping, |.|_* denotes the nuclear norm (sum of singular values), and Q is a positive diagonal matrix. Type “pydoc nucnrm.nucnrmapp” for more information. Two examples, defined in the files “ex_nna.py” and “ex_rnnali.py”, are included in the directory, each solves a randomly generated nuclear norm approximation problem.

The function, sysid defined in the file “sysid.py”, estimates a linear time-invariant state-space model from input and output sequences. Type “pydoc sysid.sysid” for more information. A system identification example “ex_sysid.py” is included in the directory, and it estimates the state-space model of a CD player arm, where the input-output data is obtained from the DaISy database.

The functions, read and write defined in the file “matfile.py”, can be used to import and export Matlab mat-files. Type “pydoc matfile” for more information.

Feedback

We welcome and appreciate any comments, suggestions and reports of applications of NucNrmApp. Please send feedback to Zhang Liu (zhang@ee.ucla.edu) or Lieven Vandenberghe (vandenbe@ee.ucla.edu).

Copyright information

NucNrmApp is free and distributed under the terms and conditions of the GNU General Public License.