Where are phi, x, y on the diagram?

Jason
moorepants.info
+01 530-601-9791

On Sat, Jun 11, 2016 at 6:35 AM, <[email protected]> wrote:

> I guess its hard to get from my description, so i uploaded a drawing to
> visualize the physical problem: http://pasteboard.co/1Bvt53hY.png
>
> Thanks for your interest!
>
>
>
> On Saturday, June 11, 2016 at 3:13:52 PM UTC+2, [email protected] wrote:
>>
>>
>> Physically, the rows of A are three points fixed on a movable board.
>>
>> These points run freely in three linear bearings which are placed on a
>> fixed base.
>>
>> The linear bearings are described in hesse normal form in the rows of
>> matrix C.
>>
>> The robust motion matrix B is the transformation which transforms points
>> on the board to points in the base.
>>
>> So together my constraint D = (A * B) * C means
>> - Transform the points in A from the board to the base: A * B
>> - Compute the distance from the linear bearings: * C
>> - Claim that the distances are zero and solve for the motion
>>
>> I am aware that there are some other approaches to tackle this problem,
>> but i was not able to get a grip on them such that i could formulate them
>> in code.
>>
>>
>>
>> On Saturday, June 11, 2016 at 1:50:25 PM UTC+2, brombo wrote:
>>>
>>> Physically what are all the matrices.  Do A and C also describe
>>> rotations.  Please give the actual physics problem as well as the resulting
>>> math.
>>>
>>> On Sat, Jun 11, 2016 at 6:37 AM, <[email protected]> wrote:
>>>
>>>> My description was a little compressed, so i had to clean up the code
>>>> to match my description again ...
>>>> The code is available here: http://pastebin.com/MMW3B88h
>>>> I hope its readable for you.
>>>>
>>>>
>>>>
>>>> Am Donnerstag, 9. Juni 2016 20:24:35 UTC+2 schrieb Jason Moore:
>>>>>
>>>>> Can you please share the code so we can see what you are doing?
>>>>>
>>>>>
>>>>> Jason
>>>>> moorepants.info
>>>>> +01 530-601-9791
>>>>>
>>>>> On Wed, Jun 8, 2016 at 11:58 PM, <[email protected]> wrote:
>>>>>
>>>>>> I am trying to solve a system of equations with sympy that arises
>>>>>> from a constraint of the form:
>>>>>>
>>>>>>   (A x B) x C = D
>>>>>>
>>>>>> where
>>>>>>
>>>>>> * A, B, C and D are 3x3 matrices
>>>>>> * the diagonal of D should be zero
>>>>>> * B is a "rigid motion 2D" transformation, with elements cos(phi),
>>>>>> +-sin(phi), x and y
>>>>>> * A and C are fully filled with (supposedly known) values
>>>>>> * I want to solve for phi, x and y
>>>>>>
>>>>>> This gives me four equations:
>>>>>>
>>>>>> * one for each diagonal element in D
>>>>>> * one additional (quadratic) equation sin^2(phi) + cos^2(phi) = 1
>>>>>>
>>>>>> When feeding those to equations directly to sympy, this takes some
>>>>>> hours and then breaks with an out of memory message.
>>>>>>
>>>>>> My next approach was to help sympy by guiding the solution step by
>>>>>> step (*).
>>>>>>
>>>>>> * First i took two of the linear equations and let sympy solve for x
>>>>>> and y (works great)
>>>>>> * Instead of having cos(phi) and sin(phi) in the B matrix, i
>>>>>> introduced new symbols cosphi and sinphi
>>>>>> * Then i took the resulting expressions for x and y, and solve with
>>>>>> the third linear equation for the cosphi element (works too)
>>>>>> * Finally i tried to solve the quadratic equation for sinphi by
>>>>>> inserting the just gathered cosphi expression
>>>>>> * The last step was not feasible without transforming the expression
>>>>>> to a polynom in sinphi and by replacing all coefficient expressions by 
>>>>>> new
>>>>>> symbols, then it worked
>>>>>>
>>>>>> The resulting expressions for x, y and phi (written as python
>>>>>> expressions) are about 3 MB (!) of text.
>>>>>>
>>>>>> This does not seem to be adequate to the problem, and when converting
>>>>>> to a theano function i get "maximum recursion depth exceeded".
>>>>>> When i look at the expressions they are very repetitive, so i tried
>>>>>> CSE, which brings it down to about 30 KB, but they are still very
>>>>>> repetitive and full of patterns.
>>>>>>
>>>>>> I suspect that the resulting expressions actually just perform some
>>>>>> matrix operations, so probably there would be an efficient way to compute
>>>>>> the solution if only one could get back to matrix expressions.
>>>>>> I tried to guess what the appropriate matrix operations are, but
>>>>>> without success (**). And this feels of course very wrong and backwards.
>>>>>>
>>>>>> Is there some obvious approach to such problems that i missed? Is the
>>>>>> problem actually that hard?
>>>>>>
>>>>>> I am aiming for a mostly automated solution process without steps
>>>>>> like (*) and (**), because i have a hand full of very similar problems
>>>>>> ahead ...
>>>>>> Any hint appreciated!
>>>>>>
>>>>>> --
>>>>>> Best regards
>>>>>> Janosch
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "sympy" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> To post to this group, send email to [email protected].
>>>>>> Visit this group at https://groups.google.com/group/sympy.
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/d/msgid/sympy/8555837f-d87d-484c-b882-2d8f7085d3b2%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/sympy/8555837f-d87d-484c-b882-2d8f7085d3b2%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "sympy" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at https://groups.google.com/group/sympy.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/sympy/ccde273d-ee0e-46bc-a822-7d1b9ff88f7e%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/sympy/ccde273d-ee0e-46bc-a822-7d1b9ff88f7e%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/f68853ca-2a1f-4ef1-a371-340602cbd63d%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/f68853ca-2a1f-4ef1-a371-340602cbd63d%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAP7f1Ah4Qip9S%2BMN6%3DiW%2B446dVrcM76_A6aoCrZY4Z4fo%3D_pWw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to