For Programmers: Free Programming Magazines  


Home > Archive > Mathematica > October 2006 > Solve with dot products









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Solve with dot products
Oliver Friedrich

2006-10-24, 4:03 am

Hallo,

I have some difficulties with interpretation of a solution that Solve
returns.

In[2]:=
Solve[a.b.c==d,a]

From In[2]:=
Solve::ifun: Inverse functions are being used by Solve, so some solutions
may \
not be found.

Out[2]=
{{a\[Rule]InverseFunction[Dot,1,3][d,b,c
]}}

When I do that equation by hand I get something that I can't put into
correspondence with the solution above.

* means Inverse of a
(a.b)*=b*.a*

a.b.c=d |(_)*

c*.b*.a*=d* |c.

b*.a*=c.d* |b.

a*=b.c.d* |(_)*

a=d.c*.b*

b and c are swapped compared to the Mathematica solution.

1) Where's my error?
2) What's the interpretation of such an InverseFunction expression, I
don't get along the docu.
3) What's the z in InverseFunction[x,y,z][args] good for when I could
count the number of arguments in args?

Thanks a lot for your help


--
Regards

Oliver Friedrich

My email has no x!

Jens-Peer Kuska

2006-10-30, 7:42 pm

Hi,

you must write out your equations explicit because
Mathematica will not know that a, b,c and d
are matrices and not scalars, vectors or higher order
tensors ?

That's why the output of Mathematica
is nonsense because the Dot[] product
has no inverse and Mathematica thinks
that a,b,c,d are scalars.

Regards
Jens


Oliver Friedrich wrote:
> Hallo,
>
> I have some difficulties with interpretation of a solution that Solve
> returns.
>
> In[2]:=
> Solve[a.b.c==d,a]
>
> From In[2]:=
> Solve::ifun: Inverse functions are being used by Solve, so some solutions
> may \
> not be found.
>
> Out[2]=
> {{a\[Rule]InverseFunction[Dot,1,3][d,b,c
]}}
>
> When I do that equation by hand I get something that I can't put into
> correspondence with the solution above.
>
> * means Inverse of a
> (a.b)*=b*.a*
>
> a.b.c=d |(_)*
>
> c*.b*.a*=d* |c.
>
> b*.a*=c.d* |b.
>
> a*=b.c.d* |(_)*
>
> a=d.c*.b*
>
> b and c are swapped compared to the Mathematica solution.
>
> 1) Where's my error?
> 2) What's the interpretation of such an InverseFunction expression, I
> don't get along the docu.
> 3) What's the z in InverseFunction[x,y,z][args] good for when I could
> count the number of arguments in args?
>
> Thanks a lot for your help
>
>


dh

2006-10-30, 7:42 pm


Hi Oliver,
the manual and you are both right. The manual says about InverseFunction:
"InverseFunction[f][y] gives the value of x for which f[x] is equal to y"
therefore, InverseFunction[Dot,1,3][d,b,c] means, that value of x, that
makes Dot[x,b,c] equal to d and this is exactly your a. This solution is
implicite, wheras your solution is explicite and because of the
inversion, b and c are reversed.

Daniel

Oliver Friedrich wrote:
> Hallo,
>
> I have some difficulties with interpretation of a solution that Solve
> returns.
>
> In[2]:=
> Solve[a.b.c==d,a]
>
> From In[2]:=
> Solve::ifun: Inverse functions are being used by Solve, so some solutions
> may \
> not be found.
>
> Out[2]=
> {{a\[Rule]InverseFunction[Dot,1,3][d,b,c
]}}
>
> When I do that equation by hand I get something that I can't put into
> correspondence with the solution above.
>
> * means Inverse of a
> (a.b)*=b*.a*
>
> a.b.c=d |(_)*
>
> c*.b*.a*=d* |c.
>
> b*.a*=c.d* |b.
>
> a*=b.c.d* |(_)*
>
> a=d.c*.b*
>
> b and c are swapped compared to the Mathematica solution.
>
> 1) Where's my error?
> 2) What's the interpretation of such an InverseFunction expression, I
> don't get along the docu.
> 3) What's the z in InverseFunction[x,y,z][args] good for when I could
> count the number of arguments in args?
>
> Thanks a lot for your help
>
>


Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com