[Date Index] [Thread Index] [Author Index]
Out of memory.
I am rather new to mathematica so it is likely that I am doing some rather naive things. I have m1X20 matrix with matrix elements m1_ij=Cij P^lij S^nij. nij and lij are real numbers. Cij =1 or 0. I take the power matrix of m1^N m2 = MatrixPower[m1, N] Then need o extract the exponents of P and S and the coefficients of each of the terms in the resulting polynomial and write them to file. I do the following: For[i = 0, i < 20, i++; For[j = 0, j < 20, j++; eepol = Expand[m2[[i, j]]]; k = Length[eepol]; For[i1 = 0, i1 < k, i1++; w0[l_, n_] = Part[eepol, i1]; x1 = Exponent[w0[l, n], l]; x2 = Exponent[w0[l, n], n]; x3 = Coefficient[ w0[l, n], l^x1*n^x2]; dn = x2*0.25*Pi/(1.95*x1); Write[s1, x3]; Write[s, dn]; ] ]] This works slowly, but fine when N=10 but I run out of memory on a 128GB machine when N. I plotted the memory use as a function of cycles through the inner loop and find that it grows linearly which might account for the out of memory since there are a large number of terms. If anyone can suggest a faster and more memory efficient method it would be much appreciated. Cheers Richard