Re: 3d matrices and LUSOL [message #28991 is a reply to message #28986] |
Thu, 24 January 2002 15:22   |
Craig Markwardt
Messages: 1869 Registered: November 1996
|
Senior Member |
|
|
"M" <mrmanish@bigfoot.com> writes:
> Hi all,
>
> I am in desperate need of help!!
>
> I have a set of linear equations represented as matrix arrays which need to
> be solved using the LU decomposition technique. The two arrays consist of a
> 14 x 14 array, and a 14 x 1 array, but each element in the matrices itself
> is an array of 221 elements ( ie the matrices are 3dimensional...?)
>
> So i need to solve the system using LUDC and LUSOL, but i have to do it 221
> times (ie a solution for each 'layer' of the matrices)
>
> The first question is, is there a way to declare the two input arrays as
> 3-d? I tried defining the matrix using matrix=[[a,b,..],[...,...,...] etc]
> where a,b,... = arrays, but this isn't recognised as a 14 x14 square matrix
> which is 221 elements 'deep'. Instead, it expands each array across the
> row, making it a 3094 x 14 matrix. (it needs to be square to run LUDC)
>
> Is there a way i can force IDL to see it as a 'layered' 3-d matrix?
First of all, IDL can do up to eight dimensions. Since you mention
the notation [[a,b,...]], you are probably not getting the syntax
exactly right. It doesn't really matter though. If you really have a
3094 x 14 matrix, it is straightforward to use REFORM to make that
221x14x14 matrix (ie, matrix = reform(matrix,221,14,14))
I am pretty sure that LUDC/LUSOL will not handle a "3-d" matrix. Can
your solution be applied component by component? I.e., can you solve
each of the 221 14x14 matrix equations separately using a FOR loop?
Good luck,
Craig
--
------------------------------------------------------------ --------------
Craig B. Markwardt, Ph.D. EMAIL: craigmnet@cow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
------------------------------------------------------------ --------------
|
|
|