Find Docs

Astronomical Applications Department, U.S. Naval Observatory - Sensitivity Integral (Page 4)

Wodocs >> Science : Astronomy >> Astronomical Applications Department, U.S. Naval Observatory Sensitivity Integral Page 4
Astronomical Applications Department, U.S. Naval Observatory - Sensitivity Integral
+
+
+
437 additions
26 functions
959 multiplications
240 divisions
Those 26 function calls are in fact all unique sines and cosines. To show this, isolate the unique
trig terms and count them.
(
)
select
,
,
has
(
)
indets indef
{
}
,
sin cos
(
)
sin 2 r g x
(
)
cos 2 r g x
(
)
sin 2 s x
(
)
cos 2 s x
(
)
sin (
)
+
2 s
2 r x
(
)
cos (
)
+
2 s
2 r x
,
,
,
,
,
,
{
(
)
sin (
)
-
2 s
2 r x
(
)
cos (
)
-
2 s
2 r x
(
)
sin (
)
+
2 s
2 r g x
(
)
cos (
)
+
2 s
2 r g x
(
)
sin 2 r x
(
)
cos 2 r x
,
,
,
,
,
,
(
)
cos (
)
- +
2 s
r
r g x
(
)
sin (
)
- +
2 s
r
r g x
(
)
cos (
)
+ -
2 s
r
r g x
(
)
sin (
)
+ -
2 s
r
r g x
,
,
,
,
(
)
sin (
)
+ +
2 s
r
r g x
(
)
cos (
)
+ +
2 s
r
r g x
(
)
sin (
)
- -
2 s
r
r g x
(
)
cos (
)
- -
2 s
r
r g x
,
,
,
,
(
)
sin (
)
-
2 s
2 r g x
(
)
cos (
)
-
2 s
2 r g x
(
)
sin (
)
+
r
r g x
(
)
cos (
)
+
r
r g x
(
)
sin (
)
- +
r
r g x
,
,
,
,
,
(
)
cos (
)
- +
r
r g x }
(
)
nops %
26
Write a procedure (it will also come in handy later) to collect terms on the sin/cos argument
factors and thereby clean up the integration result even further. A fair amount of experimenting
resulted in this procedure, the final form of which is shown below. Note that the existence of 26
unique trigonometric terms implies that, no matter how aggressive our simplification process, we
are going to end up with a complicated result.
cleanup := proc( mess )

local arglist, p, Set_sincos, candidate, tmp, Tlist, i;
global time0;

time0 := time();

Set_sincos := select( has, indets(mess), {sin,cos} );
debug_print(procname,`number of unique sin/cos terms:`,0,nops(%));

# Extract the factors within the trig arguments.
# Divide by 2 those that are exactly divisible by 2 and
# throw those in, too.
arglist := {}:
for p in Set_sincos do
candidate := remove(has,op(1,p),{args[2..nargs]});
if gcd( candidate, 2 ) = 1 then
arglist := arglist union {candidate};
else
arglist := arglist union {candidate,candidate/2};
fi;
od:
arglist := convert(arglist,list);

# Sort according to complexity.
arglist := sort( arglist,
(a,b)->if length(a)>length(b) then true else false fi );
debug_print(procname,`arg list:`,0,arglist);

# Now replace each occurance of an argument in the list
# with a temporary, sort on trig and temporary-containing
Page 4

<< Previous       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15       Next >>



Other Documents:
3 D plot fits, lyap2, NAO 150, Rotate Vector, lyapcalc, wedges, Scifull, Precession Memo, Precession Maple, Curves 3 D, NOVAS 2004 Overview, NOVAS 2006 Overview, thesis, Ranson,


WODocs | |
All rights reserved. wodocs.com© 2009
WODocs


New Docs

Documents Category:
Arts (Design, Movies, Music, Radio, Television)
Automotive (Cars, Marine, Motorcycle, ATV, Snowmobiles)
Business (Biotechnology and Pharmaceuticals, Chemicals, Construction and Maintenance, Materials, Real Estate, Services)
Electronics (Computers, Motion Control, Power Supply)
Games (Board, Family, Party, Card, Construction, RC Toys)
Health (Animalm, Beauty, Healthcare, Medicine, Pharmacy, Surgery, Weight Loss)
Home (Accessories, Cooking, Decor and Design, Electrical, Family, Pets)
News (Newspapers, Sports, Television)
Recreation (Collecting, Hiking, Scouting, Survival, Travel)
Reference (Education, Libraries and Archives, Museums)
Science (Agriculture, Astronomy, Biology, Chemistry)
Shopping (Antiques and Collectibles, Clothing, Flowers, Food, Home and Garden)
Sports (Bicycle, Snowboard, Skiing, Other)