Re: Programming question about multiple assignments in the Coefficients Matrix
- To: mathgroup at smc.vnet.net
- Subject: [mg28508] Re: Programming question about multiple assignments in the Coefficients Matrix
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Tue, 24 Apr 2001 01:48:46 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <9btras$1up@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, aa[n_, lst_] := Module[{k}, Set @@@ ( {k @@ Take[#, 2], Last[#]} & /@ lst); k[i_, j_] := 0; DiagonalMatrix[Table[-Sum[k[i, j], {j, 0, n}], {i, 1, n}]] + Table[k[j, i], {i, 1, n}, {j, 1, n}] ] and aa[3, {{1, 2, 2}, {2, 1, 1}, {1, 0, 0.7}, {1, 3, 0.3}, {3, 0, 1}, {3, 1, 1}}] will create the matrix. Regards Jens "J. Guillermo Sanchez" wrote: > > Dear friends: > > I have built the following expressions > > A[n_] := Module[{A}, A = DiagonalMatrix[Table[-Sum[k[i, j], {j, 0, > n}], {i, 1, n}]] + Table[k[j, i], {i, 1, n}, {j, 1, n}]]; > > k[i_,j_,a_:h]:=k[i,j]= Block[{h=0},a]; > > (This matrix is usually called Coefficients Matrix) > > With these functions I obtain the solution that I was looking for. For > instance: > > k[1,2,2] ;k[2,1,1];k[1,0,0.7];k[1,3,0.3] ;k[3,0,1];k[3,1,1]; > > A[3]//MatrixForm > > But need to apply the above functions in only one sentence to make a > package. I mean, I wish build a function like this (of course it doesn't > work) > > A[n_, k[i_,j_,a_:h]]:= > > Module[{k,A},A=DiagonalMatrix[Table[-Sum[k[i,j],{j,0,n}],{i,1,n}]]+Table[k[j,i],{i,1,n},{j,1,n}]; k=k[i,j]=Block[{h=0},a];A] > > In the way that it was applied obtaining the same solution that before > > A[3,k[1,2,2];k[2,1,1];k[1,0,0.7];k[1,3,0.3];k[3,0,1];k[3,1,1]]; > > Any suggestion?