Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Large SparseArray in Mathematica 9 and the predictive interface

  • To: mathgroup at smc.vnet.net
  • Subject: [mg129308] Re: Large SparseArray in Mathematica 9 and the predictive interface
  • From: Bob Hanlon <hanlonr357 at gmail.com>
  • Date: Mon, 31 Dec 2012 19:45:31 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <20121231015009.7BF9F6857@smc.vnet.net>

Turn off the predictive interface by unchecking:  Mathematica |
Preferences... | Show Suggestions Bar after last input.

Also, your Module does not need an explicit Return nor a definition
for the local variable res.

gmat[K_,l_,m_]:=Module[
    {bandU,bandL,bandD},
    bandU=Table[l,{K-1}];
    bandL=Table[m,{K-1}];
    bandD=Table[-l-m,{K}];
    bandD[[1]]=-l;
    bandD[[K]]=-m;
    DiagonalMatrix[SparseArray[bandU],1]+
      DiagonalMatrix[SparseArray[bandD]]+
      DiagonalMatrix[SparseArray[bandL],-1]];

g1=gmat[100,0.8,1]

SparseArray[<298>,{100,100}]

Unitize[g1 // Flatten] // Total

298

g2=gmat[10000,0.8,1]

SparseArray[<29998>,{10000,10000}]

Unitize[g2 // Flatten] // Total

29998


Bob Hanlon


On Sun, Dec 30, 2012 at 8:50 PM,  <jmmv73 at gmail.com> wrote:
> Hi there,
>
> I was generating a banded sparse array with the following code
> in the new Mathematica 9.0:
>
> gmat[K_, l_, m_] :=
>   Module[{bandU, bandL, bandD, res},
>
>    bandU = Table[l, {K - 1}];
>    bandL = Table[m, {K - 1}];
>    bandD = Table[-l - m, {K}];
>    bandD[[1]] = -l;
>    bandD[[K]] = -m;
>
>    res = DiagonalMatrix[SparseArray[bandU], 1]
>      + DiagonalMatrix[SparseArray[bandD]]
>      + DiagonalMatrix[SparseArray[bandL], -1];
>
>    Return[res];
>    ];
>
>
> then I used the function with the following parameters (without semicolon):
>
>
> gmat[100, 0.8, 1]
>
>
> ...and everything was ok! a 100x100 sparse matrix was created and the
> "predictive interface bar" appeared.
>
> Nevertheless, when I typed (without semicolon):
>
>
> gmat[10000, 0.8, 1]
>
>
> ...everything went not so good, a 10000x10000 sparse matrix was created
> (what was ok), but the kernel went nuts with the memory use, some gigabytes
> for a small sparsearray (You can try with greater parameters, but starting
> with K=5000 things go weird)
>
> I think the problem has to do with the "predictive interface" that tries to
> generate the normal form of the matrix, so it uses a lot of memory (and even
> produces a kernel crash).
>
> Has anyone had the same problem with SparseArray? or have any
> explanation to what actually happens? or it is just me?
>
> Many thanks in advance for any help or advice with this issue.
>
> Regards,
>
>  Jose M. Martinez
>  Ph.D. Student
>  Department of Electronic Engineering
>  Universidad Tecnica Federico Santa Maria
>  Valparaiso, Chile
>



  • Prev by Date: PolynomialQuotient slow
  • Next by Date: How to discard negative solutions
  • Previous by thread: Large SparseArray in Mathematica 9 and the predictive interface
  • Next by thread: Re: Large SparseArray in Mathematica 9 and the predictive interface