From: Igor on 3 Jun 2010 05:47 Hello! There are: A n*n matrix x n*1 matrix==column b n*1 matrix==column and the well known equation A.x==b I know columns x and b I want Mathematica to derive matrix A Of course, generally, this is a complicated problem, but in my case all values of matrix A are small (less than 20 in absolute value) integers, because I am interested in a very special case.(I am looking for the matrix of discretized Laplacian in D={1,2,3,4} dimensions) As an example of my problem for (D=2) n=2 we have: x= { {f[1, 1]}, {f[2, 1]}, {f[1, 2]}, {f[2, 2]} } b= { {-4 f[1, 1] + f[1, 2] + f[2, 1]}, {f[1, 1] - 4 f[2, 1] + f[2, 2]}, {f[1, 1] - 4 f[1, 2] + f[2, 2]}, {f[1, 2] + f[2, 1] - 4 f[2, 2]} } and the solution (the matrix A) is -4 1 1 0 1 -4 0 1 1 0 -4 1 0 1 1 -4 So, I would like Mathematica to do similar derivation of matrix A for me. I have the following questions: 1. Is there any method in Mathematica to find A from A.x==b if I know that this problem is well defined, I know x, b and that A elements have only integer values? 2. An obvious (or obviously mad :-) ) solution of the problem would be to perform an exhaustive search. I mean to ran n*n loops for all elements of matrix A from -20 to 20 till A.x==b. But, I don't know how to perform this in Mathematica (as the number of loops is n*n and thus depend on n, that I want to vary). 3. If the matrix A of the discretized Laplacian is written somewhere for cases D==3 and D==4, please, send me a link. Thank you very much for your attention! All suggestions are welcome!
From: Sseziwa Mukasa on 4 Jun 2010 08:00 On Jun 3, 2010, at 5:39 AM, Igor wrote: > Hello! > > There are: > A n*n matrix > x n*1 matrix====column > b n*1 matrix====column > and the well known equation > A.x====b > > I know columns x and b > I want Mathematica to derive matrix A > > Of course, generally, this is a complicated problem, but > in my case all values of matrix A are small (less than 20 > in absolute value) integers, because I am interested in a > very special case.(I am looking for the matrix of discretized > Laplacian in D=={1,2,3,4} dimensions) > > As an example of my problem > for (D==2) n==2 we have: > x== { > {f[1, 1]}, > {f[2, 1]}, > {f[1, 2]}, > {f[2, 2]} > } > b== > { > {-4 f[1, 1] + f[1, 2] + f[2, 1]}, > {f[1, 1] - 4 f[2, 1] + f[2, 2]}, > {f[1, 1] - 4 f[1, 2] + f[2, 2]}, > {f[1, 2] + f[2, 1] - 4 f[2, 2]} > } > and the solution (the matrix A) is > -4 1 1 0 > 1 -4 0 1 > 1 0 -4 1 > 0 1 1 -4 > > So, I would like Mathematica to do similar > derivation of matrix A for me. > > I have the following questions: > > 1. Is there any method in Mathematica to find A from > A.x====b if I know that this problem is well defined, > I know x, b and that A elements have only integer values? I don't know of anything specifically focussed on your problem, but in the example you've given you can determine A using Coefficient: Table[Coefficient[b[[r]],x[[c,1]]],{r,Length[b]},{c,Length[x]}] This of course will only work if the elements of x are symbols. > > 2. An obvious (or obviously mad :-) ) solution of the problem > would be to perform an exhaustive search. I mean to > ran n*n loops for all elements of matrix A from -20 to 20 > till A.x====b. But, I don't know how to perform this in > Mathematica (as the number of loops is n*n and thus > depend on n, that I want to vary). You could try using Minimize Module[{a},Minimize[Prepend[Flatten[Table[Abs[a[r,c]]<=,{r,Length[b]},{c,Length[x]}]],Array[a[##]&,{Length[b],Length[x]}].x],Flatten[Table[a[r,c],{r,Length[b]},{c,Length[x]}]],Integers] > Thank you very much for your attention! > All suggestions are welcome! I couldn't test my suggested expressions because my Mathematica kernel is busy, but I think you should get the gist of what I was trying to do. Best Regards, Ssezi
|
Pages: 1 Prev: Export Next: Puzzlement about DumpSave (and/or DownValues) |