From: Igor on 30 Jul 2010 06:57 Thank you! On Jun 3, 11:47 am, Igor <i.e.koz...(a)gmail.com> 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 discretizedLaplacianin 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 discretizedLaplacianis > 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: Peter Pein on 2 Aug 2010 07:02 Am Thu, 3 Jun 2010 09:47:11 +0000 (UTC) schrieb Igor <i.e.kozlov(a)gmail.com>: > 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? because A.x is row_i(A)*x you just need to extract the coefficients from b (using your nesting of vectors): In[3]:= Flatten[Outer[Coefficient,b,x,2],{2,3,4}] Out[3]= {{-4,1,1,0},{1,-4,0,1},{1,0,-4,1},{0,1,1,-4}} simple, isn't it? Peter
|
Pages: 1 Prev: A problem with Thread[] Next: assuming certain properties about variables |