Here is Pari/GP - code
Example. With dim=8 I got after 8 iterations for N:
Of course, to make this more flexible for varying fractional powers of M you'll need diagonalization - but then the required "realprecision" becomes exorbitant for dim=32 and more. For reference, I call this method the "polynomial method" because by the matrix being of finite size this is a polynomial approximation and no attempt is done to produce N in a way, that it basically maintains the structure of a Carlemanmatrix when fractional powers are computed. If this is wanted, the conjugacy using the complex fixpoint is needed before the diagonalization and the generation of a power series with complex coefficients to have the famous Schröder-function by the eigenvectors-matrices. After that, Sheldon has the method to proceed backwards to a real-to-real solution after H. Kneser (which seems to be possibly the limit of the above construction when the matrix size goes to infinity).
Gottfried
Code:
default(realprecision,200) \\ increase internal precision to 800 digits or higher when matrixsize more than, say, 64 ...
default(format,"g0.12") \\ only 12 digits for display of float numbers
dim=16 \\ increase later, when everything works, but stay less then, say, 128
M = matrix(dim,dim,r,c,(c-1)^(r-1)/(r-1)!) \\ carlemanmatrix, transposed, series-coefficients along a column!
M=1.0*M \\it is better to have float-values in M otherwise the number-of-digits in N explodes over iterations
N = matid(dim)
N = (M * N^-1 + N) / 2
N = (M * N^-1 + N) / 2
N = (M * N^-1 + N) / 2
/* ... do this a couple of times to get convergence; careful: not too often to avoid numerical errors/overflow*/
/* note, N's expected property of being Carleman-type shall be heavily distorted. */
M - N*N \\ check for sanity, the difference should be near zero
/* define the function; */
exp05(x) = sum(k=1,dim, x^k * N[k,2]) \\ only for x in interval with good convergence (0<=x<1 )
/* try, 6 to eight digits might be correct when dim is at least 32 x32 /*
x0 = 0
x05 = exp05(x0) \\ this should be the half-iterate about 0.498692160537
x1 = exp05(x05) \\ this should be the full iterate and equal exp(x0)=1 and is about 1.00012482606
x1 - exp(x0) \\ check errorExample. With dim=8 I got after 8 iterations for N:
Code:
N=
1.00000000000 0.498692160537 0.248258284527 0.123313067961 0.0613783517169 0.0309705773951 0.0161518156415 0.00900178983873
0 0.876328584414 0.875668009082 0.651057846300 0.427494354197 0.262472285853 0.155983031832 0.0925625176728
0 0.246718723415 1.01708995680 1.34271949385 1.26030722116 0.991600974872 0.698202964055 0.456331269934
0 0.0248938874134 0.453724180460 1.35543926159 2.03890540259 2.20219490711 1.93455428276 1.45660923676
0 -0.000559114024252 0.101207623371 0.716292108758 1.94548221867 3.15424069454 3.69849457008 3.40094743897
0 0.000132927042876 0.0119615040464 0.219667721568 1.11333664588 2.97146364527 5.09318298067 6.20122030134
0 0.0000114543791108 0.00113904404837 0.0431682924811 0.396012087313 1.78179566161 5.01623097009 9.19538628629
0 -0.00000540376918712 0.000111767358395 0.00661697871499 0.0933915529553 0.665946396103 3.15521910471 11.3987254320Of course, to make this more flexible for varying fractional powers of M you'll need diagonalization - but then the required "realprecision" becomes exorbitant for dim=32 and more. For reference, I call this method the "polynomial method" because by the matrix being of finite size this is a polynomial approximation and no attempt is done to produce N in a way, that it basically maintains the structure of a Carlemanmatrix when fractional powers are computed. If this is wanted, the conjugacy using the complex fixpoint is needed before the diagonalization and the generation of a power series with complex coefficients to have the famous Schröder-function by the eigenvectors-matrices. After that, Sheldon has the method to proceed backwards to a real-to-real solution after H. Kneser (which seems to be possibly the limit of the above construction when the matrix size goes to infinity).
Gottfried
Gottfried Helms, Kassel

