From: Igor on
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
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