Пример #1
0
        // MJupiter.m_B2(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 2. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 2. Ordnung.</returns>
        private static double m_B2(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00008094051 * MMath.Cos(1.46322843658 + 529.69096509460 * t);
            rtn += 0.00000813244 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            rtn += 0.00000742415 * MMath.Cos(0.95691639003 + 522.57741809380 * t);
            rtn += 0.00000398951 * MMath.Cos(2.89888666447 + 536.80451209540 * t);
            rtn += 0.00000342226 * MMath.Cos(1.44683789727 + 1059.38193018920 * t);
            rtn += 0.00000073948 * MMath.Cos(0.40724675866 + 1052.26838318840 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000046151 * MMath.Cos(3.48036895772 + 1066.49547719000 * t);
            rtn += 0.00000029717 * MMath.Cos(1.92504171329 + 1589.07289528380 * t);
            rtn += 0.00000029314 * MMath.Cos(0.99088831805 + 515.46387109300 * t);
            rtn += 0.00000022753 * MMath.Cos(4.27124052435 + 7.11354700080 * t);
            rtn += 0.00000013916 * MMath.Cos(2.92242387338 + 543.91805909620 * t);
            rtn += 0.00000012067 * MMath.Cos(5.22168932482 + 632.78373931320 * t);
            rtn += 0.00000010703 * MMath.Cos(4.88024222475 + 949.17560896980 * t);
            rtn += 0.00000006078 * MMath.Cos(6.21089108431 + 1045.15483618760 * t);
            rtn += 0.00000005935 * MMath.Cos(0.52977760072 + 1581.95934828300 * t);
            rtn += 0.00000005098 * MMath.Cos(6.03169795231 + 735.87651353180 * t);
            rtn += 0.00000005037 * MMath.Cos(1.43444929374 + 526.50957135690 * t);
            rtn += 0.00000004564 * MMath.Cos(0.91811732585 + 1162.47470440780 * t);
            rtn += 0.00000004547 * MMath.Cos(4.01953745202 + 1596.18644228460 * t);
            rtn += 0.00000003593 * MMath.Cos(4.54080164408 + 110.20632121940 * t);
            rtn += 0.00000003443 * MMath.Cos(1.38618954572 + 533.62311835770 * t);
            rtn += 0.00000003407 * MMath.Cos(0.42275631534 + 419.48464387520 * t);
            rtn += 0.00000003277 * MMath.Cos(4.39650286553 + 14.22709400160 * t);
            rtn += 0.00000003113 * MMath.Cos(2.48079280193 + 2118.76386037840 * t);
            rtn += 0.00000003061 * MMath.Cos(2.39880866911 + 532.87235883230 * t);
            rtn += 0.00000002904 * MMath.Cos(2.06041641723 + 316.39186965660 * t);
            rtn += 0.00000002541 * MMath.Cos(3.98323842017 + 323.50541665740 * t);
            rtn += 0.00000002313 * MMath.Cos(0.87671613055 + 213.29909543800 * t);
            rtn += 0.00000002252 * MMath.Cos(0.37196434120 + 1155.36115740700 * t);
            rtn += 0.00000002155 * MMath.Cos(4.77990637140 + 942.06206196900 * t);
            rtn += 0.00000002143 * MMath.Cos(3.88727338786 + 426.59819087600 * t);
            rtn += 0.00000002019 * MMath.Cos(3.89985000464 + 846.08283475120 * t);
            rtn += 0.00000001857 * MMath.Cos(1.19658907851 + 103.09277421860 * t);
            rtn += 0.00000001823 * MMath.Cos(5.80106463776 + 625.67019231240 * t);
            rtn += 0.00000001728 * MMath.Cos(2.24114678267 + 525.75881183150 * t);
            rtn += 0.00000001683 * MMath.Cos(1.42264195434 + 1265.56747862640 * t);
            rtn += 0.00000001443 * MMath.Cos(2.38565505909 + 1169.58825140860 * t);
            rtn += 0.00000001198 * MMath.Cos(0.03252059731 + 956.28915597060 * t);
            rtn += 0.00000001138 * MMath.Cos(3.46420904745 + 1073.60902419080 * t);
            rtn += 0.00000001086 * MMath.Cos(5.35279146700 + 117.31986822020 * t);
            rtn += 0.00000000944 * MMath.Cos(4.05587053500 + 206.18554843720 * t);
            rtn += 0.00000000889 * MMath.Cos(6.07878453176 + 728.76296653100 * t);
            rtn += 0.00000000840 * MMath.Cos(2.89946334223 + 95.97922721780 * t);
            rtn += 0.00000000758 * MMath.Cos(3.74770617289 + 433.71173787680 * t);
            rtn += 0.00000000746 * MMath.Cos(5.53017890231 + 1478.86657406440 * t);
            rtn += 0.00000000673 * MMath.Cos(1.26396626349 + 508.35032409220 * t);
            rtn += 0.00000000648 * MMath.Cos(5.32990375008 + 853.19638175200 * t);
            rtn += 0.00000000619 * MMath.Cos(0.67923057477 + 838.96928775040 * t);
            rtn += 0.00000000600 * MMath.Cos(1.82954494089 + 639.89728631400 * t);
            rtn += 0.00000000589 * MMath.Cos(1.23625943417 + 1258.45393162560 * t);
            rtn += 0.00000000566 * MMath.Cos(5.36336098734 + 742.99006053260 * t);
            rtn += 0.00000000553 * MMath.Cos(3.15511946637 + 220.41264243880 * t);
            rtn += 0.00000000438 * MMath.Cos(0.16552277290 + 1574.84580128220 * t);
            rtn += 0.00000000435 * MMath.Cos(1.65056479007 + 519.39602435610 * t);
            rtn += 0.00000000432 * MMath.Cos(1.03719283016 + 1692.16566950240 * t);
            rtn += 0.00000000431 * MMath.Cos(2.20986254651 + 1368.66025284500 * t);
            rtn += 0.00000000430 * MMath.Cos(1.41830384501 + 412.37109687440 * t);
            rtn += 0.00000000415 * MMath.Cos(4.35372561905 + 330.61896365820 * t);
            rtn += 0.00000000312 * MMath.Cos(4.50639455819 + 2125.87740737920 * t);
            rtn += 0.00000000309 * MMath.Cos(0.67399908949 + 2111.65031337760 * t);
            rtn += 0.00000000301 * MMath.Cos(3.06868080871 + 1062.56332392690 * t);
            rtn += 0.00000000280 * MMath.Cos(3.01441283033 + 551.03160609700 * t);
            rtn += 0.00000000248 * MMath.Cos(2.96997778167 + 2648.45482547300 * t);
            rtn += 0.00000000246 * MMath.Cos(2.61803442505 + 309.27832265580 * t);
            rtn += 0.00000000238 * MMath.Cos(2.56643737684 + 539.98590583310 * t);
            rtn += 0.00000000236 * MMath.Cos(1.94696842200 + 1485.98012106520 * t);
            rtn += 0.00000000235 * MMath.Cos(3.41850395941 + 199.07200143640 * t);
            rtn += 0.00000000209 * MMath.Cos(5.82481690851 + 1471.75302706360 * t);
            rtn += 0.00000000205 * MMath.Cos(1.20202002469 + 1056.20053645150 * t);
            rtn += 0.00000000188 * MMath.Cos(0.97113663101 + 1685.05212250160 * t);
            rtn += 0.00000000161 * MMath.Cos(1.05926568614 + 1795.25844372100 * t);
            rtn += 0.00000000137 * MMath.Cos(2.91203499563 + 1699.27921650320 * t);
            rtn += 0.00000000131 * MMath.Cos(1.79274504072 + 1063.31408345230 * t);
            rtn += 0.00000000123 * MMath.Cos(4.81268110532 + 21.34064100240 * t);
            rtn += 0.00000000114 * MMath.Cos(6.13907482464 + 1038.04128918680 * t);
            rtn += 0.00000000112 * MMath.Cos(2.62660288825 + 440.82528487760 * t);
            rtn += 0.00000000110 * MMath.Cos(3.56263668146 + 227.52618943960 * t);
            rtn += 0.00000000103 * MMath.Cos(4.64287101040 + 3.18139373770 * t);
            rtn += 0.00000000102 * MMath.Cos(4.27603827970 + 1375.77379984580 * t);
            rtn += 0.00000000089 * MMath.Cos(1.22926014128 + 1898.35121793960 * t);
            rtn += 0.00000000080 * MMath.Cos(0.62129648755 + 831.85574074960 * t);
            return(rtn);
        }
Пример #2
0
        // MJupiter.m_B0(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 0. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 0. Ordnung.</returns>
        private static double m_B0(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            // Terme aufsummieren
            rtn += 0.02268615703 * MMath.Cos(3.55852606718 + 529.69096509460 * t);
            rtn += 0.00110090358 * MMath.Cos(0.00000000000 + 0.00000000000 * t);
            rtn += 0.00109971634 * MMath.Cos(3.90809347389 + 1059.38193018920 * t);
            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            rtn += 0.00008101427 * MMath.Cos(3.60509573368 + 522.57741809380 * t);
            rtn += 0.00006437782 * MMath.Cos(0.30627121409 + 536.80451209540 * t);
            rtn += 0.00006043996 * MMath.Cos(4.25883108794 + 1589.07289528380 * t);
            rtn += 0.00001106880 * MMath.Cos(2.98534421928 + 1162.47470440780 * t);
            rtn += 0.00000944328 * MMath.Cos(1.67522288396 + 426.59819087600 * t);
            rtn += 0.00000941651 * MMath.Cos(2.93619072405 + 1052.26838318840 * t);
            rtn += 0.00000894088 * MMath.Cos(1.75447429921 + 7.11354700080 * t);
            rtn += 0.00000835861 * MMath.Cos(5.17881973234 + 103.09277421860 * t);
            rtn += 0.00000767280 * MMath.Cos(2.15473594060 + 632.78373931320 * t);
            rtn += 0.00000684220 * MMath.Cos(3.67808770098 + 213.29909543800 * t);
            rtn += 0.00000629223 * MMath.Cos(0.64343282328 + 1066.49547719000 * t);
            rtn += 0.00000558524 * MMath.Cos(0.01354830508 + 846.08283475120 * t);
            rtn += 0.00000531670 * MMath.Cos(2.70305954352 + 110.20632121940 * t);
            rtn += 0.00000464449 * MMath.Cos(1.17337249185 + 949.17560896980 * t);
            rtn += 0.00000431072 * MMath.Cos(2.60825000494 + 419.48464387520 * t);
            rtn += 0.00000351433 * MMath.Cos(4.61062990714 + 2118.76386037840 * t);
            rtn += 0.00000132160 * MMath.Cos(4.77816990670 + 742.99006053260 * t);
            rtn += 0.00000123148 * MMath.Cos(3.34968181384 + 1692.16566950240 * t);
            rtn += 0.00000116379 * MMath.Cos(1.38688232033 + 323.50541665740 * t);
            rtn += 0.00000115038 * MMath.Cos(5.04892295442 + 316.39186965660 * t);
            rtn += 0.00000103762 * MMath.Cos(3.70103838110 + 515.46387109300 * t);
            rtn += 0.00000103402 * MMath.Cos(2.31878999565 + 1478.86657406440 * t);
            rtn += 0.00000102420 * MMath.Cos(3.15293785436 + 1581.95934828300 * t);
            rtn += 0.00000078650 * MMath.Cos(3.98318653238 + 1265.56747862640 * t);
            rtn += 0.00000069935 * MMath.Cos(2.56006216424 + 956.28915597060 * t);
            rtn += 0.00000063456 * MMath.Cos(4.50073574333 + 735.87651353180 * t);
            rtn += 0.00000055597 * MMath.Cos(0.37500753017 + 1375.77379984580 * t);
            rtn += 0.00000055194 * MMath.Cos(0.40176412035 + 525.75881183150 * t);
            rtn += 0.00000051986 * MMath.Cos(0.99007119033 + 1596.18644228460 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000049691 * MMath.Cos(0.18649893085 + 543.91805909620 * t);
            rtn += 0.00000048831 * MMath.Cos(3.57260550671 + 533.62311835770 * t);
            rtn += 0.00000029209 * MMath.Cos(5.43145863011 + 206.18554843720 * t);
            rtn += 0.00000028353 * MMath.Cos(1.53532744749 + 625.67019231240 * t);
            rtn += 0.00000024436 * MMath.Cos(6.10947656959 + 1169.58825140860 * t);
            rtn += 0.00000023255 * MMath.Cos(5.95197992848 + 838.96928775040 * t);
            rtn += 0.00000023202 * MMath.Cos(4.06473368575 + 526.50957135690 * t);
            rtn += 0.00000022841 * MMath.Cos(6.19262787685 + 532.87235883230 * t);
            rtn += 0.00000021314 * MMath.Cos(2.69476951059 + 1045.15483618760 * t);
            rtn += 0.00000021116 * MMath.Cos(4.96322972735 + 2648.45482547300 * t);
            rtn += 0.00000017879 * MMath.Cos(3.08704395969 + 1795.25844372100 * t);
            rtn += 0.00000017325 * MMath.Cos(1.61550009206 + 14.22709400160 * t);
            rtn += 0.00000016234 * MMath.Cos(4.83515727869 + 1368.66025284500 * t);
            rtn += 0.00000015740 * MMath.Cos(1.15130330106 + 942.06206196900 * t);
            rtn += 0.00000013505 * MMath.Cos(3.28126975760 + 1155.36115740700 * t);
            rtn += 0.00000013396 * MMath.Cos(2.30539585502 + 853.19638175200 * t);
            rtn += 0.00000011904 * MMath.Cos(3.09811974536 + 2111.65031337760 * t);
            rtn += 0.00000011830 * MMath.Cos(4.76527836803 + 309.27832265580 * t);
            rtn += 0.00000011734 * MMath.Cos(2.83006431723 + 2008.55753915900 * t);
            rtn += 0.00000011291 * MMath.Cos(0.98957560201 + 433.71173787680 * t);
            rtn += 0.00000010815 * MMath.Cos(5.81958878617 + 1272.68102562720 * t);
            rtn += 0.00000010702 * MMath.Cos(3.70181397065 + 2221.85663459700 * t);
            rtn += 0.00000010632 * MMath.Cos(5.23487936086 + 95.97922721780 * t);
            rtn += 0.00000010179 * MMath.Cos(2.58691128827 + 117.31986822020 * t);
            rtn += 0.00000008771 * MMath.Cos(0.40456546655 + 220.41264243880 * t);
            rtn += 0.00000007439 * MMath.Cos(2.94638292086 + 412.37109687440 * t);
            rtn += 0.00000006151 * MMath.Cos(2.69100382247 + 380.12776796000 * t);
            rtn += 0.00000005936 * MMath.Cos(4.32059910537 + 1063.31408345230 * t);
            rtn += 0.00000005421 * MMath.Cos(4.08612438558 + 1685.05212250160 * t);
            rtn += 0.00000005028 * MMath.Cos(0.72750312028 + 1055.44977692610 * t);
            rtn += 0.00000004939 * MMath.Cos(0.73756716762 + 1905.46476494040 * t);
            rtn += 0.00000004737 * MMath.Cos(4.09303016850 + 527.24328453980 * t);
            rtn += 0.00000004731 * MMath.Cos(6.16377350841 + 532.13864564940 * t);
            rtn += 0.00000004709 * MMath.Cos(1.84067645204 + 984.60033162190 * t);
            rtn += 0.00000004666 * MMath.Cos(5.88762905802 + 639.89728631400 * t);
            rtn += 0.00000004229 * MMath.Cos(2.23767157901 + 74.78159856730 * t);
            rtn += 0.00000004010 * MMath.Cos(0.51530008355 + 1073.60902419080 * t);
            rtn += 0.00000003974 * MMath.Cos(1.33608029246 + 2125.87740737920 * t);
            rtn += 0.00000003763 * MMath.Cos(0.38865925413 + 529.64278098480 * t);
            rtn += 0.00000003762 * MMath.Cos(3.58647039394 + 529.73914920440 * t);
            rtn += 0.00000003457 * MMath.Cos(3.43865563497 + 1485.98012106520 * t);
            rtn += 0.00000003409 * MMath.Cos(4.05398247269 + 1898.35121793960 * t);
            rtn += 0.00000003162 * MMath.Cos(1.25048416420 + 330.61896365820 * t);
            rtn += 0.00000003091 * MMath.Cos(0.16470256025 + 1699.27921650320 * t);
            rtn += 0.00000002983 * MMath.Cos(3.25251207220 + 528.72775724810 * t);
            rtn += 0.00000002975 * MMath.Cos(0.72268908074 + 530.65417294110 * t);
            rtn += 0.00000002837 * MMath.Cos(0.05987107395 + 1439.50969814920 * t);
            rtn += 0.00000002727 * MMath.Cos(4.37679213321 + 149.56319713460 * t);
            rtn += 0.00000002596 * MMath.Cos(3.30510149086 + 2324.94940881560 * t);
            rtn += 0.00000002527 * MMath.Cos(5.94458202950 + 909.81873305460 * t);
            rtn += 0.00000002464 * MMath.Cos(1.16913304420 + 453.42489381900 * t);
            rtn += 0.00000002269 * MMath.Cos(1.30379329597 + 3.93215326310 * t);
            rtn += 0.00000002232 * MMath.Cos(0.26149880534 + 1062.56332392690 * t);
            rtn += 0.00000002029 * MMath.Cos(3.97938086639 + 1056.20053645150 * t);
            rtn += 0.00000001988 * MMath.Cos(2.85269577619 + 1574.84580128220 * t);
            rtn += 0.00000001742 * MMath.Cos(4.49909767044 + 1258.45393162560 * t);
            rtn += 0.00000001714 * MMath.Cos(4.12945878208 + 2001.44399215820 * t);
            rtn += 0.00000001667 * MMath.Cos(0.36037092553 + 10213.28554621100 * t);
            rtn += 0.00000001604 * MMath.Cos(1.98841031703 + 38.13303563780 * t);
            rtn += 0.00000001594 * MMath.Cos(2.07556780757 + 1021.24889455140 * t);
            rtn += 0.00000001579 * MMath.Cos(6.11640144795 + 1802.37199072180 * t);
            rtn += 0.00000001451 * MMath.Cos(2.39804501178 + 2428.04218303420 * t);
            rtn += 0.00000001393 * MMath.Cos(3.69324470827 + 2214.74308759620 * t);
            rtn += 0.00000001346 * MMath.Cos(3.27591492540 + 2641.34127847220 * t);
            rtn += 0.00000001325 * MMath.Cos(1.74025919863 + 529.16970023280 * t);
            rtn += 0.00000001324 * MMath.Cos(2.23549334986 + 530.21222995640 * t);
            rtn += 0.00000001320 * MMath.Cos(1.33770977126 + 618.55664531160 * t);
            rtn += 0.00000001266 * MMath.Cos(3.04704446731 + 604.47256366190 * t);
            rtn += 0.00000001230 * MMath.Cos(0.19552728220 + 305.34616939270 * t);
            rtn += 0.00000001226 * MMath.Cos(5.34003255221 + 3178.14579056760 * t);
            rtn += 0.00000001223 * MMath.Cos(2.86681556337 + 1382.88734684660 * t);
            rtn += 0.00000001124 * MMath.Cos(1.59560367480 + 3.18139373770 * t);
            rtn += 0.00000001056 * MMath.Cos(3.80579750957 + 76.26607127560 * t);
            rtn += 0.00000001050 * MMath.Cos(4.68011652614 + 1788.14489672020 * t);
            rtn += 0.00000001017 * MMath.Cos(5.55711112145 + 199.07200143640 * t);
            rtn += 0.00000001009 * MMath.Cos(3.19608028376 + 2538.24850425360 * t);
            rtn += 0.00000000978 * MMath.Cos(0.25223689838 + 983.11585891360 * t);
            rtn += 0.00000000954 * MMath.Cos(3.86932544808 + 728.76296653100 * t);
            rtn += 0.00000000948 * MMath.Cos(0.21552742733 + 750.10360753340 * t);
            rtn += 0.00000000946 * MMath.Cos(3.93927748120 + 508.35032409220 * t);
            rtn += 0.00000000920 * MMath.Cos(1.14672086939 + 963.40270297140 * t);
            rtn += 0.00000000868 * MMath.Cos(3.44331872364 + 569.04784100980 * t);
            rtn += 0.00000000862 * MMath.Cos(0.87975657414 + 490.33408917940 * t);
            rtn += 0.00000000817 * MMath.Cos(5.93809619876 + 831.85574074960 * t);
            rtn += 0.00000000801 * MMath.Cos(4.03984430862 + 1364.72809958190 * t);
            rtn += 0.00000000770 * MMath.Cos(2.96062737592 + 526.77020378780 * t);
            rtn += 0.00000000761 * MMath.Cos(1.38163787157 + 532.61172640140 * t);
            rtn += 0.00000000726 * MMath.Cos(3.98337964395 + 2317.83586181480 * t);
            rtn += 0.00000000711 * MMath.Cos(4.11107052823 + 2751.54759969160 * t);
            rtn += 0.00000000708 * MMath.Cos(4.00539820601 + 530.44172462000 * t);
            rtn += 0.00000000708 * MMath.Cos(0.33555577415 + 528.94020556920 * t);
            rtn += 0.00000000679 * MMath.Cos(1.18645749024 + 525.49817940060 * t);
            rtn += 0.00000000668 * MMath.Cos(3.15607509055 + 533.88375078860 * t);
            rtn += 0.00000000663 * MMath.Cos(1.57092786811 + 6283.07584999140 * t);
            rtn += 0.00000000663 * MMath.Cos(0.73722024843 + 5223.69391980220 * t);
            rtn += 0.00000000659 * MMath.Cos(0.62560671589 + 1512.80682400820 * t);
            rtn += 0.00000000656 * MMath.Cos(4.39568451439 + 519.39602435610 * t);
            rtn += 0.00000000645 * MMath.Cos(5.10510349996 + 1361.54670584420 * t);
            rtn += 0.00000000602 * MMath.Cos(1.56074089013 + 454.90936652730 * t);
            rtn += 0.00000000570 * MMath.Cos(0.61976758791 + 540.73666535850 * t);
            rtn += 0.00000000544 * MMath.Cos(2.22227019273 + 2744.43405269080 * t);
            rtn += 0.00000000543 * MMath.Cos(0.26376529935 + 227.52618943960 * t);
            rtn += 0.00000000535 * MMath.Cos(4.80455380313 + 1593.00504854690 * t);
            rtn += 0.00000000532 * MMath.Cos(2.62425372687 + 99.16062095550 * t);
            rtn += 0.00000000532 * MMath.Cos(0.20040217534 + 525.02509864860 * t);
            rtn += 0.00000000528 * MMath.Cos(1.76471074936 + 524.27433912320 * t);
            rtn += 0.00000000525 * MMath.Cos(6.22318693939 + 539.98590583310 * t);
            rtn += 0.00000000524 * MMath.Cos(0.64710955846 + 524.06189080210 * t);
            rtn += 0.00000000520 * MMath.Cos(2.57406093768 + 535.10759106600 * t);
            rtn += 0.00000000519 * MMath.Cos(0.54543519483 + 1061.82961074400 * t);
            rtn += 0.00000000518 * MMath.Cos(0.26343805959 + 551.03160609700 * t);
            rtn += 0.00000000516 * MMath.Cos(3.69478866795 + 535.32003938710 * t);
            rtn += 0.00000000516 * MMath.Cos(1.09376390349 + 934.94851496820 * t);
            rtn += 0.00000000513 * MMath.Cos(4.98337900151 + 302.16477565500 * t);
            rtn += 0.00000000505 * MMath.Cos(5.36536256321 + 1057.89745748090 * t);
            rtn += 0.00000000499 * MMath.Cos(4.13924061941 + 534.35683154060 * t);
            rtn += 0.00000000496 * MMath.Cos(2.19398015038 + 1514.29129671650 * t);
            rtn += 0.00000000493 * MMath.Cos(0.39160693598 + 224.34479570190 * t);
            rtn += 0.00000000491 * MMath.Cos(3.63039940597 + 2531.13495725280 * t);
            rtn += 0.00000000471 * MMath.Cos(6.05791940453 + 1471.75302706360 * t);
            rtn += 0.00000000457 * MMath.Cos(4.17708652827 + 2104.53676637680 * t);
            rtn += 0.00000000454 * MMath.Cos(4.53321742354 + 1056.93424963440 * t);
            rtn += 0.00000000450 * MMath.Cos(5.02467015031 + 1048.33622992530 * t);
            rtn += 0.00000000449 * MMath.Cos(3.71676131146 + 529.85102378900 * t);
            rtn += 0.00000000449 * MMath.Cos(0.62392433691 + 529.53090640020 * t);
            rtn += 0.00000000443 * MMath.Cos(5.27513700376 + 1.48447270830 * t);
            rtn += 0.00000000428 * MMath.Cos(5.44804660290 + 11.04570026390 * t);
            rtn += 0.00000000424 * MMath.Cos(2.70929670030 + 1038.04128918680 * t);
            rtn += 0.00000000415 * MMath.Cos(0.96548127237 + 2435.15573003500 * t);
            rtn += 0.00000000398 * MMath.Cos(1.40345870113 + 960.22130923370 * t);
            rtn += 0.00000000386 * MMath.Cos(2.15984900214 + 9153.90361602180 * t);
            rtn += 0.00000000370 * MMath.Cos(5.71572992274 + 531.17543780290 * t);
            rtn += 0.00000000359 * MMath.Cos(4.02704454075 + 1059.43011429900 * t);
            rtn += 0.00000000359 * MMath.Cos(0.82922836987 + 1059.33374607940 * t);
            rtn += 0.00000000358 * MMath.Cos(5.94423960514 + 440.82528487760 * t);
            rtn += 0.00000000356 * MMath.Cos(2.66818105522 + 835.03713448730 * t);
            rtn += 0.00000000313 * MMath.Cos(4.88085697819 + 528.20649238630 * t);
            rtn += 0.00000000310 * MMath.Cos(3.45966511571 + 529.47851677350 * t);
            rtn += 0.00000000310 * MMath.Cos(0.88102053266 + 529.90341341570 * t);
            rtn += 0.00000000308 * MMath.Cos(2.67237933272 + 2957.73314812880 * t);
            rtn += 0.00000000306 * MMath.Cos(2.50289017370 + 511.53171782990 * t);
            rtn += 0.00000000300 * MMath.Cos(3.70331799503 + 2634.22773147140 * t);
            rtn += 0.00000000295 * MMath.Cos(1.84394223501 + 547.85021235930 * t);
            rtn += 0.00000000292 * MMath.Cos(2.63594456361 + 415.55249061210 * t);
            rtn += 0.00000000291 * MMath.Cos(5.83134071820 + 1148.24761040620 * t);
            rtn += 0.00000000289 * MMath.Cos(1.86070918711 + 21.34064100240 * t);
            rtn += 0.00000000283 * MMath.Cos(2.88709716090 + 35.42472265210 * t);
            rtn += 0.00000000279 * MMath.Cos(1.60669121578 + 643.82943957710 * t);
            rtn += 0.00000000275 * MMath.Cos(3.34108666036 + 518.64526483070 * t);
            rtn += 0.00000000272 * MMath.Cos(1.65708415457 + 3060.82592234740 * t);
            rtn += 0.00000000269 * MMath.Cos(1.06051406954 + 1585.14074202070 * t);
            rtn += 0.00000000268 * MMath.Cos(5.39275891813 + 1891.23767093880 * t);
            rtn += 0.00000000265 * MMath.Cos(4.93075479744 + 679.25416222920 * t);
            rtn += 0.00000000264 * MMath.Cos(3.62722625694 + 2420.92863603340 * t);
            rtn += 0.00000000254 * MMath.Cos(2.98312992496 + 1134.16352875650 * t);
            rtn += 0.00000000250 * MMath.Cos(0.42860925124 + 1969.20066324380 * t);
            rtn += 0.00000000241 * MMath.Cos(4.03927631611 + 494.26624244250 * t);
            rtn += 0.00000000234 * MMath.Cos(1.68821537711 + 2655.56837247380 * t);
            rtn += 0.00000000234 * MMath.Cos(1.34474827450 + 173.94221952280 * t);
            rtn += 0.00000000224 * MMath.Cos(0.33130232434 + 565.11568774670 * t);
            rtn += 0.00000000222 * MMath.Cos(4.78828764413 + 514.71311156760 * t);
            rtn += 0.00000000221 * MMath.Cos(4.32763468981 + 1677.93857550080 * t);
            rtn += 0.00000000217 * MMath.Cos(3.46278526461 + 2950.61960112800 * t);
            rtn += 0.00000000216 * MMath.Cos(0.52207667980 + 2228.97018159780 * t);
            rtn += 0.00000000214 * MMath.Cos(5.83569926578 + 544.66881862160 * t);
            rtn += 0.00000000211 * MMath.Cos(1.00937080256 + 523.54062594030 * t);
            rtn += 0.00000000210 * MMath.Cos(3.75793720248 + 2854.64037391020 * t);
            rtn += 0.00000000205 * MMath.Cos(3.36186888290 + 2847.52682690940 * t);
            rtn += 0.00000000200 * MMath.Cos(1.27632489123 + 39.35687591520 * t);
            rtn += 0.00000000191 * MMath.Cos(4.26821147044 + 430.53034413910 * t);
            rtn += 0.00000000191 * MMath.Cos(3.33159283750 + 535.84130424890 * t);
            rtn += 0.00000000187 * MMath.Cos(2.72587420586 + 299.12639426920 * t);
            rtn += 0.00000000180 * MMath.Cos(0.04531671003 + 387.24131496080 * t);
            rtn += 0.00000000179 * MMath.Cos(3.91470663005 + 3340.61242669980 * t);
            rtn += 0.00000000178 * MMath.Cos(0.27566275049 + 3906.90875709860 * t);
            rtn += 0.00000000176 * MMath.Cos(4.26298906325 + 672.14061522840 * t);
            rtn += 0.00000000173 * MMath.Cos(3.62399350412 + 230.56457082540 * t);
            rtn += 0.00000000171 * MMath.Cos(0.85473611718 + 1603.29998928540 * t);
            rtn += 0.00000000170 * MMath.Cos(4.96479470273 + 1464.63948006280 * t);
            rtn += 0.00000000163 * MMath.Cos(4.62850343495 + 2015.67108615980 * t);
            rtn += 0.00000000162 * MMath.Cos(5.87784787295 + 3480.31056622260 * t);
            rtn += 0.00000000160 * MMath.Cos(1.81852636004 + 312.45971639350 * t);
            rtn += 0.00000000158 * MMath.Cos(3.76231915252 + 92.04707395470 * t);
            rtn += 0.00000000158 * MMath.Cos(2.59595816107 + 529.43033266370 * t);
            rtn += 0.00000000158 * MMath.Cos(1.74472748730 + 529.95159752550 * t);
            rtn += 0.00000000151 * MMath.Cos(1.17096741034 + 1060.34513803570 * t);
            rtn += 0.00000000144 * MMath.Cos(6.13954848857 + 1158.54255114470 * t);
            rtn += 0.00000000144 * MMath.Cos(5.35763122430 + 107.02492748170 * t);
            rtn += 0.00000000144 * MMath.Cos(3.60261852727 + 1058.41872234270 * t);
            rtn += 0.00000000142 * MMath.Cos(0.70435921398 + 522.52923398400 * t);
            rtn += 0.00000000137 * MMath.Cos(2.41724947062 + 3274.12501778540 * t);
            rtn += 0.00000000135 * MMath.Cos(3.60177675518 + 124.43341522100 * t);
            rtn += 0.00000000131 * MMath.Cos(1.67926417552 + 1289.94650101460 * t);
            rtn += 0.00000000131 * MMath.Cos(1.37610474529 + 1023.95720753710 * t);
            rtn += 0.00000000129 * MMath.Cos(0.09702914345 + 2332.06295581640 * t);
            rtn += 0.00000000127 * MMath.Cos(0.39825164051 + 70.84944530420 * t);
            rtn += 0.00000000126 * MMath.Cos(5.14832919826 + 2207.62954059540 * t);
            rtn += 0.00000000126 * MMath.Cos(3.41994798109 + 2.44768055480 * t);
            rtn += 0.00000000126 * MMath.Cos(2.40833814513 + 106.27416795630 * t);
            rtn += 0.00000000125 * MMath.Cos(2.35496721797 + 3163.91869656600 * t);
            rtn += 0.00000000123 * MMath.Cos(4.77865550523 + 2524.02141025200 * t);
            rtn += 0.00000000123 * MMath.Cos(0.46184813516 + 647.01083331480 * t);
            rtn += 0.00000000122 * MMath.Cos(3.21027426317 + 3377.21779200400 * t);
            rtn += 0.00000000121 * MMath.Cos(3.39770381916 + 18.15924726470 * t);
            rtn += 0.00000000121 * MMath.Cos(1.60252617273 + 10.29494073850 * t);
            rtn += 0.00000000121 * MMath.Cos(0.61420823557 + 1592.25428902150 * t);
            rtn += 0.00000000119 * MMath.Cos(4.08266911415 + 1585.89150154610 * t);
            rtn += 0.00000000115 * MMath.Cos(2.35735471566 + 1550.93985964600 * t);
            rtn += 0.00000000114 * MMath.Cos(2.96523316419 + 1166.40685767090 * t);
            rtn += 0.00000000106 * MMath.Cos(5.18592950792 + 2281.23049651060 * t);
            rtn += 0.00000000103 * MMath.Cos(1.63066232967 + 1894.41906467650 * t);
            rtn += 0.00000000102 * MMath.Cos(3.64093193142 + 3171.03224356680 * t);
            rtn += 0.00000000095 * MMath.Cos(1.66362447044 + 1151.42900414390 * t);
            rtn += 0.00000000093 * MMath.Cos(4.88949890397 + 1098.73880610440 * t);
            rtn += 0.00000000092 * MMath.Cos(1.65166124027 + 860.30992875280 * t);
            rtn += 0.00000000080 * MMath.Cos(0.38766601876 + 4694.00295470760 * t);
            rtn += 0.00000000074 * MMath.Cos(3.86865238736 + 3067.93946934820 * t);
            return(rtn);
        }
Пример #3
0
        // MUranus.Set(double, double, ref double, double, ref double)
        /// <summary>
        /// Setzt die julianische Tageszahl des Untergangs und die Abendweite am geographischen Ort und zur julianischen Tageszahl und liefert die Ereigniskennung.
        /// </summary>
        /// <param name="lambda">Geographische Länge.</param>
        /// <param name="phi">Geographische Breite.</param>
        /// <param name="jdEvent">Julianische Tageszahl des Untergangs.</param>
        /// <param name="jd">Julianische Tageszahl.</param>
        /// <param name="azimuth">Abendweite.</param>
        /// <returns>Ereigniskennung.</returns>
        public static EEventType Set(double lambda, double phi, ref double jdEvent, double jd, ref double azimuth)
        {
            // Lokale Felder einrichten
            double jdn  = MMath.Floor(jd - 0.5) + 0.5;                    // Tageszahl um Mitternacht
            double l    = 0.0;                                            // Geozentrische Länge
            double b    = 0.0;                                            // Geozentrische Breite
            double a    = 0.0;                                            // Rektaszension
            double d    = 0.0;                                            // Deklination
            double dm   = 1.0;                                            // Korrekturglied
            double h    = 0.0;                                            //
            double h0   = MEphemerides.GeocentricHeight_Star;             // Refraktionswinkel
            double H    = 0.0;                                            //
            double sinP = MMath.Sin(phi);                                 // Breitensinus
            double cosP = MMath.Cos(phi);                                 // Breitencosinus

            // Position für nachfolgenden Tag berechnen
            l = MUranus.Longitude(EPrecision.Low, jdn + 1.0);
            b = MUranus.Latitude(EPrecision.Low, jdn + 1.0);
            double aP = MEphemerides.ToAlpha(l, b, EObliquity.Mean, jd + 1.0);
            double dP = MEphemerides.ToDelta(l, b, EObliquity.Mean, jd + 1.0);

            // Position für gegebenen Tag berechnen
            l = MUranus.Longitude(EPrecision.Low, jdn);
            b = MUranus.Latitude(EPrecision.Low, jdn);
            double a0 = MEphemerides.ToAlpha(l, b, EObliquity.Mean, jdn);

            if (MMath.Abs(aP - a0) > 1.0)
            {
                a0 += MMath.Sgn(aP - a0) * MMath.Pi2;
            }
            double d0 = MEphemerides.ToDelta(l, b, EObliquity.Mean, jdn);

            // Position für vorhergehenden Tag berechnen
            l = MUranus.Longitude(EPrecision.Low, jdn - 1.0);
            b = MUranus.Latitude(EPrecision.Low, jdn - 1.0);
            double aM = MEphemerides.ToAlpha(l, b, EObliquity.Mean, jd - 1.0);

            if (MMath.Abs(a0 - aM) > 1.0)
            {
                aM += MMath.Sgn(a0 - aM) * MMath.Pi2;
            }
            double dM = MEphemerides.ToDelta(l, b, EObliquity.Mean, jd - 1.0);

            // Stundenwinkel berechnen und prüfen
            double cosH = (MMath.Sin(h0) - sinP * MMath.Sin(dP)) / (cosP * MMath.Cos(dP));

            if (MMath.Abs(cosH) > 1.0)
            {
                return(cosH < 1.0 ? EEventType.AlwaysAboveHorizon : EEventType.AlwaysBeneathHorizon);
            }
            H = MMath.ArcCos(cosH);

            // ------------------- //
            // Ereigniszeit nähern //
            // ------------------- //

            // Sternzeit und Stundenwinkel zum gegebenen Zeitpunkt bestimmen
            double t0 = MEphemerides.Gmst(jdn);
            double m  = MMath.Div((a0 + lambda - t0 + H) / MMath.Pi2);

            if (m < 0.0)
            {
                m += 1.0;
            }

            // Ereigniszeit iterieren
            while (MMath.Abs(dm) >= 0.0001)
            {
                // Iteration durchführen und nächsten Iterationsschritt vorbereiten
                a  = MMath.Bessel(m, aM, a0, aP);
                d  = MMath.Bessel(m, dM, d0, dP);
                H  = t0 + 6.300388093 * m - lambda - a;
                h  = MMath.ArcSin(sinP * MMath.Sin(d) + cosP * MMath.Cos(d) * MMath.Cos(H));
                dm = (h - h0) / (MMath.Pi2 * MMath.Cos(d) * cosP * MMath.Sin(H));
                m += dm;
            }

            // Iteration anwenden, Azimut berechnen und Rückgabewert setzen
            jdEvent = jd + m;
            azimuth = MEphemerides.ToAzimuth(H, d, phi);
            return(EEventType.Normal);
        }
Пример #4
0
        // MNeptune.m_B1(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 1. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 1. Ordnung.</returns>
        private static double m_B1(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            // Terme aufsummieren
            rtn += 0.00227279214 * MMath.Cos(3.80793089870 + 38.13303563780 * t);
            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            rtn += 0.00001803120 * MMath.Cos(1.97576485377 + 76.26607127560 * t);
            rtn += 0.00001433300 * MMath.Cos(3.14159265359 + 0.00000000000 * t);
            rtn += 0.00001385733 * MMath.Cos(4.82555548018 + 36.64856292950 * t);
            rtn += 0.00001073298 * MMath.Cos(6.08054240712 + 39.61750834610 * t);
            rtn += 0.00000147903 * MMath.Cos(3.85766231348 + 74.78159856730 * t);
            rtn += 0.00000136448 * MMath.Cos(0.47764957338 + 1.48447270830 * t);
            rtn += 0.00000070285 * MMath.Cos(6.18782052139 + 35.16409022120 * t);
            rtn += 0.00000051899 * MMath.Cos(5.05221791891 + 73.29712585900 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000042568 * MMath.Cos(0.30721737205 + 114.39910691340 * t);
            rtn += 0.00000037273 * MMath.Cos(4.89476629246 + 41.10198105440 * t);
            rtn += 0.00000037104 * MMath.Cos(5.75999349109 + 2.96894541660 * t);
            rtn += 0.00000026399 * MMath.Cos(5.21566335936 + 213.29909543800 * t);
            rtn += 0.00000018747 * MMath.Cos(0.90426522185 + 453.42489381900 * t);
            rtn += 0.00000016949 * MMath.Cos(4.26463671859 + 77.75054398390 * t);
            rtn += 0.00000012951 * MMath.Cos(6.17709713139 + 529.69096509460 * t);
            rtn += 0.00000010502 * MMath.Cos(1.20336443465 + 137.03302416240 * t);
            rtn += 0.00000004416 * MMath.Cos(1.25478204684 + 111.43016149680 * t);
            rtn += 0.00000004383 * MMath.Cos(6.14147099615 + 71.81265315070 * t);
            rtn += 0.00000003694 * MMath.Cos(0.94837702528 + 33.67961751290 * t);
            rtn += 0.00000002957 * MMath.Cos(4.77532871210 + 4.45341812490 * t);
            rtn += 0.00000002698 * MMath.Cos(1.92435531119 + 112.91463420510 * t);
            rtn += 0.00000001989 * MMath.Cos(3.96637567224 + 42.58645376270 * t);
            rtn += 0.00000001150 * MMath.Cos(4.30568700024 + 37.61177077600 * t);
            rtn += 0.00000000944 * MMath.Cos(2.21777772050 + 109.94568878850 * t);
            rtn += 0.00000000936 * MMath.Cos(1.17054983940 + 148.07872442630 * t);
            rtn += 0.00000000925 * MMath.Cos(2.40329074000 + 206.18554843720 * t);
            rtn += 0.00000000871 * MMath.Cos(4.81775882249 + 152.53214255120 * t);
            rtn += 0.00000000726 * MMath.Cos(4.13829519132 + 28.57180808220 * t);
            rtn += 0.00000000716 * MMath.Cos(0.55781847010 + 350.33211960040 * t);
            rtn += 0.00000000690 * MMath.Cos(1.57381082857 + 38.65430049960 * t);
            rtn += 0.00000000640 * MMath.Cos(2.46161252327 + 115.88357962170 * t);
            rtn += 0.00000000624 * MMath.Cos(2.79466003645 + 79.23501669220 * t);
            rtn += 0.00000000566 * MMath.Cos(1.80111775954 + 175.16605980020 * t);
            rtn += 0.00000000563 * MMath.Cos(1.84072805158 + 983.11585891360 * t);
            rtn += 0.00000000539 * MMath.Cos(2.06690307827 + 40.58071619260 * t);
            rtn += 0.00000000537 * MMath.Cos(1.95986772922 + 220.41264243880 * t);
            rtn += 0.00000000533 * MMath.Cos(1.34787677940 + 47.69426319340 * t);
            rtn += 0.00000000531 * MMath.Cos(2.96991530500 + 98.89998852460 * t);
            rtn += 0.00000000456 * MMath.Cos(3.19611413854 + 108.46121608020 * t);
            rtn += 0.00000000449 * MMath.Cos(1.62191691011 + 144.14657116320 * t);
            rtn += 0.00000000414 * MMath.Cos(1.03543720726 + 70.32818044240 * t);
            rtn += 0.00000000381 * MMath.Cos(6.11910193382 + 426.59819087600 * t);
            rtn += 0.00000000371 * MMath.Cos(2.74239666472 + 415.29185818120 * t);
            rtn += 0.00000000366 * MMath.Cos(2.39752585360 + 129.91947716160 * t);
            rtn += 0.00000000341 * MMath.Cos(3.87265469070 + 35.68535508300 * t);
            rtn += 0.00000000331 * MMath.Cos(4.48858774501 + 460.53844081980 * t);
            rtn += 0.00000000328 * MMath.Cos(0.89613145346 + 38.08485152800 * t);
            rtn += 0.00000000327 * MMath.Cos(3.62341506247 + 38.18121974760 * t);
            rtn += 0.00000000319 * MMath.Cos(1.34097217817 + 184.72728735580 * t);
            rtn += 0.00000000310 * MMath.Cos(0.51297445145 + 37.16982779130 * t);
            rtn += 0.00000000298 * MMath.Cos(4.00532631258 + 39.09624348430 * t);
            rtn += 0.00000000287 * MMath.Cos(2.18351651800 + 491.55792945680 * t);
            rtn += 0.00000000281 * MMath.Cos(3.81657117512 + 5.93789083320 * t);
            rtn += 0.00000000274 * MMath.Cos(6.11504724934 + 522.57741809380 * t);
            rtn += 0.00000000265 * MMath.Cos(5.26569823181 + 446.31134681820 * t);
            rtn += 0.00000000226 * MMath.Cos(6.17710997862 + 454.90936652730 * t);
            rtn += 0.00000000205 * MMath.Cos(5.53935732020 + 536.80451209540 * t);
            rtn += 0.00000000203 * MMath.Cos(6.02944475303 + 149.56319713460 * t);
            rtn += 0.00000000198 * MMath.Cos(2.30775852880 + 146.59425171800 * t);
            rtn += 0.00000000186 * MMath.Cos(3.24302117645 + 4.19278569400 * t);
            rtn += 0.00000000179 * MMath.Cos(4.91458426239 + 451.94042111070 * t);
            rtn += 0.00000000166 * MMath.Cos(1.16793600058 + 72.07328558160 * t);
            rtn += 0.00000000159 * MMath.Cos(3.46955908364 + 145.10977900970 * t);
            rtn += 0.00000000147 * MMath.Cos(2.10574339673 + 44.07092647100 * t);
            rtn += 0.00000000128 * MMath.Cos(1.51108932026 + 221.37585028530 * t);
            rtn += 0.00000000127 * MMath.Cos(0.17176461812 + 138.51749687070 * t);
            rtn += 0.00000000125 * MMath.Cos(3.42713474801 + 251.43213107580 * t);
            rtn += 0.00000000124 * MMath.Cos(5.85160407534 + 1059.38193018920 * t);
            rtn += 0.00000000123 * MMath.Cos(1.98250467171 + 46.20979048510 * t);
            rtn += 0.00000000118 * MMath.Cos(5.27114846878 + 37.87240320690 * t);
            rtn += 0.00000000117 * MMath.Cos(5.35267669439 + 38.39366806870 * t);
            rtn += 0.00000000116 * MMath.Cos(5.88971113590 + 38.02116105320 * t);
            rtn += 0.00000000115 * MMath.Cos(4.73412534395 + 38.24491022240 * t);
            rtn += 0.00000000114 * MMath.Cos(4.37452353441 + 388.46515523820 * t);
            rtn += 0.00000000111 * MMath.Cos(3.56226463770 + 181.75834193920 * t);
            rtn += 0.00000000099 * MMath.Cos(5.19920708255 + 135.54855145410 * t);
            rtn += 0.00000000093 * MMath.Cos(4.64183693718 + 106.97674337190 * t);
            rtn += 0.00000000091 * MMath.Cos(2.38273591235 + 30.05628079050 * t);
            rtn += 0.00000000084 * MMath.Cos(5.51669920239 + 8.07675484730 * t);
            rtn += 0.00000000084 * MMath.Cos(1.35269684746 + 33.94024994380 * t);
            rtn += 0.00000000082 * MMath.Cos(3.18401661435 + 42.32582133180 * t);
            return(rtn);
        }
Пример #5
0
        // MEarth.m_B1(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 1. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 1. Ordnung.</returns>
        private static double m_B1(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00000009030 * MMath.Cos(3.89729061890 + 5507.55323866740 * t);
            rtn += 0.00000006177 * MMath.Cos(1.73038850355 + 5223.69391980220 * t);
            rtn += 0.00000003800 * MMath.Cos(5.24404145734 + 2352.86615377180 * t);
            rtn += 0.00000002834 * MMath.Cos(2.47345037450 + 1577.34354244780 * t);
            rtn += 0.00000001817 * MMath.Cos(0.41874743765 + 6283.07584999140 * t);
            rtn += 0.00000001499 * MMath.Cos(1.83320979291 + 5856.47765911540 * t);
            rtn += 0.00000001466 * MMath.Cos(5.69401926017 + 5753.38488489680 * t);
            rtn += 0.00000001301 * MMath.Cos(2.18890066314 + 9437.76293488700 * t);
            rtn += 0.00000001233 * MMath.Cos(4.95222451476 + 10213.28554621100 * t);
            rtn += 0.00000001021 * MMath.Cos(0.12866660208 + 7860.41939243920 * t);
            rtn += 0.00000000982 * MMath.Cos(0.09005453285 + 14143.49524243060 * t);
            rtn += 0.00000000865 * MMath.Cos(1.73949953555 + 3930.20969621960 * t);
            rtn += 0.00000000581 * MMath.Cos(2.26949174067 + 5884.92684658320 * t);
            rtn += 0.00000000524 * MMath.Cos(5.65662503159 + 529.69096509460 * t);
            rtn += 0.00000000473 * MMath.Cos(6.22750969242 + 6309.37416979120 * t);
            rtn += 0.00000000451 * MMath.Cos(1.53288619213 + 18073.70493865020 * t);
            rtn += 0.00000000372 * MMath.Cos(3.22470721320 + 6275.96230299060 * t);
            rtn += 0.00000000364 * MMath.Cos(3.61614477374 + 13367.97263110660 * t);
            rtn += 0.00000000322 * MMath.Cos(0.94084045832 + 6069.77675455340 * t);
            rtn += 0.00000000268 * MMath.Cos(2.34341267879 + 11790.62908865880 * t);
            rtn += 0.00000000232 * MMath.Cos(2.93325646109 + 22003.91463486980 * t);
            rtn += 0.00000000232 * MMath.Cos(0.26781182579 + 7058.59846131540 * t);
            rtn += 0.00000000220 * MMath.Cos(3.99305643742 + 6812.76681508600 * t);
            rtn += 0.00000000216 * MMath.Cos(6.05952221329 + 10977.07880469900 * t);
            rtn += 0.00000000212 * MMath.Cos(1.57166285369 + 4694.00295470760 * t);
            rtn += 0.00000000204 * MMath.Cos(3.86264841382 + 6496.37494542940 * t);
            rtn += 0.00000000202 * MMath.Cos(2.81892511133 + 15720.83878487840 * t);
            rtn += 0.00000000185 * MMath.Cos(4.93512381859 + 12036.46073488820 * t);
            rtn += 0.00000000180 * MMath.Cos(2.06509026215 + 7084.89678111520 * t);
            rtn += 0.00000000166 * MMath.Cos(1.74970002999 + 11506.76976979360 * t);
            rtn += 0.00000000161 * MMath.Cos(3.32421999691 + 6283.31966747490 * t);
            rtn += 0.00000000157 * MMath.Cos(1.08259734788 + 5643.17856367740 * t);
            rtn += 0.00000000154 * MMath.Cos(5.99434678412 + 5486.77784317500 * t);
            rtn += 0.00000000150 * MMath.Cos(2.00175038718 + 5230.80746680300 * t);
            rtn += 0.00000000149 * MMath.Cos(5.06157254516 + 17298.18232732620 * t);
            rtn += 0.00000000144 * MMath.Cos(5.23285656085 + 78051.58573131690 * t);
            rtn += 0.00000000144 * MMath.Cos(1.16454655948 + 90617.73743129970 * t);
            rtn += 0.00000000143 * MMath.Cos(0.00000000000 + 0.00000000000 * t);
            rtn += 0.00000000137 * MMath.Cos(2.67760436027 + 6290.18939699220 * t);
            rtn += 0.00000000128 * MMath.Cos(4.35489873365 + 25934.12433108940 * t);
            rtn += 0.00000000121 * MMath.Cos(5.90212574947 + 9225.53927328300 * t);
            rtn += 0.00000000121 * MMath.Cos(4.36722193162 + 19651.04848109800 * t);
            rtn += 0.00000000118 * MMath.Cos(5.39979058038 + 3340.61242669980 * t);
            rtn += 0.00000000116 * MMath.Cos(5.83462858507 + 4705.73230754360 * t);
            rtn += 0.00000000109 * MMath.Cos(2.52157834166 + 6438.49624942560 * t);
            rtn += 0.00000000103 * MMath.Cos(0.93782340879 + 8827.39026987480 * t);
            rtn += 0.00000000099 * MMath.Cos(2.70727488041 + 5216.58037280140 * t);
            rtn += 0.00000000097 * MMath.Cos(5.50959692365 + 29864.33402730900 * t);
            rtn += 0.00000000082 * MMath.Cos(4.29214680390 + 8635.94200376320 * t);
            rtn += 0.00000000079 * MMath.Cos(2.24085737326 + 1059.38193018920 * t);
            rtn += 0.00000000074 * MMath.Cos(2.20184828895 + 37724.75341974820 * t);
            rtn += 0.00000000072 * MMath.Cos(0.21891639822 + 21228.39202354580 * t);
            rtn += 0.00000000071 * MMath.Cos(2.86755026812 + 6681.22485339960 * t);
            rtn += 0.00000000063 * MMath.Cos(4.45586625948 + 7079.37385680780 * t);
            rtn += 0.00000000061 * MMath.Cos(0.63918772258 + 33794.54372352860 * t);
            rtn += 0.00000000057 * MMath.Cos(0.11215813438 + 29088.81141598500 * t);
            rtn += 0.00000000056 * MMath.Cos(5.47982934911 + 775.52261132400 * t);
            rtn += 0.00000000050 * MMath.Cos(3.62740835096 + 41654.96311596780 * t);
            rtn += 0.00000000050 * MMath.Cos(1.89396788463 + 12139.55350910680 * t);
            return(rtn);
        }
Пример #6
0
        // MMoon.FirstQuarter(double)
        /// <summary>
        /// Liefert die julianische Tageszahl des nächsten ersten Viertels nach der julianischen Tageszahl.
        /// </summary>
        /// <param name="jd">Julianische Tageszahl.</param>
        /// <returns>Julianische Tageszahl des nächsten ersten Viertels nach der julianischen Tageszahl.</returns>
        public static double FirstQuarter(double jd)
        {
            // Lokale Felder einrichten
            double y = (double)MCalendar.GregorianYear(jd) + MEphemerides.YearFragment(jd);
            double k = MMath.Floor(12.3685 * (y - 2000.0)) - 0.75;
            double j = 0.0;

            // Berechnungsschleife
            while (j <= jd)
            {
                // Lunation inkrementieren und lokale Felder einrichten
                k += 1.0;
                double t = k / 1236.85;

                // Näherung berechnen und Hilfsfelder einrichten
                j = MMath.Polynome(t, 2451550.09766 + 29.530588861 * k, 0.0, 0.00015437, -0.000000150, 0.00000000073);
                double e1 = MMath.Polynome(t, 1.0, -0.002516, -0.0000074);
                double e2 = e1 * e1;
                double m  = MMath.Mod(MMath.ToRad(MMath.Polynome(t, 2.5534 + 29.10535670 * k, 0.0, -0.0000014, -0.00000011)), MMath.Pi2);
                double a  = MMath.Mod(MMath.ToRad(MMath.Polynome(t, 201.5643 + 385.81693528 * k, 0.0, 0.0107582, 0.00001238, -0.000000058)), MMath.Pi2);
                double f  = MMath.Mod(MMath.ToRad(MMath.Polynome(t, 160.7108 + 390.67050284 * k, 0.0, -0.0016118, -0.00000227, 0.000000011)), MMath.Pi2);
                double o  = MMath.Mod(MMath.ToRad(MMath.Polynome(t, 124.7746 - 1.56375588 * k, 0.0, 0.0020672, 0.00000215)), MMath.Pi2);
                double h  = 0.0;

                // Korrektur berechnen
                h  = -0.62801 * MMath.Sin(a);
                h += 0.17172 * e1 * MMath.Sin(m);
                h += -0.01183 * e1 * MMath.Sin(a + m);
                h += 0.00862 * MMath.Sin(2.0 * a);
                h += 0.00804 * MMath.Sin(2.0 * f);
                h += 0.00454 * e1 * MMath.Sin(a - m);
                h += 0.00204 * e2 * MMath.Sin(2.0 * m);
                h += -0.00180 * MMath.Sin(a - 2.0 * f);
                h += -0.00070 * MMath.Sin(a + 2.0 * f);
                h += -0.00040 * MMath.Sin(3.0 * a);
                h += -0.00034 * e1 * MMath.Sin(2.0 * a - m);
                h += 0.00032 * e1 * MMath.Sin(m + 2.0 * f);
                h += 0.00032 * e1 * MMath.Sin(m - 2.0 * f);
                h += -0.00028 * e2 * MMath.Sin(a + 2.0 * m);
                h += 0.00027 * e1 * MMath.Sin(2.0 * a + m);
                h += -0.00017 * MMath.Sin(o);
                h += -0.00005 * MMath.Sin(a - m - 2.0 * f);
                h += 0.00004 * MMath.Sin(2.0 * a + 2.0 * f);
                h += -0.00004 * MMath.Sin(a + m + 2.0 * f);
                h += 0.00004 * MMath.Sin(a - 2.0 * m);
                h += 0.00003 * MMath.Sin(a + m - 2.0 * f);
                h += 0.00003 * MMath.Sin(3.0 * m);
                h += 0.00002 * MMath.Sin(2.0 * a - 2.0 * f);
                h += 0.00002 * MMath.Sin(a - m + 2.0 * f);
                h += -0.00002 * MMath.Sin(3.0 * a + m);

                // Viertelkorrektur berechnen
                h += 0.00306;
                h += -0.00038 * e1 * MMath.Cos(m);
                h += 0.00026 * MMath.Cos(a);
                h += -0.00002 * MMath.Cos(a - m);
                h += 0.00002 * MMath.Cos(a + m);
                h += 0.00002 * MMath.Cos(2.0 * f);

                // Störungen durch Planeten berechnen
                h += 0.000325 * MMath.Sin(MMath.ToRad(299.77 + 0.107408 * k - 0.009173 * t * t));
                h += 0.000165 * MMath.Sin(MMath.ToRad(251.88 + 0.016321 * k));
                h += 0.000164 * MMath.Sin(MMath.ToRad(251.83 + 26.651886 * k));
                h += 0.000126 * MMath.Sin(MMath.ToRad(349.42 + 36.412478 * k));
                h += 0.000110 * MMath.Sin(MMath.ToRad(84.66 + 18.206239 * k));
                h += 0.000062 * MMath.Sin(MMath.ToRad(141.74 + 53.303771 * k));
                h += 0.000060 * MMath.Sin(MMath.ToRad(207.14 + 2.453732 * k));
                h += 0.000056 * MMath.Sin(MMath.ToRad(154.84 + 7.306860 * k));
                h += 0.000047 * MMath.Sin(MMath.ToRad(34.52 + 27.261239 * k));
                h += 0.000042 * MMath.Sin(MMath.ToRad(207.19 + 0.121824 * k));
                h += 0.000040 * MMath.Sin(MMath.ToRad(291.34 + 1.844379 * k));
                h += 0.000037 * MMath.Sin(MMath.ToRad(161.72 + 24.198154 * k));
                h += 0.000035 * MMath.Sin(MMath.ToRad(239.56 + 25.513099 * k));
                h += 0.000023 * MMath.Sin(MMath.ToRad(331.55 + 3.592518 * k));

                // Korrekturen anwenden
                j += h;
            }
            return(j);
        }
Пример #7
0
        // MUranus.m_B2(EPrecision, double)
        /// <summary>
        /// Liefert die Summe der Terme 2. Ordnung zur Genauigkeitskennung und Jahrhundertbruchteil.
        /// </summary>
        /// <param name="value">Genauigkeitskennung.</param>
        /// <param name="t">Jahrhundertbruchteil.</param>
        /// <returns>Liefert die Summe der Terme 2. Ordnung.</returns>
        private static double m_B2(EPrecision value, double t)
        {
            // Lokale Felder einrichten
            double rtn = 0.0;

            if (value == EPrecision.Low)
            {
                return(rtn);
            }

            // Terme aufsummieren
            rtn += 0.00009211656 * MMath.Cos(5.80044305785 + 74.78159856730 * t);
            rtn += 0.00000556926 * MMath.Cos(0.00000000000 + 0.00000000000 * t);
            rtn += 0.00000286265 * MMath.Cos(2.17729776353 + 149.56319713460 * t);
            rtn += 0.00000094969 * MMath.Cos(3.84237569809 + 73.29712585900 * t);
            if (value == EPrecision.Medium)
            {
                return(rtn);
            }
            rtn += 0.00000045419 * MMath.Cos(4.87822046064 + 76.26607127560 * t);
            rtn += 0.00000020107 * MMath.Cos(5.46264485369 + 1.48447270830 * t);
            rtn += 0.00000014793 * MMath.Cos(0.87983715652 + 138.51749687070 * t);
            rtn += 0.00000014261 * MMath.Cos(2.84517742687 + 148.07872442630 * t);
            rtn += 0.00000013963 * MMath.Cos(5.07234043994 + 63.73589830340 * t);
            rtn += 0.00000010122 * MMath.Cos(5.00290894862 + 224.34479570190 * t);
            rtn += 0.00000008299 * MMath.Cos(6.26655615197 + 78.71375183040 * t);
            rtn += 0.00000004729 * MMath.Cos(5.16274174929 + 71.81265315070 * t);
            rtn += 0.00000003816 * MMath.Cos(6.28224514574 + 85.82729883120 * t);
            rtn += 0.00000003488 * MMath.Cos(3.53472172445 + 11.04570026390 * t);
            rtn += 0.00000002585 * MMath.Cos(0.41383633246 + 71.60020482960 * t);
            rtn += 0.00000002555 * MMath.Cos(1.44444215715 + 151.04766984290 * t);
            rtn += 0.00000002353 * MMath.Cos(4.23069776466 + 3.93215326310 * t);
            rtn += 0.00000001394 * MMath.Cos(4.13126838571 + 146.59425171800 * t);
            rtn += 0.00000001205 * MMath.Cos(5.05109252937 + 380.12776796000 * t);
            rtn += 0.00000001183 * MMath.Cos(3.68471361409 + 77.75054398390 * t);
            rtn += 0.00000001146 * MMath.Cos(1.95280464754 + 529.69096509460 * t);
            rtn += 0.00000001103 * MMath.Cos(5.54212014132 + 222.86032299360 * t);
            rtn += 0.00000001025 * MMath.Cos(4.33698643491 + 2.96894541660 * t);
            rtn += 0.00000000977 * MMath.Cos(1.52652616357 + 77.96299230500 * t);
            rtn += 0.00000000868 * MMath.Cos(5.55175791193 + 38.13303563780 * t);
            rtn += 0.00000000858 * MMath.Cos(2.78728745263 + 111.43016149680 * t);
            rtn += 0.00000000633 * MMath.Cos(0.41074353315 + 213.29909543800 * t);
            rtn += 0.00000000596 * MMath.Cos(5.39265533517 + 127.47179660680 * t);
            rtn += 0.00000000586 * MMath.Cos(4.00404667232 + 109.94568878850 * t);
            rtn += 0.00000000557 * MMath.Cos(3.13408880388 + 65.22037101170 * t);
            rtn += 0.00000000543 * MMath.Cos(2.40369406419 + 153.49535039770 * t);
            rtn += 0.00000000486 * MMath.Cos(2.05237757516 + 299.12639426920 * t);
            rtn += 0.00000000481 * MMath.Cos(2.81511187371 + 160.60889739850 * t);
            rtn += 0.00000000457 * MMath.Cos(3.96543219832 + 454.90936652730 * t);
            rtn += 0.00000000421 * MMath.Cos(2.16819778071 + 56.62235130260 * t);
            rtn += 0.00000000338 * MMath.Cos(5.14594268587 + 3.18139373770 * t);
            rtn += 0.00000000336 * MMath.Cos(4.23512034174 + 35.16409022120 * t);
            rtn += 0.00000000326 * MMath.Cos(4.52920012430 + 39.61750834610 * t);
            rtn += 0.00000000316 * MMath.Cos(3.93430525759 + 52.69019803950 * t);
            rtn += 0.00000000308 * MMath.Cos(6.26508780547 + 70.32818044240 * t);
            rtn += 0.00000000306 * MMath.Cos(1.10359318443 + 70.84944530420 * t);
            rtn += 0.00000000288 * MMath.Cos(0.47061435406 + 22.09140052780 * t);
            rtn += 0.00000000264 * MMath.Cos(1.82574036051 + 77.22927912210 * t);
            rtn += 0.00000000263 * MMath.Cos(1.59203582407 + 84.34282612290 * t);
            rtn += 0.00000000250 * MMath.Cos(3.58780257084 + 202.25339517410 * t);
            rtn += 0.00000000239 * MMath.Cos(4.77679306080 + 87.31177153950 * t);
            rtn += 0.00000000227 * MMath.Cos(2.74138067839 + 12.53017297220 * t);
            rtn += 0.00000000222 * MMath.Cos(0.04111883550 + 184.72728735580 * t);
            rtn += 0.00000000216 * MMath.Cos(5.80700510713 + 74.66972398270 * t);
            rtn += 0.00000000215 * MMath.Cos(3.88195737361 + 131.40394986990 * t);
            rtn += 0.00000000197 * MMath.Cos(1.56602555362 + 9.56122755560 * t);
            rtn += 0.00000000193 * MMath.Cos(2.26416938160 + 75.74480641380 * t);
            rtn += 0.00000000179 * MMath.Cos(2.69065316892 + 145.63104387150 * t);
            rtn += 0.00000000174 * MMath.Cos(4.76111441901 + 277.03499374140 * t);
            rtn += 0.00000000170 * MMath.Cos(2.75844544119 + 73.81839072080 * t);
            rtn += 0.00000000155 * MMath.Cos(3.55393249110 + 18.15924726470 * t);
            rtn += 0.00000000140 * MMath.Cos(0.28714762870 + 221.37585028530 * t);
            rtn += 0.00000000134 * MMath.Cos(1.29065526326 + 206.18554843720 * t);
            rtn += 0.00000000127 * MMath.Cos(6.17908901556 + 62.25142559510 * t);
            rtn += 0.00000000116 * MMath.Cos(6.26646620658 + 220.41264243880 * t);
            return(rtn);
        }