1#!/usr/bin/perl -w 2use Math::GSL::Matrix; 3use strict; 4my $matrix = Math::GSL::Matrix->new(2,2) 5 ->set_row(0, [0,-1] ) 6 ->set_row(1, [1, 0] ); 7print <<STUFF; 8Finding eigenvalue/eigenvectors for 9[ 0 -1 ] 10[ 1 0 ] 11STUFF 12 13# this actually calculates the eigenvalues and eigenvectors and returns 14# an array reference of eigenvalues (scalars which may be Math::Complex objects) 15# and an array reference of Math::GSL::VectorComplex objects 16my ($eigenvalues, $eigenvectors) = $matrix->eigenpair; 17my ($eig1,$eig2) = @$eigenvalues; 18my ($u,$v) = @$eigenvectors; 19my ($u1,$u2) = $u->as_list; 20my ($v1,$v2) = $v->as_list; 21 22print <<ANSWER; 23 24Eigenvectors: 25 26u = ($u1,$u2) 27v = ($v1,$v2) 28 29Eigenvalues: 30 31lambda_0 = $eig1 32lambda_1 = $eig2 33 34ANSWER 35