GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MATH::CEPHES::MATRIX (3)

.ds Aq ’

NAME

Math::Cephes::Matrix - Perl interface to the cephes matrix routines

CONTENTS

SYNOPSIS



  use Math::Cephes::Matrix qw(mat);
  # mat is a shortcut for Math::Cephes::Matrix->new
  my $M = mat([ [1, 2, -1], [2, -3, 1], [1, 0, 3]]);
  my $C = mat([ [1, 2, 4], [2, 9, 2], [6, 2, 7]]);
  my $D = $M->add($C);          # D = M + C
  my $Dc = $D->coef;
  for (my $i=0; $i<3; $i++) {
    print "row $i:\n";
    for (my $j=0; $j<3; $j++) {
        print "\tcolumn $j: $Dc->[$i]->[$j]\n";
    }
  }



DESCRIPTION

This module is a layer on top of the basic routines in the cephes math library for operations on square matrices. In the following, a Math::Cephes::Matrix object is created as



  my $M = Math::Cephes::Matrix->new($arr_ref);



where $arr_ref is a reference to an array of arrays, as in the following example:



  $arr_ref = [ [1, 2, -1], [2, -3, 1], [1, 0, 3] ]



which represents



     / 1   2  -1  \
     | 2  -3   1  |
     \ 1   0   3  /



A copy of a Math::Cephes::Matrix object may be done as



  my $M_copy = $M->new();



    Methods

coef: get coefficients of the matrix


 SYNOPSIS:

 my $c = $M->coef;

 DESCRIPTION:



This returns an reference to an array of arrays containing the coefficients of the matrix.

clr: set all coefficients equal to a value.


 SYNOPSIS:

 $M->clr($n);

 DESCRIPTION:



This sets all the coefficients of the matrix identically to $n. If $n is not given, a default of 0 is used.

add: add two matrices


 SYNOPSIS:

 $P = $M->add($N);

 DESCRIPTION:



This sets $P equal to $M + $N.

sub: subtract two matrices


 SYNOPSIS:

 $P = $M->sub($N);

 DESCRIPTION:



This sets $P equal to $M - $N.

mul: multiply two matrices or a matrix and a vector


 SYNOPSIS:

 $P = $M->mul($N);

 DESCRIPTION:



This sets $P equal to $M * $N. This method can handle matrix multiplication, when $N is a matrix, as well as matrix-vector multiplication, where $N is an array reference representing a column vector.

div: divide two matrices


 SYNOPSIS:

 $P = $M->div($N);

 DESCRIPTION:



This sets $P equal to $M * ($N)^(-1).

inv: invert a matrix


 SYNOPSIS:

 $I = $M->inv();

 DESCRIPTION:



This sets $I equal to ($M)^(-1).

transp: transpose a matrix


 SYNOPSIS:

 $T = $M->transp();

 DESCRIPTION:



This sets $T equal to the transpose of $M.

simq: solve simultaneous equations


 SYNOPSIS:

 my $M = Math::Cephes::Matrix->new([ [1, 2, -1], [2, -3, 1], [1, 0, 3]]);
 my $B = [2, -1, 10];
 my $X = $M->simq($B);
 for (my $i=0; $i<3; $i++) {
    print "X[$i] is $X->[$i]\n";
  }



where $M is a Math::Cephes::Matrix object, $B is an input array reference, and $X is an output array reference.



 DESCRIPTION:



A set of N simultaneous equations may be represented in matrix form as



  M X = B



where M is an N x N square matrix and X and B are column vectors of length N.

eigens: eigenvalues and eigenvectors of a real symmetric matrix


 SYNOPSIS:

 my $S = Math::Cephes::Matrix->new([ [1, 2, 3], [2, 2, 3], [3, 3, 4]]);
 my ($E, $EV1) = $S->eigens();
 my $EV = $EV1->coef;
 for (my $i=0; $i<3; $i++) {
   print "For i=$i, with eigenvalue $E->[$i]\n";
   my $v = [];
   for (my $j=0; $j<3; $j++) {
     $v->[$j] = $EV->[$i]->[$j];
   }
   print "The eigenvector is @$v\n";
 }



where $M is a Math::Cephes::Matrix object representing a real symmetric matrix. $E is an array reference containing the eigenvalues of $M, and $EV is a Math::Cephes::Matrix object representing the eigenvalues, the ith row corresponding to the ith eigenvalue.



 DESCRIPTION:



If M is an N x N real symmetric matrix, and X is an N component column vector, the eigenvalue problem



  M X = lambda X



will in general have N solutions, with X the eigenvectors and lambda the eigenvalues.

BUGS

Please report any to Randy Kobes <randy@theoryx5.uwinnipeg.ca>

COPYRIGHT

The C code for the Cephes Math Library is Copyright 1984, 1987, 1989, 2002 by Stephen L. Moshier, and is available at http://www.netlib.org/cephes/. Direct inquiries to 30 Frost Street, Cambridge, MA 02140.

The perl interface is copyright 2000, 2002 by Randy Kobes. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 MATH::CEPHES::MATRIX (3) 2014-01-31

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.