Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Math::Cephes::Matrix(3User Contributed Perl DocumentatiMath::Cephes::Matrix(3)

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

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.

perl v5.32.1			  2016-05-06	       Math::Cephes::Matrix(3)

NAME | SYNOPSIS | DESCRIPTION | BUGS | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Math::Cephes::Matrix&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help