(*^
::[	Information =

	"This is a Mathematica Notebook file.  It contains ASCII text, and can be
	transferred by email, ftp, or other text-file transfer utility.  It should
	be read or edited using a copy of Mathematica or MathReader.  If you 
	received this as email, use your mail application or copy/paste to save 
	everything from the line containing (*^ down to the line containing ^*)
	into a plain text file.  On some systems you may have to give the file a 
	name ending with ".ma" to allow Mathematica to recognize it as a Notebook.
	The line below identifies what version of Mathematica created this file,
	but it can be opened using any other version as well.";

	FrontEndVersion = "Macintosh Mathematica Notebook Front End Version 2.2";

	MacintoshStandardFontEncoding; 
	
	fontset = title, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e8,  24, "Times"; 
	fontset = subtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e6,  18, "Times"; 
	fontset = subsubtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, e6,  14, "Times"; 
	fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, a20,  18, "Times"; 
	fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, a15,  14, "Times"; 
	fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, a12,  12, "Times"; 
	fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  12, "Times"; 
	fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  10, "Times"; 
	fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L-5,  12, "Courier"; 
	fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5,  12, "Courier"; 
	fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, R65535, L-5,  12, "Courier"; 
	fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5,  12, "Courier"; 
	fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, B65535, L-5,  12, "Courier"; 
	fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287,  12, "Courier"; 
	fontset = name, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic,  10, "Geneva"; 
	fontset = header, inactive, noKeepOnOnePage, preserveAspect, M7,  12, "Times"; 
	fontset = leftheader, inactive, L2,  12, "Times"; 
	fontset = footer, inactive, noKeepOnOnePage, preserveAspect, center, M7,  12, "Times"; 
	fontset = leftfooter, inactive, L2,  12, "Times"; 
	fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  10, "Times"; 
	fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  12, "Times"; 
	fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  12, "Times"; 
	fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  12, "Times"; 
	fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  12, "Times"; 
	fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  12, "Times"; 
	fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  12, "Times"; 
	fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7,  12, "Times"; 
	paletteColors = 128; automaticGrouping; currentKernel; 
]
:[font = text; inactive; preserveAspect]
Polar Alignment v2.61
v1.0 manual attempt to figure out coordinate projections
v2.0 first Mathematica version
v2.6 sign bug in azimuth fixed, some other things modified to make it easier to run
v2.61 small angle approximations used for misalignments, and a better written CalcDrift

This Mathematica notebook calculates drift rates for a telescope slightly off in polar alignment.
It may be useful as an aid for improving the polar alignment by not only giving the direction, 
but also the distance each axis must be moved.

To run this notebook:
1. Initialize it at startup. There is no need to recalculate the rotations and derivative since 
    "deriv" is initialized with the correct formula.
2. Go to the end and plug values of lat, dec, dalt, daz and time into the For loop blocks.
;[s]
5:0,0;90,1;101,0;288,1;299,0;788,-1;
2:3,13,9,Times,0,12,0,0,0;2,13,9,Times,2,12,0,0,0;
:[font = input; initialization; preserveAspect]
*)
<1.0, Cos[daz Degree]->1.0,
Sin[dalt Degree]->dalt Degree, Sin[daz Degree]->daz Degree}
:[font = output; output; inactive; preserveAspect; endGroup]
{1, ArcCos[-(Cos[Degree*lat]*
 
       (-1.*daz*Degree*Cos[dec*Degree]*Cos[rate*t] + 
 
         dalt*Degree*(Sin[dec*Degree]*Sin[Degree*lat] - 
 
            Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) + 
 
         1.*(-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
            Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]))) + 
 
    Sin[Degree*lat]*(dalt*daz*Degree^2*Cos[dec*Degree]*
 
        Cos[rate*t] + 1.*(Sin[dec*Degree]*Sin[Degree*lat] - 
 
          Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) - 
 
       1.*dalt*Degree*(-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
          Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]))], 
 
  ArcTan[1.*Cos[dec*Degree]*Cos[rate*t] + 
 
    daz*Degree*(-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
       Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]), 
 
   Sin[Degree*lat]*(-1.*daz*Degree*Cos[dec*Degree]*Cos[rate*t] + 
 
       dalt*Degree*(Sin[dec*Degree]*Sin[Degree*lat] - 
 
          Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) + 
 
       1.*(-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
          Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])) + 
 
    Cos[Degree*lat]*(dalt*daz*Degree^2*Cos[dec*Degree]*
 
        Cos[rate*t] + 1.*(Sin[dec*Degree]*Sin[Degree*lat] - 
 
          Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) - 
 
       1.*dalt*Degree*(-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
          Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]))]}
;[o]
{1, ArcCos[-(Cos[Degree lat] 
 
       (-1. daz Degree Cos[dec Degree] Cos[rate t] + 
 
         dalt Degree (Sin[dec Degree] Sin[Degree lat] - 
 
            Cos[dec Degree] Cos[Degree lat] Sin[rate t]) + 
 
         1. (-(Cos[Degree lat] Sin[dec Degree]) - 
 
            Cos[dec Degree] Sin[Degree lat] Sin[rate t]))) + 
 
                                    2
    Sin[Degree lat] (dalt daz Degree  Cos[dec Degree] Cos[rate t] + 
 
       1. (Sin[dec Degree] Sin[Degree lat] - 
 
          Cos[dec Degree] Cos[Degree lat] Sin[rate t]) - 
 
       1. dalt Degree (-(Cos[Degree lat] Sin[dec Degree]) - 
 
          Cos[dec Degree] Sin[Degree lat] Sin[rate t]))], 
 
  ArcTan[1. Cos[dec Degree] Cos[rate t] + 
 
    daz Degree (-(Cos[Degree lat] Sin[dec Degree]) - 
 
       Cos[dec Degree] Sin[Degree lat] Sin[rate t]), 
 
   Sin[Degree lat] (-1. daz Degree Cos[dec Degree] Cos[rate t] + 
 
       dalt Degree (Sin[dec Degree] Sin[Degree lat] - 
 
          Cos[dec Degree] Cos[Degree lat] Sin[rate t]) + 
 
       1. (-(Cos[Degree lat] Sin[dec Degree]) - 
 
          Cos[dec Degree] Sin[Degree lat] Sin[rate t])) + 
 
                                    2
    Cos[Degree lat] (dalt daz Degree  Cos[dec Degree] Cos[rate t] + 
 
       1. (Sin[dec Degree] Sin[Degree lat] - 
 
          Cos[dec Degree] Cos[Degree lat] Sin[rate t]) - 
 
       1. dalt Degree (-(Cos[Degree lat] Sin[dec Degree]) - 
 
          Cos[dec Degree] Sin[Degree lat] Sin[rate t]))]}
:[font = input; Cclosed; preserveAspect; startGroup]
deriv=D[SvecSnew,t]
:[font = output; output; inactive; preserveAspect; endGroup]
{0, -((-(Cos[Degree*lat]*(-(rate*Cos[dec*Degree]*Cos[Degree*lat]*
 
               Cos[rate*t]*Sin[dalt*Degree]) - 
 
            rate*Cos[dalt*Degree]*Cos[daz*Degree]*Cos[dec*Degree]*
 
             Cos[rate*t]*Sin[Degree*lat] + 
 
            rate*Cos[dalt*Degree]*Cos[dec*Degree]*Sin[daz*Degree]*
 
             Sin[rate*t])) + 
 
       Sin[Degree*lat]*(-(rate*Cos[dalt*Degree]*Cos[dec*Degree]*
 
             Cos[Degree*lat]*Cos[rate*t]) + 
 
          rate*Cos[daz*Degree]*Cos[dec*Degree]*Cos[rate*t]*
 
           Sin[dalt*Degree]*Sin[Degree*lat] - 
 
          rate*Cos[dec*Degree]*Sin[dalt*Degree]*Sin[daz*Degree]*
 
           Sin[rate*t]))/
 
     (1 - (-(Cos[Degree*lat]*
 
              (-(Cos[dalt*Degree]*Cos[dec*Degree]*Cos[rate*t]*
 
                   Sin[daz*Degree]) + 
 
                Sin[dalt*Degree]*
 
                 (Sin[dec*Degree]*Sin[Degree*lat] - 
 
                   Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) + 
 
                Cos[dalt*Degree]*Cos[daz*Degree]*
 
                 (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
                   Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]))) + 
 
           Sin[Degree*lat]*(Cos[dec*Degree]*Cos[rate*t]*
 
               Sin[dalt*Degree]*Sin[daz*Degree] + 
 
              Cos[dalt*Degree]*
 
               (Sin[dec*Degree]*Sin[Degree*lat] - 
 
                 Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) - 
 
              Cos[daz*Degree]*Sin[dalt*Degree]*
 
               (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
                 Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])))^2)^
 
      (1/2)), ((Sin[Degree*lat]*
 
         (-(rate*Cos[dec*Degree]*Cos[Degree*lat]*Cos[rate*t]*
 
              Sin[dalt*Degree]) - 
 
           rate*Cos[dalt*Degree]*Cos[daz*Degree]*Cos[dec*Degree]*
 
            Cos[rate*t]*Sin[Degree*lat] + 
 
           rate*Cos[dalt*Degree]*Cos[dec*Degree]*Sin[daz*Degree]*
 
            Sin[rate*t]) + Cos[Degree*lat]*
 
         (-(rate*Cos[dalt*Degree]*Cos[dec*Degree]*Cos[Degree*lat]*
 
              Cos[rate*t]) + 
 
           rate*Cos[daz*Degree]*Cos[dec*Degree]*Cos[rate*t]*
 
            Sin[dalt*Degree]*Sin[Degree*lat] - 
 
           rate*Cos[dec*Degree]*Sin[dalt*Degree]*Sin[daz*Degree]*
 
            Sin[rate*t]))*(Cos[daz*Degree]*Cos[dec*Degree]*
 
         Cos[rate*t] + Sin[daz*Degree]*
 
         (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
           Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])) - 
 
     (-(rate*Cos[dec*Degree]*Cos[rate*t]*Sin[daz*Degree]*
 
           Sin[Degree*lat]) - 
 
        rate*Cos[daz*Degree]*Cos[dec*Degree]*Sin[rate*t])*
 
      (Sin[Degree*lat]*(-(Cos[dalt*Degree]*Cos[dec*Degree]*
 
              Cos[rate*t]*Sin[daz*Degree]) + 
 
           Sin[dalt*Degree]*
 
            (Sin[dec*Degree]*Sin[Degree*lat] - 
 
              Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) + 
 
           Cos[dalt*Degree]*Cos[daz*Degree]*
 
            (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
              Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])) + 
 
        Cos[Degree*lat]*(Cos[dec*Degree]*Cos[rate*t]*
 
            Sin[dalt*Degree]*Sin[daz*Degree] + 
 
           Cos[dalt*Degree]*
 
            (Sin[dec*Degree]*Sin[Degree*lat] - 
 
              Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) - 
 
           Cos[daz*Degree]*Sin[dalt*Degree]*
 
            (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
              Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]))))/
 
   ((Cos[daz*Degree]*Cos[dec*Degree]*Cos[rate*t] + 
 
        Sin[daz*Degree]*(-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
           Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]))^2 + 
 
     (Sin[Degree*lat]*(-(Cos[dalt*Degree]*Cos[dec*Degree]*
 
              Cos[rate*t]*Sin[daz*Degree]) + 
 
           Sin[dalt*Degree]*
 
            (Sin[dec*Degree]*Sin[Degree*lat] - 
 
              Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) + 
 
           Cos[dalt*Degree]*Cos[daz*Degree]*
 
            (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
              Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])) + 
 
        Cos[Degree*lat]*(Cos[dec*Degree]*Cos[rate*t]*
 
            Sin[dalt*Degree]*Sin[daz*Degree] + 
 
           Cos[dalt*Degree]*
 
            (Sin[dec*Degree]*Sin[Degree*lat] - 
 
              Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) - 
 
           Cos[daz*Degree]*Sin[dalt*Degree]*
 
            (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
              Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])))^2)}
;[o]
{0, -((-(Cos[Degree lat] (-(rate Cos[dec Degree] Cos[Degree lat] 
 
               Cos[rate t] Sin[dalt Degree]) - 
 
            rate Cos[dalt Degree] Cos[daz Degree] Cos[dec Degree] 
 
             Cos[rate t] Sin[Degree lat] + 
 
            rate Cos[dalt Degree] Cos[dec Degree] Sin[daz Degree] 
 
             Sin[rate t])) + 
 
       Sin[Degree lat] (-(rate Cos[dalt Degree] Cos[dec Degree] 
 
             Cos[Degree lat] Cos[rate t]) + 
 
          rate Cos[daz Degree] Cos[dec Degree] Cos[rate t] 
 
           Sin[dalt Degree] Sin[Degree lat] - 
 
          rate Cos[dec Degree] Sin[dalt Degree] Sin[daz Degree] 
 
           Sin[rate t])) / 
 
     Sqrt[1 - Power[-(Cos[Degree lat] 
 
            (-(Cos[dalt Degree] Cos[dec Degree] Cos[rate t] 
 
                 Sin[daz Degree]) + 
 
              Sin[dalt Degree] 
 
               (Sin[dec Degree] Sin[Degree lat] - 
 
                 Cos[dec Degree] Cos[Degree lat] Sin[rate t]) + 
 
              Cos[dalt Degree] Cos[daz Degree] 
 
               (-(Cos[Degree lat] Sin[dec Degree]) - 
 
                 Cos[dec Degree] Sin[Degree lat] Sin[rate t]))) + 
 
         Sin[Degree lat] (Cos[dec Degree] Cos[rate t] 
 
             Sin[dalt Degree] Sin[daz Degree] + 
 
            Cos[dalt Degree] 
 
             (Sin[dec Degree] Sin[Degree lat] - 
 
               Cos[dec Degree] Cos[Degree lat] Sin[rate t]) - 
 
            Cos[daz Degree] Sin[dalt Degree] 
 
             (-(Cos[Degree lat] Sin[dec Degree]) - 
 
               Cos[dec Degree] Sin[Degree lat] Sin[rate t])), 2]]), 
 
  ((Sin[Degree lat] (-(rate Cos[dec Degree] Cos[Degree lat] 
 
              Cos[rate t] Sin[dalt Degree]) - 
 
           rate Cos[dalt Degree] Cos[daz Degree] Cos[dec Degree] 
 
            Cos[rate t] Sin[Degree lat] + 
 
           rate Cos[dalt Degree] Cos[dec Degree] Sin[daz Degree] 
 
            Sin[rate t]) + Cos[Degree lat] 
 
         (-(rate Cos[dalt Degree] Cos[dec Degree] Cos[Degree lat] 
 
              Cos[rate t]) + 
 
           rate Cos[daz Degree] Cos[dec Degree] Cos[rate t] 
 
            Sin[dalt Degree] Sin[Degree lat] - 
 
           rate Cos[dec Degree] Sin[dalt Degree] Sin[daz Degree] 
 
            Sin[rate t])) (Cos[daz Degree] Cos[dec Degree] 
 
         Cos[rate t] + Sin[daz Degree] 
 
         (-(Cos[Degree lat] Sin[dec Degree]) - 
 
           Cos[dec Degree] Sin[Degree lat] Sin[rate t])) - 
 
     (-(rate Cos[dec Degree] Cos[rate t] Sin[daz Degree] 
 
           Sin[Degree lat]) - 
 
        rate Cos[daz Degree] Cos[dec Degree] Sin[rate t]) 
 
      (Sin[Degree lat] (-(Cos[dalt Degree] Cos[dec Degree] 
 
              Cos[rate t] Sin[daz Degree]) + 
 
           Sin[dalt Degree] 
 
            (Sin[dec Degree] Sin[Degree lat] - 
 
              Cos[dec Degree] Cos[Degree lat] Sin[rate t]) + 
 
           Cos[dalt Degree] Cos[daz Degree] 
 
            (-(Cos[Degree lat] Sin[dec Degree]) - 
 
              Cos[dec Degree] Sin[Degree lat] Sin[rate t])) + 
 
        Cos[Degree lat] (Cos[dec Degree] Cos[rate t] 
 
            Sin[dalt Degree] Sin[daz Degree] + 
 
           Cos[dalt Degree] 
 
            (Sin[dec Degree] Sin[Degree lat] - 
 
              Cos[dec Degree] Cos[Degree lat] Sin[rate t]) - 
 
           Cos[daz Degree] Sin[dalt Degree] 
 
            (-(Cos[Degree lat] Sin[dec Degree]) - 
 
              Cos[dec Degree] Sin[Degree lat] Sin[rate t])))) / 
 
   (Power[Cos[daz Degree] Cos[dec Degree] Cos[rate t] + 
 
       Sin[daz Degree] (-(Cos[Degree lat] Sin[dec Degree]) - 
 
          Cos[dec Degree] Sin[Degree lat] Sin[rate t]), 2] + 
 
     Power[Sin[Degree lat] (-(Cos[dalt Degree] Cos[dec Degree] 
 
             Cos[rate t] Sin[daz Degree]) + 
 
          Sin[dalt Degree] (Sin[dec Degree] Sin[Degree lat] - 
 
             Cos[dec Degree] Cos[Degree lat] Sin[rate t]) + 
 
          Cos[dalt Degree] Cos[daz Degree] 
 
           (-(Cos[Degree lat] Sin[dec Degree]) - 
 
             Cos[dec Degree] Sin[Degree lat] Sin[rate t])) + 
 
       Cos[Degree lat] (Cos[dec Degree] Cos[rate t] Sin[dalt Degree] 
 
           Sin[daz Degree] + 
 
          Cos[dalt Degree] (Sin[dec Degree] Sin[Degree lat] - 
 
             Cos[dec Degree] Cos[Degree lat] Sin[rate t]) - 
 
          Cos[daz Degree] Sin[dalt Degree] 
 
           (-(Cos[Degree lat] Sin[dec Degree]) - 
 
             Cos[dec Degree] Sin[Degree lat] Sin[rate t])), 2])}
:[font = input; initialization; preserveAspect]
*)
deriv={0, -((-(Cos[Degree*lat]*(-(rate*Cos[dec*Degree]*Cos[Degree*lat]*
 
               Cos[rate*t]*Sin[dalt*Degree]) - 
 
            rate*Cos[dalt*Degree]*Cos[daz*Degree]*Cos[dec*Degree]*
 
             Cos[rate*t]*Sin[Degree*lat] + 
 
            rate*Cos[dalt*Degree]*Cos[dec*Degree]*Sin[daz*Degree]*
 
             Sin[rate*t])) + 
 
       Sin[Degree*lat]*(-(rate*Cos[dalt*Degree]*Cos[dec*Degree]*
 
             Cos[Degree*lat]*Cos[rate*t]) + 
 
          rate*Cos[daz*Degree]*Cos[dec*Degree]*Cos[rate*t]*
 
           Sin[dalt*Degree]*Sin[Degree*lat] - 
 
          rate*Cos[dec*Degree]*Sin[dalt*Degree]*Sin[daz*Degree]*
 
           Sin[rate*t]))/
 
     (1 - (-(Cos[Degree*lat]*
 
              (-(Cos[dalt*Degree]*Cos[dec*Degree]*Cos[rate*t]*
 
                   Sin[daz*Degree]) + 
 
                Sin[dalt*Degree]*
 
                 (Sin[dec*Degree]*Sin[Degree*lat] - 
 
                   Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) + 
 
                Cos[dalt*Degree]*Cos[daz*Degree]*
 
                 (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
                   Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]))) + 
 
           Sin[Degree*lat]*(Cos[dec*Degree]*Cos[rate*t]*
 
               Sin[dalt*Degree]*Sin[daz*Degree] + 
 
              Cos[dalt*Degree]*
 
               (Sin[dec*Degree]*Sin[Degree*lat] - 
 
                 Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) - 
 
              Cos[daz*Degree]*Sin[dalt*Degree]*
 
               (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
                 Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])))^2)^
 
      (1/2)), ((Sin[Degree*lat]*
 
         (-(rate*Cos[dec*Degree]*Cos[Degree*lat]*Cos[rate*t]*
 
              Sin[dalt*Degree]) - 
 
           rate*Cos[dalt*Degree]*Cos[daz*Degree]*Cos[dec*Degree]*
 
            Cos[rate*t]*Sin[Degree*lat] + 
 
           rate*Cos[dalt*Degree]*Cos[dec*Degree]*Sin[daz*Degree]*
 
            Sin[rate*t]) + Cos[Degree*lat]*
 
         (-(rate*Cos[dalt*Degree]*Cos[dec*Degree]*Cos[Degree*lat]*
 
              Cos[rate*t]) + 
 
           rate*Cos[daz*Degree]*Cos[dec*Degree]*Cos[rate*t]*
 
            Sin[dalt*Degree]*Sin[Degree*lat] - 
 
           rate*Cos[dec*Degree]*Sin[dalt*Degree]*Sin[daz*Degree]*
 
            Sin[rate*t]))*(Cos[daz*Degree]*Cos[dec*Degree]*
 
         Cos[rate*t] + Sin[daz*Degree]*
 
         (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
           Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])) - 
 
     (-(rate*Cos[dec*Degree]*Cos[rate*t]*Sin[daz*Degree]*
 
           Sin[Degree*lat]) - 
 
        rate*Cos[daz*Degree]*Cos[dec*Degree]*Sin[rate*t])*
 
      (Sin[Degree*lat]*(-(Cos[dalt*Degree]*Cos[dec*Degree]*
 
              Cos[rate*t]*Sin[daz*Degree]) + 
 
           Sin[dalt*Degree]*
 
            (Sin[dec*Degree]*Sin[Degree*lat] - 
 
              Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) + 
 
           Cos[dalt*Degree]*Cos[daz*Degree]*
 
            (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
              Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])) + 
 
        Cos[Degree*lat]*(Cos[dec*Degree]*Cos[rate*t]*
 
            Sin[dalt*Degree]*Sin[daz*Degree] + 
 
           Cos[dalt*Degree]*
 
            (Sin[dec*Degree]*Sin[Degree*lat] - 
 
              Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) - 
 
           Cos[daz*Degree]*Sin[dalt*Degree]*
 
            (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
              Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]))))/
 
   ((Cos[daz*Degree]*Cos[dec*Degree]*Cos[rate*t] + 
 
        Sin[daz*Degree]*(-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
           Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t]))^2 + 
 
     (Sin[Degree*lat]*(-(Cos[dalt*Degree]*Cos[dec*Degree]*
 
              Cos[rate*t]*Sin[daz*Degree]) + 
 
           Sin[dalt*Degree]*
 
            (Sin[dec*Degree]*Sin[Degree*lat] - 
 
              Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) + 
 
           Cos[dalt*Degree]*Cos[daz*Degree]*
 
            (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
              Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])) + 
 
        Cos[Degree*lat]*(Cos[dec*Degree]*Cos[rate*t]*
 
            Sin[dalt*Degree]*Sin[daz*Degree] + 
 
           Cos[dalt*Degree]*
 
            (Sin[dec*Degree]*Sin[Degree*lat] - 
 
              Cos[dec*Degree]*Cos[Degree*lat]*Sin[rate*t]) - 
 
           Cos[daz*Degree]*Sin[dalt*Degree]*
 
            (-(Cos[Degree*lat]*Sin[dec*Degree]) - 
 
              Cos[dec*Degree]*Sin[Degree*lat]*Sin[rate*t])))^2)};
(*
:[font = text; inactive; preserveAspect]
Plug in values of dec, latitude and alignment errors, all in degrees; then evaluate the time derivative to get the velocity, at t=time. The time determines the hour angle (ie. Pi/2 is on the meridian) which along with dec gives the point on the sky in question.
:[font = info; inactive; preserveAspect]
Rotation directions:
- daz moves pole to west / CCW from above
+ daz moves pole to east / CW from above
- dalt lowers pole
+ dalt raises pole

:[font = text; inactive; preserveAspect]
The Drift vector shows the following:
;[s]
1:0,1;38,-1;
2:0,21,15,Times,0,20,0,0,0;1,19,14,Times,0,18,0,0,0;
:[font = info; inactive; preserveAspect]
{always zero, drift in dec, drift in ra}
- = star drifts west or south
+ = drift east or north

;[s]
4:0,1;1,2;39,1;41,2;96,-1;
3:0,12,10,Courier,0,12,0,0,65535;2,18,14,Times,0,18,0,0,65535;2,15,12,Times,0,14,0,0,65535;
:[font = text; inactive; preserveAspect]
Rate is in rad/min, therefore t is in minutes. The drift starts out in rad/min,
then in the 4th line of CalcDrift is converted to arcmin/min. Finally, Drift ends 
up in the 6th line as arcsec/min.
:[font = input; initialization; preserveAspect]
*)
rate=(15.04/60)*Degree;
(*
:[font = input; initialization; preserveAspect]
*)
CalcDrift:={Clear[t],
daz=daz*-1,
derivT:=deriv/.t->time,
drift:=N[derivT]*N[60/Degree] N[Cos[dalt*Degree]],
nodrift:={0,0,-15.04},
Drift:=(drift-nodrift)*60,
daz=daz*-1,
Print[{N[dalt],N[daz],Drift[[2]],Drift[[3]]}]}
(*
:[font = text; inactive; preserveAspect]
On the meridian at dec=30:
:[font = input; preserveAspect]
lat=34;
dec=30;
daz=0;
time=Pi/2;
time=time/rate;
For[dalt=-3/60,dalt<=3/60,dalt+=1/60,CalcDrift]
:[font = input; preserveAspect]
lat=34;
dec=30;
dalt=0;
time=Pi/2;
time=time/rate;
For[daz=-3/60,daz<=3/60,daz+=1/60,CalcDrift]
:[font = text; inactive; preserveAspect]
Now go over eastern horizon
:[font = input; preserveAspect]
lat=34;
dec=30;
daz=0;
time=Pi;
time=time/rate;
For[dalt=-3/60,dalt<=3/60,dalt+=1/60,CalcDrift]
:[font = input; preserveAspect]
lat=34;
dec=30;
dalt=0;
time=Pi;
time=time/rate;
For[daz=-3/60,daz<=3/60,daz+=1/60,CalcDrift]
^*)