Dear Conrad,

 

my email is [email protected] <mailto:[email protected]> 

 

Take care!

 

Peter

 

From: 'Conrad Schiff' via sympy <[email protected]> 
Sent: Wednesday, January 22, 2025 11:28 AM
To: [email protected]
Subject: Re: [sympy] trigsimp, assumptions, and vector magnitudes

 

Thank you, Peter, for both your interest and for pointing me to another place 
to ask the question.  I certainly would like to see what you are doing with the 
mechanics module so perhaps you can also point me to your work.

 

Conrad

  _____  

From: [email protected] <mailto:[email protected]>  
<[email protected] <mailto:[email protected]> > on behalf of 
[email protected] <mailto:[email protected]>  
<[email protected] <mailto:[email protected]> >
Sent: Wednesday, January 22, 2025 2:22 AM
To: [email protected] <mailto:[email protected]>  
<[email protected] <mailto:[email protected]> >
Subject: RE: [sympy] trigsimp, assumptions, and vector magnitudes 

 

Dear Conrad,

 

I have never seen this range restriction – but then again I use mostly a sub 
library of sympy, called sympy.physics.mechanics (to set up symbolic equations 
of motion of multibody systems), so I am no sympy expert at all!

 

Maybe you could ask your question here, too:

https://github.com/sympy/sympy

 

Peter

 

 

From: 'Conrad Schiff' via sympy <[email protected] 
<mailto:[email protected]> > 
Sent: Wednesday, January 22, 2025 2:28 AM
To: [email protected] <mailto:[email protected]> 
Subject: Re: [sympy] trigsimp, assumptions, and vector magnitudes

 

Thank you, Peter but there is not quite what I was looking for.  

 

Technically your result simply proves that the square root of the square of a 
real number x is the absolute value of x (\sqrt{x^2} = |x| for x \in reals).  
Or in your terms:

 

    test = |sin(INC)|/\sqrt{sin(INC)^2}  for INC real 

 

is always, identically, equal to 1.

 

For my case, sin(INC)/|sin(INC)| is what I am looking at (i.e., the numerator 
has no absolute value), and it is equal to 1 for my assumptions but how can 
sympy know that without knowing that I've restricted INC to the range [0,\pi]?  
If, for example,  INC were in the range [\pi,2\pi] then sin(INC)/|sin(INC)| = 
-1.

 

If there is a way to say something like:

 

    INC = sm.symbols(‘INC’, real=True,range=[0,pi])

 

then I say that the result is proved.  But I can't anything like this in the 
documentation (perhaps I simply don't know where to look).

 

Conrad

 

 

 

 











  _____  

From: [email protected] <mailto:[email protected]>  
<[email protected] <mailto:[email protected]> > on behalf of 
[email protected] <mailto:[email protected]>  
<[email protected] <mailto:[email protected]> >
Sent: Tuesday, January 21, 2025 9:39 AM
To: [email protected] <mailto:[email protected]>  
<[email protected] <mailto:[email protected]> >
Subject: RE: [sympy] trigsimp, assumptions, and vector magnitudes 

 

I guess sympy does not know that INC is real and sin(INC) > 0.

I just tried:

INC = sm.symbols(‘INC’, real=True)

test = sympy.Abs(sympy.sin(INC)) / sympy.sqrt(sympy.sin**2(INC)) 

 

test = 1 was the result, as expected

 

From: 'Conrad Schiff' via sympy <[email protected] 
<mailto:[email protected]> > 
Sent: Tuesday, January 21, 2025 2:57 PM
To: [email protected] <mailto:[email protected]> 
Subject: [sympy] trigsimp, assumptions, and vector magnitudes

 

I am writing a textbook on orbital mechanics and I would like to use sympy for 
certain calculations (e.g., deriving expressions for certain vectors in terms 
of Keplerian orbital elements) so that the readers realize the power of sympy.  
I have a specific problem I am hoping this group could help me with as I am 
also fairly new to sympy.  Here is a minimum working example:

 

********************************

from sympy import *

 

A, INC = symbols('A INC')

zxh = Matrix([[-sin(A)*sin(INC)], [cos(A)*sin(INC)], [0]])
********************************
 
At this point, I want to unitize 'zxh' so that the sin(INC) divides out.  This 
is a legitimate step since the range of INC is restricted to 0 to \pi and the 
sin(INC) is always non-negative (I am ignoring the singularities on the 
boundaries of 0 and \pi).  I tried the following but I get the errors below.  
Some help in coaxing sympy to do what I know can be done would be appreciated.
 
********************************
mag2_zxh = trigsimp(zxh.dot(zxh))
    -> gives sin**2(INC)
 
mag_zxh = sqrt(mag2_zxh)
   -> gives  sqrt(sin(INC)**2)
 
zxh/mag_zxh
   -> gives Matrix([[-sin(A)*sin(INC)/sqrt(sin(INC)**2)], 
[sin(INC)*cos(A)/sqrt(sin(INC)**2)], [0]])
 
********************************
How can I coax sympy into recognizing that "sin(INC)/sqrt(sin(INC)**2) = 1"?
 
Thanks for any help,
Conrad Schiff, PhD
Professor of Physics
Capitol Technology University

-- 
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] 
<mailto:[email protected]> .
To view this discussion visit 
https://groups.google.com/d/msgid/sympy/CH3PR12MB943223CD74108121BFEDA1D9CFE62%40CH3PR12MB9432.namprd12.prod.outlook.com
 
<https://groups.google.com/d/msgid/sympy/CH3PR12MB943223CD74108121BFEDA1D9CFE62%40CH3PR12MB9432.namprd12.prod.outlook.com?utm_medium=email&utm_source=footer>
 .

-- 
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] 
<mailto:[email protected]> .
To view this discussion visit 
https://groups.google.com/d/msgid/sympy/000d01db6c12%2440243f10%24c06cbd30%24%40gmail.com
 
<https://groups.google.com/d/msgid/sympy/000d01db6c12%2440243f10%24c06cbd30%24%40gmail.com?utm_medium=email&utm_source=footer>
 .

-- 
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] 
<mailto:[email protected]> .
To view this discussion visit 
https://groups.google.com/d/msgid/sympy/CH3PR12MB94323D11F41B3E23B7BC605CCFE12%40CH3PR12MB9432.namprd12.prod.outlook.com
 
<https://groups.google.com/d/msgid/sympy/CH3PR12MB94323D11F41B3E23B7BC605CCFE12%40CH3PR12MB9432.namprd12.prod.outlook.com?utm_medium=email&utm_source=footer>
 .

-- 
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] 
<mailto:[email protected]> .
To view this discussion visit 
https://groups.google.com/d/msgid/sympy/001301db6c9e%245b749080%24125db180%24%40gmail.com
 
<https://groups.google.com/d/msgid/sympy/001301db6c9e%245b749080%24125db180%24%40gmail.com?utm_medium=email&utm_source=footer>
 .

-- 
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] 
<mailto:[email protected]> .
To view this discussion visit 
https://groups.google.com/d/msgid/sympy/LV8PR12MB9418A0001A666BC3597C1940CFE12%40LV8PR12MB9418.namprd12.prod.outlook.com
 
<https://groups.google.com/d/msgid/sympy/LV8PR12MB9418A0001A666BC3597C1940CFE12%40LV8PR12MB9418.namprd12.prod.outlook.com?utm_medium=email&utm_source=footer>
 .

-- 
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 visit 
https://groups.google.com/d/msgid/sympy/017001db6cea%24ddd5b940%2499812bc0%24%40gmail.com.

Reply via email to