The question is just if you can derive equations without radicals that
are simpler than those generated by unrad. The ones generated by unrad
are already too complicated because you have a pair of multivariate
quartics. Only if you are lucky could that lead to any explicit
analytic solution in radicals.

Note that if you choose numbers for some or all of the symbolic
parameters then the problem becomes much easier to solve. The main
thing that is difficult here is computing a solution in terms of
arbitrary parameters because the expression for that solution is
probably extremely complicated (and therefore unlikely to be of much
use anyway).

--
Oscar

On Sun, 7 Aug 2022 at 03:37, Kevin Pauba <[email protected]> wrote:
>
> Also, oscar, none of the radicals in the formulas are due to my getting the 
> lengths.  All q* terms are quadrances ... no lengths are used in the 
> formulas.  I should have said quadrance of DP (the square of the length of 
> the segment DP) instead of just segment DP.  Once I have the values for q1, 
> q2, q_dp and s, I'll convert them to length and angles for human consumption.
>
> On Saturday, August 6, 2022 at 2:26:36 PM UTC-7 Kevin Pauba wrote:
>>
>> Oscar, I think I misstated something about rational trig that reinforces 
>> your statement that it avoids square roots.  Maybe there is some 
>> manipulation of the equations (similar in spirit to using sympy.unrad()) 
>> that would keep them in a form that doesn't require the square roots.  It 
>> would seem that sqrt would only be needed in the very last step when 
>> evaluating the quadrances when I want a final distance measure once solved ( 
>> d = sqrt(q1), for instance).
>>
>> On Saturday, August 6, 2022 at 10:35:38 AM UTC-7 Kevin Pauba wrote:
>>>
>>> Rational trigonometry totally eschews the use of transcendental functions 
>>> like sine and cosine.  The "Triple Spread Formula" relating the speads to 
>>> the quadrances, for example, is quadratic (as is the "Triple Quad Formula") 
>>> -- the use of square roots is unavoidable.
>>>
>>> After working the same problem using traditional circular functions (sine & 
>>> cosine), I was pleased to see a much simpler solution (that took relatively 
>>> little processing time).  I am intrigued with rational trigonometry but a 
>>> bit disappointed that a solution is more elusive.
>>>
>>> On Saturday, August 6, 2022 at 9:14:19 AM UTC-7 Oscar wrote:
>>>>
>>>> The equations you are attempting to solve lead to a very complicated
>>>> Groebner basis that is slow to compute (I'm not sure how long it
>>>> takes) and probably gives quite a complicated expression for the
>>>> solution.
>>>>
>>>> It might be better if you can derive the equations without introducing
>>>> radicals i.e. to work with the quadrances rather than square rooting
>>>> them to get lengths. I'm not sure how you derived this but I imagine
>>>> the intention of rational geometry is to avoid things like square
>>>> roots.
>>>>
>>>> On Sat, 6 Aug 2022 at 16:22, Kevin Pauba <[email protected]> wrote:
>>>> >
>>>> > That might be another approach but this represents an applied geometry 
>>>> > problem (mechanics). The segment DP (along with s) is an input measure 
>>>> > that is easy to determine/specify.
>>>> >
>>>> > On Saturday, August 6, 2022 at 4:45:13 AM UTC-7 [email protected] wrote:
>>>> >>
>>>> >>
>>>> >> Kevin, I took a look at some of the rational geometry links -- it makes 
>>>> >> me wonder if you might approach the relationship between Q1 and Q2 and 
>>>> >> the area of the triangle extending past the line instead of simply the 
>>>> >> length DP.
>>>> >>
>>>> >> /c
>>>> >> On Friday, August 5, 2022 at 9:11:39 PM UTC-5 [email protected] wrote:
>>>> >>>
>>>> >>> Hi Oscar,
>>>> >>>
>>>> >>> That very well may be (as you've noticed, I'm not well versed in math 
>>>> >>> as I once was). This is an applied geometry problem (see attached 
>>>> >>> diagram) where the triangle rotates about point A. I am solving for 
>>>> >>> the relationships between q1 and q2, the perpendicular distance from P 
>>>> >>> to the base of the triangle (segment DP) and the angular measure s 
>>>> >>> using rational trigonometry (see 
>>>> >>> https://stijnoomes.com/laws-of-rational-trigonometry/). I have a 
>>>> >>> solution using sin, cos but I'm interested in this alternative method.
>>>> >>>
>>>> >>> equ1 in my working example solves for the segment DP given q1, q2 and 
>>>> >>> s (and angular measure). The problem presented here is to determine q1 
>>>> >>> and q2 given two known segments and angular measures (q_dp1, s1) and 
>>>> >>> (q_dp2, s2).
>>>> >>>
>>>> >>> I hope this makes sense and that the information might help you help 
>>>> >>> me.
>>>> >>>
>>>> >>> Thanks for taking the time looking into it!
>>>> >>>
>>>> >>> On Friday, August 5, 2022 at 4:50:09 PM UTC-7 Oscar wrote:
>>>> >>>>
>>>> >>>> I just had a quick look and I think that maybe this has a positive
>>>> >>>> dimensional solution set.
>>>> >>>>
>>>> >>>> On Fri, 5 Aug 2022 at 16:08, Kevin Pauba <[email protected]> wrote:
>>>> >>>> >
>>>> >>>> > Here's the minimal working example (except for it hanging on 
>>>> >>>> > solve()):
>>>> >>>> >
>>>> >>>> > import sympy as sym
>>>> >>>> > from sympy import sqrt
>>>> >>>> >
>>>> >>>> > q1, q2, s, s1, s2, q_dp1, q_dp2 = sym.symbols('Q_1, Q_2, s, s_1, 
>>>> >>>> > s_2, Q_dp_1, Q_dp_2')
>>>> >>>> >
>>>> >>>> > equ1 = q1*s - q2*s + 2*q2 - 2*sqrt(q2*(q1*s - q2*s + q2 + 
>>>> >>>> > 2*sqrt(q1*q2*s*(1 - s)))) + 2*sqrt(q1*q2*s*(1 - s))
>>>> >>>> >
>>>> >>>> > eq1 = equ1.subs({ s: s1 }) - q_dp1
>>>> >>>> > print(f"{eq1} = 0")
>>>> >>>> >
>>>> >>>> > eq2 = equ1.subs({ s: s2 }) - q_dp2
>>>> >>>> > print(f"{eq2} = 0")
>>>> >>>> >
>>>> >>>> > soln = sym.solve([eq1, eq2], (q1, q2), simplify=False)
>>>> >>>> > print(f"soln = {soln}")
>>>> >>>> >
>>>> >>>> > On Friday, August 5, 2022 at 7:47:07 AM UTC-7 Oscar wrote:
>>>> >>>> >>
>>>> >>>> >> You should be able to obtain a parametric Groebner basis to 
>>>> >>>> >> represent
>>>> >>>> >> the solutions of this system. Whether that leads to an explicit
>>>> >>>> >> solution in radicals is hard to say without trying.
>>>> >>>> >>
>>>> >>>> >> I would demonstrate how to do this but the code for putting 
>>>> >>>> >> together
>>>> >>>> >> the equations is incomplete.
>>>> >>>> >>
>>>> >>>> >> On Fri, 5 Aug 2022 at 14:01, Chris Smith <[email protected]> wrote:
>>>> >>>> >> >
>>>> >>>> >> > If you remove the radicals (`sympy.solvers.solvers.unrad(eq1)`) 
>>>> >>>> >> > and replace `Q1` and `Q2` with `x` and `y` and `Q_dp_1` with a 
>>>> >>>> >> > and `s1` with `b` you will get an expression that is of degree 4 
>>>> >>>> >> > in every variable and can be split into a term with `a` and `b` 
>>>> >>>> >> > and a term with only `b` -- both with `x` and `y`.
>>>> >>>> >> >
>>>> >>>> >> > u1 = a*(a**3 - 4*a**2*y*(2 - b) - 2*a*y**2*(-3*b**2 + 8*b - 8) - 
>>>> >>>> >> > 4*b**3*x**3 + 2*b**2*(-x**2*(-3*a + 2*y*(b - 2)) + 2*y**3*(b - 
>>>> >>>> >> > 2)) - 4*b*x*(a**2 + a*y*(b - 2) + y**2*(-b**2 - 8*b + 8))) + \
>>>> >>>> >> > b**2*(b*(x**2 + y**2) + 2*x*y*(b - 2))**2
>>>> >>>> >> >
>>>> >>>> >> > Replace a,b with c,d (for `q_dp_2` and `s2`) to get `u2`. I 
>>>> >>>> >> > can't imagine that solving a pair of quartics is going to give a 
>>>> >>>> >> > nice solution. But solving this system with known values for `a` 
>>>> >>>> >> > and `b` would be straightforward with `nsolve`.
>>>> >>>> >> >
>>>> >>>> >> > /c
>>>> >>>> >> >
>>>> >>>> >> > On Thursday, August 4, 2022 at 11:54:24 PM UTC-5 
>>>> >>>> >> > [email protected] wrote:
>>>> >>>> >> >>
>>>> >>>> >> >> And eq1=Q_1*s_1 - Q_2*s_1 + 2*Q_2 - Q_dp_1 - 
>>>> >>>> >> >> 2*sqrt(Q_2*(Q_1*s_1 - Q_2*s_1 + Q_2 + 2*sqrt(Q_1*Q_2*s_1*(1 - 
>>>> >>>> >> >> s_1)))) + 2*sqrt(Q_1*Q_2*s_1*(1 - s_1)) ... sorry, long day!
>>>> >>>> >> >>
>>>> >>>> >> >> On Thursday, August 4, 2022 at 9:39:53 PM UTC-7 Kevin Pauba 
>>>> >>>> >> >> wrote:
>>>> >>>> >> >>>
>>>> >>>> >> >>> Sorry, Jeremy. Good suggestion!
>>>> >>>> >> >>>
>>>> >>>> >> >>> s1, s2, q_dp1, q_dp2 = sym.symbols('s_1, s_2, Q_dp_1, Q_dp_2')
>>>> >>>> >> >>> eq1 = equ1.subs({ s: s1 }) - q_dp1
>>>> >>>> >> >>> md( "$" + sym.latex(eq1) + " = 0$\n" )
>>>> >>>> >> >>>
>>>> >>>> >> >>> eq2 = equ1.subs({ s: s2 }) - q_dp2
>>>> >>>> >> >>> md( "$" + sym.latex(eq2) + " = 0$\n" )
>>>> >>>> >> >>>
>>>> >>>> >> >>> soln = sym.solve([eq1, eq2], q1, q2)
>>>> >>>> >> >>> print(f"soln = {soln}")
>>>> >>>> >> >>>
>>>> >>>> >> >>> I'll set simplify to False and see how it goes ...
>>>> >>>> >> >>> On Thursday, August 4, 2022 at 8:18:00 PM UTC-7 Kevin Pauba 
>>>> >>>> >> >>> wrote:
>>>> >>>> >> >>>>
>>>> >>>> >> >>>> I've attached a portion of a jupyter notebook. I'm attempting 
>>>> >>>> >> >>>> to solve a simultaneous equation using sympy. The sym.solve() 
>>>> >>>> >> >>>> in the green input box doesn't return (well, I waited over 
>>>> >>>> >> >>>> night on my macbook pro). Might the solution be intractable? 
>>>> >>>> >> >>>> Is there another way to get a solution? Any help is greatly 
>>>> >>>> >> >>>> appreciated.
>>>> >>>> >> >
>>>> >>>> >> > --
>>>> >>>> >> > 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 view this discussion on the web visit 
>>>> >>>> >> > https://groups.google.com/d/msgid/sympy/72f1b075-dbe2-41c0-bba6-9305c5960443n%40googlegroups.com.
>>>> >>>> >
>>>> >>>> > --
>>>> >>>> > 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 view this discussion on the web visit 
>>>> >>>> > https://groups.google.com/d/msgid/sympy/54eddcdc-a42e-4ebc-87b8-b6aaea1e2d0an%40googlegroups.com.
>>>> >
>>>> > --
>>>> > 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 view this discussion on the web visit 
>>>> > https://groups.google.com/d/msgid/sympy/357f1ceb-d50f-484f-ae1e-0c82a1414a62n%40googlegroups.com.
>
> --
> 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 view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/da2d4dba-9b7a-478c-9454-755cf0b9f2cbn%40googlegroups.com.

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAHVvXxTW-%3DC-X2oaK5dfQ7krdZOFme_%2BpP1cPApxT_q2y7aN8Q%40mail.gmail.com.

Reply via email to