From 7c1b0f8e4e070d28a84226783231180fb6e982c1 Mon Sep 17 00:00:00 2001 From: Andrew McCluskey Date: Fri, 1 May 2020 14:21:54 +0100 Subject: [PATCH 1/3] first draft of ir spectra --- content/data_work/benzyl_alcohol.csv | 668 +++++++++ content/data_work/ir_spectra.ipynb | 397 ++++- content/data_work/mixture.csv | 1992 ++++++++++++++++++++++++++ content/data_work/toluene.csv | 401 ++++++ 4 files changed, 3454 insertions(+), 4 deletions(-) create mode 100644 content/data_work/benzyl_alcohol.csv create mode 100644 content/data_work/mixture.csv create mode 100644 content/data_work/toluene.csv diff --git a/content/data_work/benzyl_alcohol.csv b/content/data_work/benzyl_alcohol.csv new file mode 100644 index 0000000..d1e009f --- /dev/null +++ b/content/data_work/benzyl_alcohol.csv @@ -0,0 +1,668 @@ +# benzyl alcohol +# wavenumber (cm-1), transmittance +675.0, 0.7712 +680.0, 0.7018 +685.0, 0.5806 +690.0, 0.219 +695.0, 0.0406 +700.0, 0.2352 +705.0, 0.486 +710.0, 0.557 +715.0, 0.5227 +720.0, 0.398 +725.0, 0.227 +730.0, 0.0773 +735.0, 0.0611 +740.0, 0.0922 +745.0, 0.1674 +750.0, 0.3836 +755.0, 0.5929 +760.0, 0.7218 +765.0, 0.7864 +770.0, 0.8194 +775.0, 0.8336 +780.0, 0.8368 +785.0, 0.8248 +790.0, 0.8069 +795.0, 0.7911 +800.0, 0.796 +805.0, 0.8065 +810.0, 0.8167 +815.0, 0.8297 +820.0, 0.8516 +825.0, 0.8568 +830.0, 0.8566 +835.0, 0.8562 +840.0, 0.8687 +845.0, 0.8823 +850.0, 0.8817 +855.0, 0.8802 +860.0, 0.8759 +865.0, 0.871 +870.0, 0.8641 +875.0, 0.8544 +880.0, 0.8381 +885.0, 0.813 +890.0, 0.7741 +895.0, 0.7161 +900.0, 0.6578 +905.0, 0.6838 +910.0, 0.7507 +915.0, 0.7868 +920.0, 0.7949 +925.0, 0.7994 +930.0, 0.7894 +935.0, 0.7738 +940.0, 0.7496 +945.0, 0.7121 +950.0, 0.6653 +955.0, 0.6 +960.0, 0.5324 +965.0, 0.5029 +970.0, 0.4928 +975.0, 0.4828 +980.0, 0.4605 +985.0, 0.4273 +990.0, 0.3623 +995.0, 0.2884 +1000.0, 0.2083 +1005.0, 0.1396 +1010.0, 0.1171 +1015.0, 0.1195 +1020.0, 0.1315 +1025.0, 0.2042 +1030.0, 0.2183 +1035.0, 0.2123 +1040.0, 0.2813 +1045.0, 0.3947 +1050.0, 0.5071 +1055.0, 0.6053 +1060.0, 0.6497 +1065.0, 0.6515 +1070.0, 0.6355 +1075.0, 0.6294 +1080.0, 0.6826 +1085.0, 0.755 +1090.0, 0.7814 +1095.0, 0.7912 +1100.0, 0.7951 +1105.0, 0.8082 +1110.0, 0.8015 +1115.0, 0.8038 +1120.0, 0.8042 +1125.0, 0.7972 +1130.0, 0.7834 +1135.0, 0.7637 +1140.0, 0.741 +1145.0, 0.7118 +1150.0, 0.6698 +1155.0, 0.6297 +1160.0, 0.5868 +1165.0, 0.5379 +1170.0, 0.4846 +1175.0, 0.4695 +1180.0, 0.4733 +1185.0, 0.4938 +1190.0, 0.4962 +1195.0, 0.4698 +1200.0, 0.4478 +1205.0, 0.5041 +1210.0, 0.6256 +1215.0, 0.6818 +1220.0, 0.7061 +1225.0, 0.7246 +1230.0, 0.7408 +1235.0, 0.7515 +1240.0, 0.758 +1245.0, 0.7603 +1250.0, 0.7643 +1255.0, 0.7641 +1260.0, 0.7608 +1265.0, 0.7557 +1270.0, 0.7524 +1275.0, 0.7485 +1280.0, 0.7418 +1285.0, 0.7346 +1290.0, 0.7256 +1295.0, 0.7151 +1300.0, 0.7072 +1305.0, 0.7018 +1310.0, 0.6972 +1315.0, 0.6928 +1320.0, 0.6886 +1325.0, 0.6848 +1330.0, 0.6834 +1335.0, 0.6836 +1340.0, 0.6846 +1345.0, 0.6845 +1350.0, 0.6771 +1355.0, 0.6291 +1360.0, 0.5589 +1365.0, 0.4893 +1370.0, 0.421 +1375.0, 0.409 +1380.0, 0.451 +1385.0, 0.5009 +1390.0, 0.5469 +1395.0, 0.5993 +1400.0, 0.6371 +1405.0, 0.6597 +1410.0, 0.6825 +1415.0, 0.7069 +1420.0, 0.7191 +1425.0, 0.7278 +1430.0, 0.725 +1435.0, 0.7145 +1440.0, 0.6882 +1445.0, 0.5874 +1450.0, 0.3887 +1455.0, 0.2862 +1460.0, 0.6171 +1465.0, 0.6905 +1470.0, 0.7683 +1475.0, 0.8103 +1480.0, 0.8078 +1485.0, 0.7884 +1490.0, 0.7044 +1495.0, 0.5233 +1500.0, 0.6817 +1505.0, 0.9393 +1510.0, 0.9425 +1515.0, 0.938 +1520.0, 0.9378 +1525.0, 0.939 +1530.0, 0.9398 +1535.0, 0.9389 +1540.0, 0.9364 +1545.0, 0.9327 +1550.0, 0.927 +1555.0, 0.9193 +1560.0, 0.9109 +1565.0, 0.9005 +1570.0, 0.8864 +1575.0, 0.8773 +1580.0, 0.8684 +1585.0, 0.8594 +1590.0, 0.8597 +1595.0, 0.8597 +1600.0, 0.8523 +1605.0, 0.8578 +1610.0, 0.8903 +1615.0, 0.9363 +1620.0, 0.9444 +1625.0, 0.9435 +1630.0, 0.9435 +1635.0, 0.9443 +1640.0, 0.9455 +1645.0, 0.9478 +1650.0, 0.9501 +1655.0, 0.9524 +1660.0, 0.9547 +1665.0, 0.9575 +1670.0, 0.9607 +1675.0, 0.9628 +1680.0, 0.9651 +1685.0, 0.9666 +1690.0, 0.9652 +1695.0, 0.9599 +1700.0, 0.954 +1705.0, 0.9509 +1710.0, 0.9518 +1715.0, 0.9534 +1720.0, 0.9534 +1725.0, 0.9515 +1730.0, 0.9487 +1735.0, 0.9465 +1740.0, 0.9495 +1745.0, 0.9571 +1750.0, 0.9634 +1755.0, 0.9631 +1760.0, 0.9625 +1765.0, 0.9616 +1770.0, 0.9605 +1775.0, 0.9592 +1780.0, 0.9567 +1785.0, 0.9435 +1790.0, 0.9206 +1795.0, 0.8978 +1800.0, 0.8981 +1805.0, 0.9359 +1810.0, 0.9415 +1815.0, 0.9481 +1820.0, 0.9646 +1825.0, 0.9705 +1830.0, 0.9704 +1835.0, 0.9683 +1840.0, 0.9605 +1845.0, 0.9471 +1850.0, 0.9321 +1855.0, 0.9174 +1860.0, 0.9191 +1865.0, 0.9295 +1870.0, 0.9415 +1875.0, 0.9537 +1880.0, 0.9663 +1885.0, 0.9761 +1890.0, 0.9799 +1895.0, 0.9801 +1900.0, 0.9786 +1905.0, 0.9744 +1910.0, 0.969 +1915.0, 0.9639 +1920.0, 0.9561 +1925.0, 0.9312 +1930.0, 0.8937 +1935.0, 0.8871 +1940.0, 0.9137 +1945.0, 0.9338 +1950.0, 0.9374 +1955.0, 0.9411 +1960.0, 0.9741 +1965.0, 0.9788 +1970.0, 0.9815 +1975.0, 0.9825 +1980.0, 0.9825 +1985.0, 0.983 +1990.0, 0.9837 +1995.0, 0.9844 +2000.0, 0.9852 +2005.0, 0.9861 +2010.0, 0.9871 +2015.0, 0.9874 +2020.0, 0.9875 +2025.0, 0.9877 +2030.0, 0.9881 +2035.0, 0.9891 +2040.0, 0.9901 +2045.0, 0.9916 +2050.0, 0.9934 +2055.0, 0.9962 +2060.0, 1.0 +2065.0, 1.0032 +2070.0, 1.0061 +2075.0, 1.009 +2080.0, 1.0103 +2085.0, 1.0107 +2090.0, 1.0109 +2095.0, 1.0107 +2100.0, 1.0104 +2105.0, 1.0102 +2110.0, 1.0098 +2115.0, 1.0092 +2120.0, 1.0085 +2125.0, 1.0074 +2130.0, 1.0064 +2135.0, 1.0053 +2140.0, 1.0044 +2145.0, 1.0039 +2150.0, 1.0035 +2155.0, 1.0031 +2160.0, 1.0025 +2165.0, 1.0021 +2170.0, 1.0018 +2175.0, 1.0015 +2180.0, 1.0013 +2185.0, 1.0012 +2190.0, 1.001 +2195.0, 1.0008 +2200.0, 1.0007 +2205.0, 1.0005 +2210.0, 1.0004 +2215.0, 1.0007 +2220.0, 1.001 +2225.0, 1.0013 +2230.0, 1.0015 +2235.0, 1.0018 +2240.0, 1.0021 +2245.0, 1.0024 +2250.0, 1.0025 +2255.0, 1.0028 +2260.0, 1.0031 +2265.0, 1.0034 +2270.0, 1.0036 +2275.0, 1.0039 +2280.0, 1.0041 +2285.0, 1.0043 +2290.0, 1.0045 +2295.0, 1.0044 +2300.0, 1.0043 +2305.0, 1.0042 +2310.0, 1.0042 +2315.0, 1.0041 +2320.0, 1.004 +2325.0, 1.0039 +2330.0, 1.0038 +2335.0, 1.0037 +2340.0, 1.0037 +2345.0, 1.0036 +2350.0, 1.0035 +2355.0, 1.0034 +2360.0, 1.0033 +2365.0, 1.0031 +2370.0, 1.0027 +2375.0, 1.0024 +2380.0, 1.002 +2385.0, 1.0016 +2390.0, 1.0013 +2395.0, 1.0009 +2400.0, 1.0005 +2405.0, 1.0001 +2410.0, 0.9997 +2415.0, 0.999 +2420.0, 0.998 +2425.0, 0.9965 +2430.0, 0.9939 +2435.0, 0.9914 +2440.0, 0.9892 +2445.0, 0.9878 +2450.0, 0.9873 +2455.0, 0.9868 +2460.0, 0.9865 +2465.0, 0.9861 +2470.0, 0.9858 +2475.0, 0.9858 +2480.0, 0.9858 +2485.0, 0.9858 +2490.0, 0.9858 +2495.0, 0.9859 +2500.0, 0.986 +2505.0, 0.9861 +2510.0, 0.9861 +2515.0, 0.9854 +2520.0, 0.9848 +2525.0, 0.9828 +2530.0, 0.9811 +2535.0, 0.9793 +2540.0, 0.9771 +2545.0, 0.9747 +2550.0, 0.9724 +2555.0, 0.9701 +2560.0, 0.9678 +2565.0, 0.9655 +2570.0, 0.9633 +2575.0, 0.9611 +2580.0, 0.9603 +2585.0, 0.9597 +2590.0, 0.959 +2595.0, 0.9588 +2600.0, 0.959 +2605.0, 0.9594 +2610.0, 0.9595 +2615.0, 0.959 +2620.0, 0.9584 +2625.0, 0.9573 +2630.0, 0.9545 +2635.0, 0.9516 +2640.0, 0.9487 +2645.0, 0.9458 +2650.0, 0.943 +2655.0, 0.9402 +2660.0, 0.9374 +2665.0, 0.9347 +2670.0, 0.932 +2675.0, 0.9293 +2680.0, 0.926 +2685.0, 0.9227 +2690.0, 0.9193 +2695.0, 0.916 +2700.0, 0.9127 +2705.0, 0.9082 +2710.0, 0.9035 +2715.0, 0.8988 +2720.0, 0.8925 +2725.0, 0.8856 +2730.0, 0.8786 +2735.0, 0.8713 +2740.0, 0.8639 +2745.0, 0.8566 +2750.0, 0.8494 +2755.0, 0.8388 +2760.0, 0.8278 +2765.0, 0.8169 +2770.0, 0.8024 +2775.0, 0.7871 +2780.0, 0.7762 +2785.0, 0.7656 +2790.0, 0.7551 +2795.0, 0.7456 +2800.0, 0.736 +2805.0, 0.7187 +2810.0, 0.688 +2815.0, 0.656 +2820.0, 0.6241 +2825.0, 0.5924 +2830.0, 0.5607 +2835.0, 0.5296 +2840.0, 0.5142 +2845.0, 0.5167 +2850.0, 0.5303 +2855.0, 0.5529 +2860.0, 0.5755 +2865.0, 0.5979 +2870.0, 0.6085 +2875.0, 0.6126 +2880.0, 0.617 +2885.0, 0.6244 +2890.0, 0.6331 +2895.0, 0.6382 +2900.0, 0.6434 +2905.0, 0.6495 +2910.0, 0.6603 +2915.0, 0.6968 +2920.0, 0.7281 +2925.0, 0.746 +2930.0, 0.764 +2935.0, 0.7818 +2940.0, 0.7997 +2945.0, 0.8108 +2950.0, 0.8119 +2955.0, 0.8122 +2960.0, 0.8118 +2965.0, 0.8105 +2970.0, 0.7961 +2975.0, 0.7665 +2980.0, 0.7372 +2985.0, 0.7081 +2990.0, 0.679 +2995.0, 0.65 +3000.0, 0.621 +3005.0, 0.5933 +3010.0, 0.5921 +3015.0, 0.593 +3020.0, 0.5993 +3025.0, 0.6266 +3030.0, 0.6538 +3035.0, 0.6765 +3040.0, 0.6815 +3045.0, 0.6846 +3050.0, 0.6886 +3055.0, 0.7001 +3060.0, 0.7248 +3065.0, 0.7515 +3070.0, 0.7781 +3075.0, 0.8047 +3080.0, 0.8311 +3085.0, 0.8575 +3090.0, 0.8837 +3095.0, 0.9 +3100.0, 0.9056 +3105.0, 0.9078 +3110.0, 0.9084 +3115.0, 0.9082 +3120.0, 0.9075 +3125.0, 0.9068 +3130.0, 0.9051 +3135.0, 0.9034 +3140.0, 0.901 +3145.0, 0.898 +3150.0, 0.8949 +3155.0, 0.8917 +3160.0, 0.8884 +3165.0, 0.884 +3170.0, 0.8792 +3175.0, 0.8741 +3180.0, 0.8689 +3185.0, 0.8638 +3190.0, 0.8587 +3195.0, 0.8535 +3200.0, 0.8485 +3205.0, 0.8434 +3210.0, 0.8387 +3215.0, 0.8342 +3220.0, 0.8298 +3225.0, 0.8254 +3230.0, 0.8211 +3235.0, 0.8138 +3240.0, 0.8064 +3245.0, 0.799 +3250.0, 0.7914 +3255.0, 0.7838 +3260.0, 0.7744 +3265.0, 0.7665 +3270.0, 0.7611 +3275.0, 0.7561 +3280.0, 0.7515 +3285.0, 0.7472 +3290.0, 0.7431 +3295.0, 0.7397 +3300.0, 0.7365 +3305.0, 0.7336 +3310.0, 0.731 +3315.0, 0.7287 +3320.0, 0.7267 +3325.0, 0.7251 +3330.0, 0.7239 +3335.0, 0.7225 +3340.0, 0.7212 +3345.0, 0.72 +3350.0, 0.719 +3355.0, 0.7182 +3360.0, 0.7175 +3365.0, 0.7168 +3370.0, 0.7164 +3375.0, 0.7162 +3380.0, 0.7162 +3385.0, 0.7161 +3390.0, 0.7161 +3395.0, 0.7161 +3400.0, 0.7161 +3405.0, 0.7164 +3410.0, 0.7167 +3415.0, 0.7169 +3420.0, 0.7174 +3425.0, 0.718 +3430.0, 0.7194 +3435.0, 0.7208 +3440.0, 0.7226 +3445.0, 0.7256 +3450.0, 0.7287 +3455.0, 0.7324 +3460.0, 0.7361 +3465.0, 0.7403 +3470.0, 0.7447 +3475.0, 0.7485 +3480.0, 0.7504 +3485.0, 0.7512 +3490.0, 0.7515 +3495.0, 0.7515 +3500.0, 0.7511 +3505.0, 0.7444 +3510.0, 0.7245 +3515.0, 0.7007 +3520.0, 0.6771 +3525.0, 0.6534 +3530.0, 0.6298 +3535.0, 0.6064 +3540.0, 0.5829 +3545.0, 0.5596 +3550.0, 0.5362 +3555.0, 0.5229 +3560.0, 0.5205 +3565.0, 0.5227 +3570.0, 0.5548 +3575.0, 0.5976 +3580.0, 0.6403 +3585.0, 0.6828 +3590.0, 0.7253 +3595.0, 0.7675 +3600.0, 0.8098 +3605.0, 0.8424 +3610.0, 0.8608 +3615.0, 0.8718 +3620.0, 0.89 +3625.0, 0.9143 +3630.0, 0.9268 +3635.0, 0.9359 +3640.0, 0.9415 +3645.0, 0.9442 +3650.0, 0.9468 +3655.0, 0.9493 +3660.0, 0.9509 +3665.0, 0.9524 +3670.0, 0.9536 +3675.0, 0.9548 +3680.0, 0.9557 +3685.0, 0.9563 +3690.0, 0.9566 +3695.0, 0.9568 +3700.0, 0.9571 +3705.0, 0.9573 +3710.0, 0.9573 +3715.0, 0.957 +3720.0, 0.9568 +3725.0, 0.9565 +3730.0, 0.9561 +3735.0, 0.9555 +3740.0, 0.9547 +3745.0, 0.954 +3750.0, 0.9533 +3755.0, 0.953 +3760.0, 0.9525 +3765.0, 0.9523 +3770.0, 0.9521 +3775.0, 0.9523 +3780.0, 0.9525 +3785.0, 0.9528 +3790.0, 0.9536 +3795.0, 0.9548 +3800.0, 0.9559 +3805.0, 0.9568 +3810.0, 0.958 +3815.0, 0.9591 +3820.0, 0.9599 +3825.0, 0.9607 +3830.0, 0.9614 +3835.0, 0.962 +3840.0, 0.9628 +3845.0, 0.9632 +3850.0, 0.9634 +3855.0, 0.9635 +3860.0, 0.9637 +3865.0, 0.9638 +3870.0, 0.9637 +3875.0, 0.9636 +3880.0, 0.9635 +3885.0, 0.9634 +3890.0, 0.9632 +3895.0, 0.9628 +3900.0, 0.9623 +3905.0, 0.9616 +3910.0, 0.9609 +3915.0, 0.9602 +3920.0, 0.9595 +3925.0, 0.9587 +3930.0, 0.9575 +3935.0, 0.9566 +3940.0, 0.9555 +3945.0, 0.9544 +3950.0, 0.9533 +3955.0, 0.9521 +3960.0, 0.9517 +3965.0, 0.9518 +3970.0, 0.952 +3975.0, 0.9521 +3980.0, 0.9531 +3985.0, 0.9541 +3990.0, 0.9551 +3995.0, 0.956 +4000.0, 0.957 diff --git a/content/data_work/ir_spectra.ipynb b/content/data_work/ir_spectra.ipynb index 536727b..f74ad03 100644 --- a/content/data_work/ir_spectra.ipynb +++ b/content/data_work/ir_spectra.ipynb @@ -1,18 +1,407 @@ { "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy.stats import linregress\n", + "from scipy.optimize import curve_fit, minimize" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise: Fitting IR spectra\n", + "\n", + "Prerequisites:\n", + "\n", + "* types\n", + "* functions\n", + "* containers\n", + "* numpy \n", + "* optimisation\n", + "* io\n", + "\n", + "This is one of the *long-form* exercises in the book. \n", + "The idea behind these are to introduce a particular problem, and then allow the space to work on it. \n", + "\n", + "In this exercise, your will get an introdcution into using Python to fit experimental data, using a process called model-dependent analysis. \n", + "The specific application will be the anlaysis of an IR spectra from a mixture of organic species, however, hopefully you will recognise that the methods used herein are generalisable. \n", + "\n", + "## Aim \n", + "\n", + "You have been tasked with determining the relative composition of a mixture of two organic species; namely toluene and benyl alcohol. \n", + "YOu have recognised, that using IR spectroscopy and some data analysis, it may be possible to evaluate this. \n", + "\n", + "## Reading in and plotting experimental data\n", + "\n", + "IR spectra of the two species in isolation were available online, from the [NIST Chemistry Webbook](https://webbook.nist.gov/chemistry/).\n", + "These are available in the files `tolene.csv` and `benzyl_alcohol.csv`, these files consist of two columns the first is the wavenumber, $\\bar{\\nu}$, and the second is the transmittance ($T$). \n", + "Referring to the previous section on [reading and writing data](./io.html), in the cell below, use [`np.loadtxt()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html) to open these files and store the information in array objects. \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Write your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Having read the isolated data in, referring to the [plotting introduction](./simple_plots.html) if necessary, plot both of the isolated IR spectra on a single plot. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Write your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the isolated data read in and plotted, we now need the mixture data. \n", + "This is stored in the file named `mixture.csv`, which in addition to the two columns that the other files have, has a third column containing information about the uncertainty in the transmittance ($\\mathrm{d}T$). \n", + "Read this file in, and plot the data (and the uncertainties)." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Write your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Having plotted each of the three datasets, you should be able to identify features present in the mixture data that match those in the isolated datasets. \n", + "Such as the large feature in the toulene isolated data that can be seen in the mixture data at around 3000 cm-1, and then at higher energy there is a broad feature in the benzyl alcohol isolated data between 3250 cm-1 and 3750 cm-1, that can also be found in the experimental data.\n", + "\n", + "## Fitting\n", + "\n", + "You will hopefully have encounter data fitting before, for example when a straight line of best fit is applied to some experimental data points. \n", + "This is shown below, where the blue dots are some discrete datapoints and the orange line is the line of best fit. \n", + "In order to determine this line of best fit, we use a process called, we have a metric that we want to minimise which represents the difference between the data and the model (the straight line). " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAc7klEQVR4nO3deXhU1cHH8e9JCBDWgIAQIEZFg6IiGFFEEEEMCiqt0ooiLm2pbzdXlKh1o66xKL7WCsW1LnUBqaxhB0FEVgEFFGQN+xLWAFnO+8cdfCEQmMDMnDszv8/z8DDJTHJ/zyHz4+aec+811lpERMS/ElwHEBGRY1NRi4j4nIpaRMTnVNQiIj6nohYR8bkK4fimderUsenp6eH41iIiMWnOnDlbrLV1j/ZcWIo6PT2d2bNnh+Nbi4jEJGPMqrKe06EPERGfU1GLiPicilpExOdU1CIiPqeiFhHxORW1iIjPqahFRHwuqKI2xqw0xiw0xsw3xmiBtIhIaatmwPQBYfnW5Tnh5Upr7ZawpBARiVYF22Hc4zD3PaiVDhf/FipWDekmwnJmoohIzLMWFg2BMX1h7za47C/Qvm/ISxqCL2oLjDXGWGCgtXZQ6RcYY3oDvQHS0tJCl1BExG+2rYCRD8DyCZDaEnoOhQYXhG1zwRb15dbaPGNMPWCcMWaJtXbqoS8IlPcggMzMTN3fS0RiT3EhzHgNJr8ACRXgmhy4+DeQkBjWzQZV1NbavMDfm4wxnwOtgKnH/ioRkRiyZhYMvwc2fQdNu8I1L0LNhhHZ9HGL2hhTFUiw1u4KPL4aeDrsyURE/GDfDhj/FMx+C2qkws0fQtMuEY0QzB71qcDnxpiDr//QWjsmrKlERFyzFr7/L4x+GPZsgkvuhg6PQqXqEY9y3KK21v4ENI9AFhERf8hfDSMfhB9zof4F0OMjaNjSWRwtzxMROai4CGa+AZOeAQxkPQutfg+JbqtSRS0iRxg2L4+c3KWsyy8gNSWZPlkZdGsRmYkzZ/LmepOFGxbA2Z3h2hxI8cdSYxW1iBxm2Lw8socupKCwGIC8/AKyhy4EiM2y3r8LJj4D3wyEqvXgV+/BOdeDNy/nCypqETlMTu7Sn0v6oILCYnJyl8ZeUS8ZCaP6wM513nrojo9D5ZquUx1BRS0ih1mXX1Cuz0elHXkw+iFYMgLqNYPu70Lji12nKpOKWkQOk5qSTN5RSjk1JdlBmhArKYZZg2FCPygpgquegtZ/hMQk18mOSdejFpHD9MnKIDnp8FOik5MS6ZOV4ShRiKxfAIOv8vakG7eCP8yAy+/1fUmD9qhFpJSDx6FjZtXHgT0w+TmY8TpUqQ03vgnn3eirycLjUVGLyBG6tWgYvcV8qB/Gele527EaWt4OnZ6C5FquU5WbilpEYs+uDd6p398Pg7pN4c4xcFpr16lOmIpaRGJHSQnMedu7iFLRPujwGFx2D1SoGNbNhvsEIRW1iMSGjd97Zxau/QZObwddX4FTzgz7ZiNxgpBWfYhIdCss8PagB7aFbcvhFwOh1xcRKWk49glCoaI9ahGJXssnwoj7YPtKuPBW6NQPqp4S0QiROEFIRS0i0Wf3ZsjNhoWfwilN4PYRcHpbJ1EicYKQDn2ISPQoKYG578Frmd5F/a/oC3dPd1bSEJkThLRHLSLRYfNSGH4vrP4KTmvjTRbWPdt1qoicIKSiFhF/K9wH0/rDl/2hYlW4/jXveHSCfw4IhPsEIRW1iPjXiqneZOHWZXD+r7w7rlSr6zpVxKmoRcR/9myFsY/Btx9CrdPhts/hzA6uUzmjohYR/7AWvv0P5D4C+3dC2wegXR9IioFLrJ4EFbWI+MPW5TDiXu9wR+NLvMnCU891ncoXVNQi4lbRAZg+AKbmQIXK0PVlaHmHryYLXVNRi4g7q2Z41+fYshSa/QI6Pw/V67tO5TsqahGJvILtMO5x7+SVmmlwy6dw9tWuU/mWilpEIsdaWDQExvSFvdvgsr9A+77e+mgpk4paRCJj2wrvbivLJ0BqS+g5FBpc4DpVVFBRi0h4FRfCjNdg8guQUAGuyYGLfwMJicf/WgFU1CISTmtmeZOFm76Dpl3hmhehZgzcizHCVNQiEnr7dngX85/9FtRIhZs/hKZdXKeKWipqEQkda73Lj45+GPZsgkvuhg6PQqXqrpNFNRW1iIRG/moY+SD8mAv1L4AeH0HDlq5TxQQVtYicnOIimPkGTHoGMN4V7lr9HhJVL6GikRSRE5c315ss3LAAzu4M1+ZASprrVDFHRS0i5bd/F0x8Br4ZCFXrwa/eg3OuB2NcJ4tJKmoRKZ8lI2FUH9i5zlsP3fFxqFzTdaqYpqIWkeDsyIPRD8GSEVCvGXR/Fxpf7DpVXFBRi8ixlRTDrMEwoR+UFMFVT0HrP0JikutkcUNFLSJlW7/Au5h/3hw4syN0+TvUPt11qrgTdFEbYxKB2UCetbZr+CKJiHMH9sDk52DG61ClNtz4Jpx3oyYLHSnPHvU9wGKgRpiyiIgf/DDWu8rdjtXQ8nbo9BQk13KdKq4Fda8bY0wjoAswOLxxRMSZXRvg0zvgw+7ezWTvHA3Xv6qS9oFg96hfAR4Cyjxh3xjTG+gNkJamBe8iUaOkBOa87V1EqWgfXPkYtLkHKlR0nUwCjlvUxpiuwCZr7RxjTPuyXmetHQQMAsjMzLQhSygi4bPxe2+ycM1MOL0ddHkZ6jRxnUpKCWaPug1wvTHmWqAyUMMY8761tmd4o4lI2BQWwJQX4atXoVIN6PYGNL9Zk4U+ddyittZmA9kAgT3qB1XSIlFs+UQYcR9sXwkX3gqd+kHVU1ynkmPQOmqReLF7M+Q+Ags/gdpnwu3DvcMd4nvlKmpr7WRgcliSiEh4WAvz/g1j/+qtj77iYbj8fkiq7DqZBEl71CKxbPMP3mThqumQdhlc9wrUzXCdSspJRS0Siwr3wbT+8GV/qFgVrv9fuLAnJAR16oT4jIpaJNasmOpNFm5dBuf/yrvjSrW6rlPJSVBRi8SKvdtg7GMw/wOolQ49h0KTjq5TSQioqEWinbXw7X9g7KOwb4c3UXjFQ95p4BITVNQi0Wzrcu8wx4op0KiVN1l4ajPXqSTEVNQi0ajoAEwfAFNzoEJl6NIfLrpTk4UxSkUtEm1WzfDu/L1lKTT7BXR+HqrXd51KwkhFLRItCrbDuCdg7rtQMw1u+RTOvtp1KokAFbWI31kLi4bAmL7eyo7L/gzts7310RIXVNQifrZ9JYy4H5ZPgNSW3pK7Bhe4TiURpqIW8aPiQpjxGkx+ARIS4ZoX4eLfeo8l7qioRfxmzSxvsnDTd9C0q1fSNRu6TiUOqahF/GLfDpjwNMx6E2qkws0fQtMurlOJD6ioRVyzFr7/L4x+GPZsgkvuhg6PQqUyb1EqcUZFLeJS/hoY9SD8MAbqXwA9PoKGLV2nEp9RUYu4UFwEM9+ASc8CFq5+xtuTTtRbUo6knwqRSFs3z5ssXP8tnJUFXV6ClDTXqcTHVNQikbJ/F0x8Br4ZCFXrQfd34dwbdOdvOS4VtUgkLBkJo/rAznVw8W+g4+NQuabrVBIlVNQi4bRznVfQS0ZAvWbQ/R1o3Mp1KokyKmqRcCgphlmDYUI/KCmCq56E1n+CxCTXySQKqahFQm39Au/O33lz4MwO3rWia5/uOpVEMRW1SKgc2AOTn4MZr0OV2nDjm3DejZoslJOmohYJhR/HeVe527EaWt7uHeqoUtt1KokRKmqRk7Fro3ed6O+GQp0MuHM0nHaZ61QSY1TUIieipATmvgPjnoSifXDlo9DmHqhQyXUyiUEqapHy2vi9N1m4Ziakt4Wur0CdJq5TSQxTUYsEq7DAu+v39AFQqQZ0+yc076HJQgk7FbVIMJZPghH3wfYV0PwWuPpvUPUU16kkTqioRY5l92YY+ygs+Bhqnwm3D4fT27lOJXFGRS1yNNbCvPdh3F9h/25o9xC0fQCSKrtOJnFIRS1S2uYfvMnCVdMh7TK47hWom+E6lcQxFbXIQYX7YNrLMK0/JCXDda9Ci9sgIcF1MolzKmoRgBVfenvRW5fB+d0h61moVs91KhFARS3xbu82GPtXmP8+1EqHnkOhSUfXqUQOo6KW+GStt5Ij9xHYtwMuv8+bMKxYxXUykSOoqCX+bF3urYleMQUatfImC09t5jqVSJmOW9TGmMrAVKBS4PWfWWufCHcwkZArOgBfDYApOd41Obr8HS66S5OF4nvB7FHvBzpYa3cbY5KAacaY0dbar8OcTSR0Vs3wJgs3L4Fzu8E1L0D1+q5TiQTluEVtrbXA7sCHSYE/NpyhREKmYDuMfxLmvAM1G8Mtn8DZWa5TiZRLUMeojTGJwBygCfAPa+3MsKYSOVnWwqIhMCYb9m717ld45SNQsarrZCLlFlRRW2uLgQuNMSnA58aY86y1iw59jTGmN9AbIC0tLeRBRYK2fSWMfACWjYfUFtDzM2jQ3HUqkRNWrlUf1tp8Y8wkoDOwqNRzg4BBAJmZmTo0IpFXXAgz/gGTn4eEROj8ArT6nfdYJIoFs+qjLlAYKOlkoBPwQtiTiZTH2tkw/B7YuAiadoVrXoSaDV2nEgmJYPaoGwDvBo5TJwCfWGtHhDeWSJD27YAJ/WDWYKjeAH79AZzT1XUqkZAKZtXHAqBFBLKIBM9aWPwFjH4Ydm2AS34PHR6DStVdJxMJOZ2ZKNEnfw2M6gM/jIb658PNH0DDi1ynEgkbFbVEj+Ii+GYgTHwGsN7tsC75H0jUj7HENv2ES3RYN8+bLFz/LZyVBV1eghQtA5X4oKIWf9u/CyY9CzPfgKp1ofs73inguvO3xBEVtfjXklHeseideZB5F1z1BFSu6TqVSMSpqMV/dq6D0Q/B4uFQ71zo/jY0buU6lYgzKmrxj5JimPUmTHgaSgqh4xNw2Z8hMemkv/WweXnk5C5lXX4BqSnJ9MnKoFsLnRAj0UFFLf6wYaE3WZg3B864Err2h9pnhORbD5uXR/bQhRQUFgOQl19A9tCFACpriQq6Yrq4dWCPd8/CgVfA9lXwy8Fw2+chK2mAnNylP5f0QQWFxeTkLg3ZNkTCSXvU4s6P42Dk/ZC/Glr2gquegiq1Q76ZdfkF5fq8iN+oqCXydm2EMX3hu6FQ52y4YxSktwnb5lJTksk7SimnpiSHbZsioaRDHxI5JSUw+y147WJYMgKufBTunhbWkgbok5VBctLhlzpNTkqkT1ZGWLcrEirao5bI2Pi9d8/CNTMhvS10fQXqNInIpg9OGGrVh0QrFbWEV2EBTM2B6QOgUg3o9k9o3iPiZxZ2a9FQxSxRS0Ut4bN8Eoy4D7avgOa3eBdRqnqK61QiUUdFLaG3ezOMfRQWfAy1z4ReX8AZV7hOJRK1VNQSOtbCvPdh3F9h/25o9xC0fQCSKrtOJhLVVNQSGpt/8CYLV02HtNbeZGG9pq5TicQEFbWcnMJ9MO1lmNYfkpLhulehxW2QoJWfIqGiopYTt+JLby966zI4vztkPQvV6rlOJRJzVNRSfnu3edfnmP8+pJwGPYdAk6tcpxKJWSpqCZ613kqO3Edg3w64/D5vwrBiFdfJRGKailqCs3W5tyZ6xRRodDFcNwBObeY6lUhcUFHLsRUdgK8GwJQcqFAJuvwdLrpLk4UiEaSilrKtmuFNFm5e4t1QtvPzUKOB61QicUdFLUcq2A7jn4Q570DNxtDjY8jo7DqVSNxSUcv/sxYWDYEx2bB3C7T+E7TPhkrVXCcTiWsqavFsXwkjH4Bl4yG1BfT8DBo0d51KRFBRS3EhzPgHTH4eEhKh8wvQ6nfeYxHxBRV1PFs727vz98ZFkNEFrn0RajZynUpESlFRR6lh8/JO/I4l+3bAhH4wazBUbwC//gDO6RrewCJywlTUUWjYvDyyhy6koLAYgLz8ArKHLgQ4dllbC4u/gNEPw64N0Ko3dHgMKteIRGwROUE6ayEK5eQu/bmkDyooLCYnd2nZX5S/Bj7qAZ/0gip14LcTvEMdKmkR39MedRRal18Q/OeLi+CbgTDxGcBCp35w6R8gUf/0ItFC79YolJqSTN5RSjk1JfnwT6yb500Wrv8WmnTyTv+udVqEUopIqOjQRxTqk5VBctLhy+eSkxLpk5XhfbB/l3fSyr86eMeib3obbv1UJS0SpbRHHYUOThgeddXHklEwqg/sXAuZd0HHJyA5xXFiETkZKuoo1a1Fw8NXeOxcBx/3hMXDoe45cNdYSLvEXUARCRkVdbQrKYZZb8KEp6GkEDo+Dq3/DBUquk4mIiFy3KI2xjQG3gNOBSwwyFo7INzBJAgbFnqThXlz4IwroWt/qH2G61QiEmLB7FEXAQ9Ya+caY6oDc4wx46y134c5m5TlwB7v2hwz/gHJteCX//JuLmuM62QiEgbHLWpr7XpgfeDxLmPMYqAhoKJ24cdxMPJ+yF8NLW6DTk9DldquU4lIGJXrGLUxJh1oAcw8ynO9gd4AaWlpIYgmh9m1Ecb0he+GQp2z4Y5RkN7GdSoRiYCgi9oYUw0YAtxrrd1Z+nlr7SBgEEBmZqYNWcJ4V1ICc9+F8U9AYQG0fwQuv9e7f6GIxIWgitoYk4RX0h9Ya4eGN5L8bNNiGH4vrPka0ttC15ehzlmuU4lIhAWz6sMAbwKLrbX9wx9JKCyAqTkwfQBUqg43vA4X3qLJQpE4FcwedRvgNmChMWZ+4HOPWGtHhS9WHFs+yZss3PYTNO8BV/8NqtZxnUpEHApm1cc0QLty4bZnC+Q+Ags+9tZC9/ovnNHedSoR8QGdmeiatTD/Axj7GOzfDe36QNsHIamy62Qi4hMqape2/OhNFq6aBo0vhesGQL2mrlOJiM+oqF0o2g9f9odp/SEp2SvoFr0gQVedFZEjqagjbeU0by96649w3k3Q+TmoVs91KhHxMRV1pOzdBmP/CvPfh5TT4NYhcNZVrlOJSBRQUYebtbDgE8jNhoJ8aHMvXPEwVKziOpmIRAkVdThtXe6tif5pMjTMhF4DoP55rlOJSJRRUYdD0QH4agBMyfGuyXHtS95tsRISj/+1IiKlqKhDbfXX3mTh5sVw7g3Q+QWo0cB1KhGJYirqUCnYDuOfhDnvQM3G0ONjyOjsOpWIxAAV9cmy1rtG9Oi+sHcLtP4TtM+GStVcJxORGKGiPhnbV8LIB2DZeGhwIdz6KaRe6DqViMQYFfWJKC707lc4+XlvgrDz89CqtyYLRSQsVNTltXYODP8LbFwEGdfCtTlQs5HrVCISw1TUwdq3Eyb2g2/+BdUbwK/fh3Ouc51KROKAivp4rIXFw2H0Q7Brg3eIo8NjULmG62QiEidU1MeyYy2M6gNLR8Gp58OvP4BGF7lOJSJxRkV9NCXFMHMgTPwbYKFTP7j0D5Co4RKRyFPzlLZuPgy/B9bPhyadoMvfodZprlOJSBxTUR+0fzdMehZm/hOq1oWb3oZmv9Cdv0XEORU1wNLRMPJB2LnWu3hSxycgOcV1KhERIN6Leud6bzXH4i+g7jlw11hIu8R1KhGRw8RnUZcUw+y3YPxTUFIIHR+H1n+GChVdJxMROUL8FfWGRd5kYd5sOKM9dOkPp5zpOpWISJnip6gP7IUpz8NXr0FyLfjlv+D87posFBHfi4+i/nE8jLwP8ldDi57euugqtV2nEhEJSmwX9a6N3k1lFw2BU86CO0ZC+uWuU4mIlEtsFnVJCcx9F8Y/AYUF3oX8L7/Pu3+hiEiUib2i3rTYu2fhmq8hvS10fRnqnOU6lYjICYudoi4sgKkvwfQB3m2wbngdLrxFk4UiEvVio6h/mgwj7oNtP8EFN0PWM1C1jutUIiIhEd1FvWcL5D4KC/4Dtc+AXv/11kaLiMSQ6Cxqa2H+BzD2Me9iSm0fhHYPQlKy62QiIiEXfUW95UfvMMfKL6HxpXDdK1DvHNepRETCJnqKumg/THsFvnzJ23O+bgC06AUJCa6TiYiEVXQU9crpMOJe2PIDnHcjZD0H1U91nUpEJCL8XdR7t8G4x2HevyHlNLh1CJx1letUIiIR5c+ithYWfgpjsqFgO7S5B67oCxWruE4mIhJx/ivqbT/BiPvhp0nQMNNbclf/PNepREScOW5RG2PeAroCm6y14WvM4kL46lWY8iIkVoRrX/Jui5WQGLZNiohEg2CWTLwDdA5zDm9Vx6y34Kyr4Y/fQKvfqaRFRAhij9paO9UYkx72JJWqwe+n6NRvEZFSQrYI2RjT2xgz2xgze/PmzSf2TVTSIiJHCFlRW2sHWWszrbWZdevWDdW3FRGJe75Z9TFsXh45uUtZl19AakoyfbIy6NaioetYIiLO+aKoh83LI3voQgoKiwHIyy8ge+hCAJW1iMS94x76MMZ8BMwAMowxa40xvwl1iJzcpT+X9EEFhcXk5C4N9aZERKJOMKs+eoQ7xLr8gnJ9XkQknvji0nOpKUe/jnRZnxcRiSe+KOo+WRkkJx1+cktyUiJ9sjIcJRIR8Q9fTCYenDDUqg8RkSP5oqjBK2sVs4jIkXxx6ENERMqmohYR8TkVtYiIz6moRUR8TkUtIuJzxlob+m9qzGZg1Ql+eR1gSwjjhIpylY9ylY9ylU8s5jrNWnvUS4+GpahPhjFmtrU203WO0pSrfJSrfJSrfOItlw59iIj4nIpaRMTn/FjUg1wHKINylY9ylY9ylU9c5fLdMWoRETmcH/eoRUTkECpqERGfc1LUxpi3jDGbjDGLynjeGGNeNcYsM8YsMMa09Emu9saYHcaY+YE/j0coV2NjzCRjzPfGmO+MMfcc5TURH7Mgc0V8zIwxlY0x3xhjvg3keuoor6lkjPk4MF4zjTHpPsl1hzFm8yHj9dtw5zpk24nGmHnGmBFHeS7i4xVkLifjZYxZaYxZGNjm7KM8H9r3o7U24n+AdkBLYFEZz18LjAYMcCkw0ye52gMjHIxXA6Bl4HF14AfgXNdjFmSuiI9ZYAyqBR4nATOBS0u95g/AG4HHNwMf+yTXHcBrkf4ZC2z7fuDDo/17uRivIHM5GS9gJVDnGM+H9P3oZI/aWjsV2HaMl9wAvGc9XwMpxpgGPsjlhLV2vbV2buDxLmAxUPri3REfsyBzRVxgDHYHPkwK/Ck9a34D8G7g8WdAR2OM8UEuJ4wxjYAuwOAyXhLx8Qoyl1+F9P3o12PUDYE1h3y8Fh8UQEDrwK+uo40xzSK98cCvnC3w9sYO5XTMjpELHIxZ4Nfl+cAmYJy1tszxstYWATuAU3yQC+DGwK/LnxljGoc7U8ArwENASRnPOxmvIHKBm/GywFhjzBxjTO+jPB/S96Nfi9qv5uKdj98c+F9gWCQ3boypBgwB7rXW7ozkto/lOLmcjJm1tthaeyHQCGhljDkvEts9niByDQfSrbUXAOP4/73YsDHGdAU2WWvnhHtb5RFkroiPV8Dl1tqWwDXAH40x7cK5Mb8WdR5w6P+MjQKfc8pau/Pgr67W2lFAkjGmTiS2bYxJwivDD6y1Q4/yEidjdrxcLscssM18YBLQudRTP4+XMaYCUBPY6jqXtXartXZ/4MPBwEURiNMGuN4YsxL4D9DBGPN+qde4GK/j5nI0Xlhr8wJ/bwI+B1qVeklI349+LeovgF6BmdNLgR3W2vWuQxlj6h88LmeMaYU3fmF/cwe2+Saw2Frbv4yXRXzMgsnlYsyMMXWNMSmBx8lAJ2BJqZd9AdweeHwTMNEGZoFc5ip1HPN6vOP+YWWtzbbWNrLWpuNNFE601vYs9bKIj1cwuVyMlzGmqjGm+sHHwNVA6ZViIX0/Orm5rTHmI7zVAHWMMWuBJ/AmVrDWvgGMwps1XQbsBe70Sa6bgP8xxhQBBcDN4f5hDWgD3AYsDBzfBHgESDskm4sxCyaXizFrALxrjEnE+4/hE2vtCGPM08Bsa+0XeP/B/NsYswxvAvnmMGcKNtdfjDHXA0WBXHdEINdR+WC8gsnlYrxOBT4P7H9UAD601o4xxtwN4Xk/6hRyERGf8+uhDxERCVBRi4j4nIpaRMTnVNQiIj6nohYR8TkVtYiIz6moRUR87v8Ayn64SnRRkNEAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x = np.array([1, 2, 3, 4, 5])\n", + "y = np.array([0.9, 2.2, 2.7, 4.8, 4.6])\n", + "\n", + "plt.plot(x, y, 'o')\n", + "# This function performs a linear regression\n", + "# on the data x and y\n", + "res = linregress(x, y)\n", + "model = res.slope * x + res.intercept\n", + "plt.plot(x, model, '-')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This minimisation can be achieved for a straight line model through, linear regression, a mathematical operation which minimises the squared-residuals for each point. \n", + "The residuals are the difference between the model (the straight line) and the data. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sq_resid = np.square(y - model)\n", + "plt.plot(x, sq_resid, 'o')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to describe this with a single value to minimise, we typically talk about minimising the **sum** of the square-residuals, which is sometimes referred to as $\\chi^2$. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "chi^2 = 0.932\n" + ] + } + ], + "source": [ + "print('chi^2 = {:0.3f}'.format(np.sum(sq_resid)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> The reason that a square is taken of the residuals, rather than just the absolute value is to put a greater emphasis on outlying datapoints, such as the 4th point in the example above. \n", + "\n", + "The closer the $\\chi^2$ value is to 0, the better the agreement between the model and the data. \n", + "\n", + "Define a function, to calculate the $\\chi^2$ between a IR spectra of an isolated compound and the mixture data, you won't be able to use it yet." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Write your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Interpolation\n", + "\n", + "In the plots you have produced earlier, you might be able to notice that the vales for wavenumber that are measured in each spectra are not the sam. \n", + "This can be seen clearly if we print the minimum and maximum values for each spectra. \n", + "These can be accessed using the [`np.amin()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.amin.html#numpy.amin) and [`np.amax()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.amax.html#numpy.amax) functions." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Write your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to determine the $\\chi^2$-value between our model (outlined later) and the data (the mixture), it is necessary that the positions on the $x$-axis for the two are the same. \n", + "Additionaly, since our model will be created form mixing the toulene and benzyl alcohol spectra, we will need to normalised these $x$-axes. \n", + "This technique of this is referred to as **interpolation**.\n", + "\n", + "Interpolation is where we determine new data points within the range of a discrete set of known points. \n", + "Essentially we use what we know about the $x$- and $y$-data and have an educated guess at the $y$-values for a different set of $x$-values. It is important that the new range of $x$ values is from within the exisiting range, or else we are [extrapolating](https://xkcd.com/605/), which can be very inaccurate. \n", + "For the data in this exercise, the range of the mixture data lies within the other two datasets, therefore we will use the wavenumber values from the mixture and interpolate new values for the isolated materials. \n", + "\n", + "To interpolate new $y$-values, we will use the [`np.interp()` function](https://docs.scipy.org/doc/numpy/reference/generated/numpy.interp.html). \n", + "This function takes three arguments, the new $x$-axis, the old $x$-axis, and the old $y$-axis values, and it will return a new set of $y$-axis values.\n", + "\n", + "In the cell below, interpolate new sets of $y$-values for the two isolated datasets, for the $x$-axis values from the mixture dataset. \n", + "Then calculate the $\\chi^2$-value for each pure isolated IR spectra with the mixture data. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Write your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, plot your interpolated data alongside the original data to ensure that the interpolation has been accurate. " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Write your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fitting real data\n", + "\n", + "In the example shown previously, we were not working with \"real\" data, as there was no uncertainty on the measurement. \n", + "However, if we compare the slope of the straight line from the previous example to that where some uncertainty is present, there is a small, but important change. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x = np.array([1, 2, 3, 4, 5])\n", + "y = np.array([0.9, 2.2, 2.7, 4.8, 4.6])\n", + "dy = np.array([0.1, 0.3, 0.3, 0.5, 0.5])\n", + "\n", + "def straight_line(x, m, c):\n", + " return m * x + c\n", + "\n", + "plt.errorbar(x, y, dy, marker='o', ls='')\n", + "# This function performs fits a straight\n", + "# line, including uncertainties\n", + "popt, pcov = curve_fit(straight_line, x, y, sigma=dy)\n", + "model = popt[0] * x + popt[1]\n", + "plt.plot(x, model, '-')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Without uncertainties the gradient is 1.000\n", + "With uncertainties the gradient is 1.026\n" + ] + } + ], + "source": [ + "print('Without uncertainties the gradient is {:.3f}'.format(res.slope))\n", + "print('With uncertainties the gradient is {:.3f}'.format(popt[0]))" + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# Exercise: Fitting IR spectra" + "In order to consider the uncertainty, there is a slight modification to the $\\chi^2$-calculation, where the square residual is divided by the uncertainty,\n", + "\n", + "$$ \\chi^2 = \\sum_{i=1}^{N}\\bigg[\\frac{y_{\\mathrm{model}, i} - y_{\\mathrm{exp}, i}}{\\mathrm{d}y_{\\mathrm{exp}, i}}\\bigg]^2, $$\n", + "\n", + "where $y_{\\mathrm{model}, i}$ is the model value at $i$, $y_{\\mathrm{exp}, i}$ is the experimental value at $i$, $\\mathrm{d}y_{\\mathrm{exp}, i}$ is the uncertainty at $i$, and $N$ is the number of points in the dataset. \n", + "\n", + "In the cell below, define a new function to calculate the $\\chi^2$ value for **real** data." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Write your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Our model\n", + "\n", + "Now that all three datasets are on the same axis and we undestand how uncertainties should be included in a data fitting process, it is necessary to define our model. \n", + "We know that the mixture data contains only toluene and benzyl alcohol, therefore, we can *simulate* the expected IR transmission of a mixture of these through a simple linear combination. \n", + "\n", + "$$ T_{\\mathrm{mix}} = cT_{\\mathrm{toluene}} + (1 - c) T_{\\mathrm{benzyl alcohol}}, $$\n", + "\n", + "where $c$ is the fractional composition of toluene, and hence $1-c$ is the fractional composition of benzyl alcohol. \n", + "\n", + "Write a function that evaluates the mixture equation above in the cell below, and test it by plotting the spectra that would result from a 10:90 mixture along with the measured mixture spectra. " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Write your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A 10:90 mixture of the components doesn't do a very good job of modelling the observed mixture data, therefore we need to optimise this, by minimising the $\\chi^2$-value. \n", + "Using what you learned in the [Optimisation](./optimisation.html) section, in the cell below, use `scipy.optimize.minimize` to obtain the optimum value for $c$. \n", + "In order to achieve this, you will have to re-write your $\\chi^2$ function such that $c$ is an input argument. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Write your code here" + ] } ], "metadata": { @@ -31,7 +420,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.6" } }, "nbformat": 4, diff --git a/content/data_work/mixture.csv b/content/data_work/mixture.csv new file mode 100644 index 0000000..d7a4a1e --- /dev/null +++ b/content/data_work/mixture.csv @@ -0,0 +1,1992 @@ +# mixture +# wavenumber (cm-1), transmittance, uncertainty in transmittance +686.1580790395197,0.4858714791994159,0.02215247260798794 +687.7738869434718,0.4061363979477996,0.02011942401592067 +689.3896948474237,0.3158172179371858,0.01768463375597636 +691.0055027513757,0.2428784486845228,0.015263074025598778 +692.6213106553276,0.1789164804394636,0.013016204606359494 +694.2371185592797,0.11110831528909701,0.010244754709473768 +695.8529264632316,0.09531815463172699,0.00956020345526106 +697.4687343671836,0.11133716613885165,0.010409563181223576 +699.0845422711355,0.1640773875394722,0.012833347415764078 +700.7003501750876,0.23163431459990597,0.015079675588536033 +702.3161580790395,0.29492038694384476,0.017216930869566986 +703.9319659829915,0.361953766644997,0.019116660271063794 +705.5477738869434,0.438872909819961,0.020547770352107964 +707.1635817908955,0.45506955429604756,0.021296277179338345 +708.7793896948474,0.5023764755261596,0.022002548375971827 +710.3951975987994,0.5014376591931842,0.022562489467561876 +712.0110055027513,0.5207534602200092,0.02273447322306849 +713.6268134067034,0.519428267887553,0.022889817528868615 +715.2426213106553,0.5069032232961607,0.02266687823229721 +716.8584292146073,0.4919603951044608,0.021785086192054805 +718.4742371185592,0.4467461892795908,0.020866015199751193 +720.0900450225113,0.402054837006627,0.019890338076074397 +721.7058529264632,0.35791079473953324,0.01860810076003028 +723.3216608304152,0.2922082302405507,0.017161451842236747 +724.9374687343671,0.23740495793013422,0.015418578342396287 +726.5532766383192,0.18987897252847466,0.013619433504511693 +728.1690845422711,0.13655966731410046,0.011549719447777357 +729.7848924462231,0.08111928142004257,0.009011364574000659 +731.400700350175,0.05486416229922022,0.007274132769006883 +733.0165082541271,0.053509202016569286,0.007133648398066697 +734.632316158079,0.05093606529589342,0.006981820911216502 +736.248124062031,0.05649350485203678,0.007320547273822295 +737.8639319659829,0.06257933596336746,0.007777730454469606 +739.479739869935,0.06869888005199773,0.008208366331639697 +741.0955477738869,0.09919602051038519,0.00988674513472226 +742.7113556778389,0.12854022841745674,0.011458658092126291 +744.327163581791,0.1663984483672347,0.012811091956542665 +745.9429714857429,0.2172038995644506,0.014665140471442253 +747.5587793896948,0.2866748574928289,0.01670007845764127 +749.1745872936468,0.35499315933588793,0.01854568090956055 +750.7903951975989,0.4110527044599738,0.020222286571111085 +752.4062031015508,0.48709872839516105,0.021752310565507353 +754.0220110055027,0.5482370269811083,0.02318139628735162 +755.6378189094547,0.5871850370390255,0.02438764660696345 +757.2536268134068,0.66093593899685,0.025241474101632768 +758.8694347173587,0.6783247710147206,0.025955700073960683 +760.4852426213106,0.7014405171583543,0.026572454117693288 +762.1010505252626,0.7201280038065805,0.02699671856543539 +763.7168584292147,0.7571095987905866,0.027414260681706555 +765.3326663331666,0.7907536527342183,0.027778923086498514 +766.9484742371186,0.7873038063427268,0.02796735622124199 +768.5642821410705,0.8199711252132095,0.028154528122552726 +770.1800900450226,0.8079205521419754,0.028332486601725184 +771.7958979489745,0.8228716431028982,0.02844600425378876 +773.4117058529265,0.8143036727681956,0.028558953250683337 +775.0275137568784,0.8306533495768104,0.028637770179191804 +776.6433216608305,0.8194009018319675,0.02867560527077441 +778.2591295647824,0.8258129790125939,0.028713360832786194 +779.8749374687344,0.7987045585138862,0.028751037480413556 +781.4907453726863,0.8169172075988839,0.02873573622081471 +783.1065532766384,0.8344337093180024,0.028659264407839495 +784.7223611805903,0.8151252575779759,0.028566759761283936 +786.3381690845423,0.8054111010790683,0.028455310054648873 +787.9539769884942,0.8070741954623744,0.02833952715664954 +789.5697848924463,0.8023485244881434,0.028223251555368183 +791.1855927963982,0.8169753712454066,0.028185218687468292 +792.8014007003502,0.8169761047968493,0.02820471619383693 +794.4172086043021,0.8029924780928207,0.02822331794369622 +796.0330165082541,0.8172742518817453,0.028292378972636374 +797.6488244122061,0.785270552810237,0.028389686967858443 +799.2646323161581,0.8143587335310953,0.02846597925013994 +800.88044022011,0.7795923491690424,0.0285153644221734 +802.496248124062,0.7985704349449904,0.028574483067332315 +804.112056028014,0.8288169905826067,0.02863347950471551 +805.727863931966,0.8175830531694221,0.02869183612091622 +807.3436718359179,0.8020985962608705,0.02874759344255139 +808.95947973987,0.828545759129623,0.028790640919699864 +810.5752876438219,0.8246364851855187,0.028837408268451492 +812.1910955477739,0.853044458884633,0.028890936304389537 +813.8069034517258,0.8586440692587753,0.028944336384839956 +815.4227113556778,0.8690470238881168,0.029006415149216445 +817.0385192596298,0.8527270372819877,0.029092306413340548 +818.6543271635818,0.8368898774964544,0.029177771946756057 +820.2701350675338,0.854689114028536,0.02925246563435333 +821.8859429714857,0.8883781081000528,0.029275062162637457 +823.5017508754377,0.8531462774864762,0.02929763852996096 +825.1175587793897,0.8294101731112826,0.029313530560720173 +826.7333666833417,0.8563625562940621,0.029308439385863264 +828.3491745872936,0.8171888480240239,0.029303346205549554 +829.9649824912456,0.8251235031196944,0.029298251017074527 +831.5807903951976,0.8295695926583343,0.029292424839817574 +833.1965982991496,0.886198855848423,0.02927934109366247 +834.8124062031015,0.8371287146101262,0.02925816442223004 +836.4282141070535,0.8454723032546542,0.029279392435364572 +838.0440220110055,0.8572041829627086,0.029306051703341104 +839.6598299149575,0.8867120417040221,0.029332561204003252 +841.2756378189094,0.8456048418937413,0.029365467026608718 +842.8914457228614,0.8643708424076967,0.02940884819490328 +844.5072536268134,0.8728256788249427,0.029452098940982142 +846.1230615307654,0.8691560600971765,0.029459020908805738 +847.7388694347173,0.8687425074869477,0.029450036313582947 +849.3546773386693,0.8525972956066266,0.029442087420780305 +850.9704852426213,0.8755923347922603,0.029459532483317494 +852.5862931465733,0.8568026732202884,0.02947560671499317 +854.2021010505252,0.8836446418973825,0.029491630230779862 +855.8179089544772,0.8723411563005714,0.02950239304366778 +857.4337168584292,0.8547564825005874,0.029508014687614725 +859.0495247623812,0.8758104884485823,0.029503741410236227 +860.6653326663331,0.8493078078221588,0.029496349087997472 +862.2811405702852,0.8574346578097188,0.029487631609835325 +863.8969484742371,0.885222231405867,0.029478888598639074 +865.5127563781891,0.871200464280065,0.02946777441495175 +867.128564282141,0.8549641676342439,0.029442805773954552 +868.7443721860931,0.8577771077854598,0.029411953648786404 +870.360180090045,0.8642489726670011,0.02937874975162653 +871.975987993997,0.8359760355050617,0.029337416568347367 +873.5917958979489,0.8689279270485462,0.0292960147357547 +875.207603801901,0.8498438998654578,0.029254219699471007 +876.8234117058529,0.860324005409748,0.02919542360213681 +878.4392196098049,0.8346251800220792,0.029136437626796737 +880.0550275137568,0.8722058497561685,0.029076131113578468 +881.6708354177089,0.8241571381421373,0.02898347425686363 +883.2866433216608,0.8296587259705449,0.028886498480919027 +884.9024512256128,0.8429792235961748,0.02876931217814288 +886.5182591295647,0.819699215279183,0.0286017144069788 +888.1340670335168,0.8155365607420313,0.02842970745088501 +889.7498749374687,0.7972684180413842,0.028256447416690336 +891.3656828414207,0.7770952098915752,0.028018092249582956 +892.9814907453726,0.7607168513080766,0.027700859690000267 +894.5972986493247,0.7365430218938375,0.027376101398046845 +896.2131065532766,0.7445762473423793,0.02704645525715195 +897.8289144572286,0.7328747544968953,0.026712360228026807 +899.4447223611805,0.7096854879704383,0.02637395719316065 +901.0605302651326,0.6825941238797981,0.026393012522220777 +902.6763381690846,0.6993548087657009,0.02658098107486119 +904.2921460730365,0.7239061729321673,0.02676759787235357 +905.9079539769884,0.7253130823244125,0.027048136228172592 +907.5237618809405,0.7520039503656277,0.027398815602597933 +909.1395697848925,0.7843528527569652,0.027719560083056892 +910.7553776888444,0.7880861480133498,0.027954826827085513 +912.3711855927963,0.8035310752831178,0.02812326003112063 +913.9869934967484,0.7730708319707977,0.028290543365070402 +915.6028014007004,0.8239068500285376,0.02841616550334858 +917.2186093046523,0.8364517578069547,0.02846722261117299 +918.8344172086042,0.7951298228709635,0.02850351841007393 +920.4502251125563,0.8309695956058307,0.02853588201824169 +922.0660330165083,0.8195225571980697,0.028558174876428595 +923.6818409204602,0.8154766862367091,0.02858044934580312 +925.2976488244121,0.8080460781575376,0.028591219404928654 +926.9134567283642,0.8083339176113085,0.028541098419912144 +928.5292646323162,0.8238887452960953,0.028490884987838198 +930.1450725362681,0.8218737074048598,0.0284386269271576 +931.76088044022,0.7767500770837368,0.02836642731381625 +933.3766883441721,0.8059727738785786,0.02829401826235077 +934.9924962481241,0.8027443553057675,0.028231831347663456 +936.608304152076,0.7906054879168034,0.02813753566875962 +938.2241120560279,0.7908943595720519,0.028042596725567286 +939.83991995998,0.8001585323270785,0.027947163509909417 +941.455727863932,0.7733259269648113,0.027803220663093355 +943.0715357678839,0.7535951340614996,0.027645240760005144 +944.6873436718358,0.7626870508072127,0.027481653587419635 +946.3031515757879,0.7618963582960931,0.027285869705001693 +947.9189594797399,0.7369593225735972,0.027080648807012657 +949.5347673836918,0.7231714650765761,0.026873260665783657 +951.1505752876437,0.6965167737813913,0.026609557083222136 +952.7663831915958,0.6803895559850817,0.02632189962813472 +954.3821910955478,0.6890606175750512,0.026029476247911694 +955.9979989994997,0.6654394300743695,0.025725642214320287 +957.6138069034516,0.6857835573703644,0.025412245542290487 +959.2296148074037,0.6221165338120774,0.025091635419571552 +960.8454227113557,0.6095758231797901,0.024854731503585994 +962.4612306153076,0.6119810535268028,0.024701789036687554 +964.0770385192596,0.6185577358993488,0.024547529430434034 +965.6928464232117,0.6045307335422907,0.024432472422213525 +967.3086543271636,0.5907586078230599,0.02437092355550865 +968.9244622311155,0.6213689756972839,0.024317747021017154 +970.5402701350675,0.6007149740819423,0.024264736177226638 +972.1560780390196,0.605671011382345,0.024211888588265708 +973.7718859429715,0.6024990173717274,0.024158876423213422 +975.3876938469234,0.587673503659343,0.024091034148328673 +977.0035017508754,0.603048941413927,0.023973078631373775 +978.6193096548275,0.5762710404692569,0.023853309790875764 +980.2351175587794,0.5921439891405667,0.023724595219391943 +981.8509254627313,0.5793536445398996,0.023546963509800723 +983.4667333666833,0.555344420454143,0.023367278613570734 +985.0825412706354,0.5319960597412383,0.023185238207293585 +986.6983491745873,0.5337412190953722,0.02284527589799796 +988.3141570785392,0.5218946856863433,0.02249617437766963 +989.9299649824912,0.5085993741869405,0.022137173625300773 +991.5457728864433,0.48018979359808434,0.021717116408242358 +993.1615807903952,0.4863840443014121,0.02127484844748597 +994.7773886943471,0.4577928548528336,0.020805899976908578 +996.3931965982991,0.44486142815745666,0.020281917535102674 +998.0090045022512,0.4279486267299417,0.019726357806503465 +999.6248124062031,0.4042397003570107,0.01914031782625769 +1001.240620310155,0.39418539342816056,0.018587794939065178 +1002.856428214107,0.37691184819320545,0.01802714512120287 +1004.4722361180591,0.3661411726059091,0.017428459099193314 +1006.088044022011,0.36146567552812187,0.01708063913745704 +1007.7038519259629,0.34135235981943585,0.016864029059874126 +1009.3196598299149,0.3326850382979599,0.016641211994732515 +1010.935467733867,0.3470156616302197,0.016548784607846416 +1012.5512756378189,0.33895759143053006,0.01656014071188358 +1014.1670835417708,0.34167886101535855,0.01657140034235144 +1015.7828914457228,0.3529502802168303,0.016628741336136097 +1017.3986993496749,0.3510691626630356,0.016733775371873833 +1019.0145072536268,0.331238582399852,0.016792724295796438 +1020.6303151575787,0.3515368100665797,0.017048436414179476 +1022.2461230615307,0.3525880245707258,0.017610989568757136 +1023.8619309654828,0.3682163399187639,0.018128263957764144 +1025.4777388694347,0.38511915077544245,0.01847751362028064 +1027.0935467733866,0.35442025550260775,0.01836329978308994 +1028.7093546773385,0.35344708719254847,0.01806703301951694 +1030.3251625812907,0.3297753915813375,0.017719041695579474 +1031.9409704852426,0.3152498699862922,0.017227704163887386 +1033.5567783891945,0.28674159798892485,0.016707005291922025 +1035.1725862931467,0.27048440697841664,0.016408644536733734 +1036.7883941970986,0.30826225169227484,0.01721802384274065 +1038.4042021010505,0.3368188616593924,0.017990994492166564 +1040.0200100050024,0.3516944627675753,0.018735643776590406 +1041.6358179089543,0.39592133326371054,0.019722780093665553 +1043.2516258129065,0.42150132691855857,0.020657145564770073 +1044.8674337168584,0.46425046326104746,0.02135469438550427 +1046.4832416208105,0.49256744479962666,0.022017690706731857 +1048.0990495247624,0.5239074181246163,0.022654643432838413 +1049.7148574287144,0.5453396274903218,0.023268917542800714 +1051.3306653326663,0.5545230444999505,0.02380778747979854 +1052.9464732366182,0.5895058451612823,0.024366828445382377 +1054.5622811405703,0.6192460580482756,0.02492354981763937 +1056.1780890445223,0.6337407759764079,0.025295648484484075 +1057.7938969484742,0.6364474698188803,0.025599126924814856 +1059.4097048524263,0.6584890383538261,0.02589904164365084 +1061.0255127563782,0.6598083806658673,0.026030464521287947 +1062.6413206603302,0.6780804911831269,0.026058803451450906 +1064.257128564282,0.6971322269121488,0.026087090882315363 +1065.872936468234,0.6532715295697313,0.02607420892749318 +1067.4887443721861,0.6694655798777664,0.026026076448196947 +1069.104552276138,0.679936084597269,0.025929813390275454 +1070.72036018009,0.6432232522950045,0.025767085138420503 +1072.3361680840421,0.6464418339896737,0.025626542334710862 +1073.951975987994,0.6581598664748074,0.02548443311525514 +1075.567783891946,0.640617007333882,0.025431065704376716 +1077.1835917958979,0.6351988652439402,0.02551542533843758 +1078.7993996998498,0.6505609046458155,0.025438712221173738 +1080.415207603802,0.6365931833183323,0.02536771336583927 +1082.0310155077539,0.6596028477663642,0.025338355429722226 +1083.6468234117058,0.6195038388563303,0.02528879011273794 +1085.262631315658,0.6445282516361541,0.025187247539934586 +1086.8784392196098,0.6496574490192647,0.025673623313169053 +1088.4942471235618,0.6855465294898453,0.02619485089434912 +1090.1100550275137,0.7282775606012841,0.026688856173492134 +1091.7258629314656,0.7424113503544404,0.027103207470324846 +1093.3416708354177,0.7524216013252508,0.02750096507669585 +1094.9574787393697,0.7845770125161502,0.027700876599621446 +1096.5732866433216,0.7790524338935254,0.02779985264111132 +1098.1890945472737,0.7909614472879684,0.02789743471780532 +1099.8049024512256,0.7702151273691477,0.0279942462560773 +1101.4207103551776,0.8015630349120083,0.028121539786022564 +1103.0365182591295,0.7957163955936137,0.028191747318293204 +1104.6523261630814,0.8454078425720907,0.028198179298621007 +1106.2681340670335,0.7826319202077782,0.02814469469433537 +1107.8839419709855,0.7563316548756055,0.028074615462193198 +1109.4997498749374,0.7976569301442946,0.028004280485828037 +1111.1155577788895,0.7900275272932901,0.027997444619117136 +1112.7313656828414,0.7951665629978526,0.02810787887016789 +1114.3471735867934,0.7834112501674408,0.02821717382910289 +1115.9629814907453,0.8431540320623121,0.028321012590102744 +1117.5787893946972,0.8303169130956816,0.028420835929775977 +1119.1945972986493,0.8376184069382625,0.0285154851052176 +1120.8104052026013,0.8501558017764643,0.02852023271974919 +1122.4262131065532,0.8168863180693781,0.028510732602059014 +1124.0420210105053,0.8151352339758476,0.028501162099524687 +1125.6578289144572,0.7756495055880269,0.028480821165575373 +1127.2736368184092,0.8265248602560057,0.028444749301373147 +1128.889444722361,0.8206854369773228,0.028391281537960264 +1130.5052526263132,0.7879485512574572,0.02832703764129733 +1132.1210605302651,0.8038798892404477,0.028246719900254888 +1133.736868434217,0.8031763569883789,0.02816608410465319 +1135.3526763381692,0.753998313858989,0.02808254025860646 +1136.9684842421211,0.766994323533191,0.02798610726473952 +1138.584292146073,0.781036213980099,0.027887210827896386 +1140.200100050025,0.7720892058835226,0.027784635791248916 +1141.8159079539769,0.752329307049824,0.027658607198511653 +1143.431715857929,0.74668626997483,0.027531809710398276 +1145.047523761881,0.7538482078086477,0.027394890928745728 +1146.6633316658329,0.7300455457266773,0.0271940729033229 +1148.279139569785,0.7158002451963578,0.026991483055902862 +1149.894947473737,0.6967065799272851,0.02678707017869394 +1151.5107553776888,0.7257034145180276,0.026588335045613407 +1153.1265632816408,0.7082526593082488,0.02639082469074231 +1154.7423711855927,0.6718758540896371,0.026202855327078077 +1156.3581790895448,0.6694857787698419,0.026002758414439525 +1157.9739869934967,0.6602764973614431,0.025798590195855637 +1159.5897948974487,0.6527934039514305,0.02559221400894663 +1161.2056028014008,0.6508555973910174,0.02536320909561486 +1162.8214107053527,0.6420793857959404,0.02514604018159537 +1164.4372186093046,0.6135661209238806,0.024926561133808735 +1166.0530265132566,0.6209576721218598,0.024690131447362304 +1167.6688344172085,0.6113901501176383,0.024442386700777554 +1169.2846423211606,0.5808909166548389,0.024190281468044885 +1170.9004502251125,0.5915289291424324,0.02399407376656728 +1172.5162581290645,0.5876576668963441,0.02386475009141907 +1174.1320660330166,0.5636386826868868,0.02373471784150482 +1175.7478739369685,0.5695741728550116,0.023648024633840324 +1177.3636818409204,0.5668093384459152,0.023612004871893327 +1178.9794897448724,0.5713871597069785,0.023618416238517095 +1180.5952976488243,0.5622685039300822,0.023694256587117112 +1182.2111055527764,0.5920407658081352,0.023822309018235913 +1183.8269134567283,0.5874003369975467,0.023949588068910118 +1185.4427213606805,0.5969957886455468,0.024051799742654284 +1187.0585292646324,0.5795620923539069,0.024098429620527793 +1188.6743371685843,0.5760135621975198,0.024165546236777795 +1190.2901450725362,0.5724117761024592,0.024206989109507113 +1191.9059529764882,0.6138091616730255,0.024131699708427195 +1193.52176088044,0.6018831476302776,0.02405494320138698 +1195.1375687843922,0.5873072133662107,0.02397480026780599 +1196.7533766883441,0.5780598917158847,0.02387456613996844 +1198.3691845922963,0.5730099607997159,0.0237734607580815 +1199.9849924962482,0.5818874039711607,0.023671463963025483 +1201.6008004002001,0.5818454218872144,0.023965862611644028 +1203.216608304152,0.5909005628446871,0.024258438990610892 +1204.832416208104,0.5902816443288037,0.024498504271235046 +1206.4482241120559,0.6334462428336299,0.025003156681132975 +1208.064032016008,0.6435866020772902,0.025519739530676284 +1209.67983991996,0.7027811357891519,0.02601739819685522 +1211.295647823912,0.7021374984767641,0.026273712775486527 +1212.911455727864,0.6993245419106147,0.026535375710179512 +1214.527263631816,0.7401221890580597,0.0268285587798132 +1216.1430715357678,0.7485716589193931,0.02702463734435829 +1217.7588794397197,0.7471088417514576,0.027180727208970884 +1219.3746873436717,0.7544521665022793,0.027335925490673443 +1220.9904952476238,0.7527252092774527,0.027461411394769597 +1222.6063031515757,0.7662099657185473,0.027558525818586012 +1224.2221110555279,0.7801899358308759,0.027655276557532603 +1225.8379189594798,0.7536649216855372,0.027746846301685994 +1227.4537268634317,0.7696037070616716,0.027833638720370674 +1229.0695347673836,0.7857202332529051,0.027915153635050177 +1230.6853426713355,0.7758446410705476,0.0279688321949674 +1232.3011505752875,0.7926024193643213,0.028009701311651498 +1233.9169584792396,0.7837666387813678,0.028050470999547012 +1235.5327663831915,0.8230563307904593,0.028085637263507116 +1237.1485742871437,0.797930843928541,0.028109556077832176 +1238.7643821910956,0.8011819230784147,0.028120878422146535 +1240.3801900950475,0.8099259837018207,0.0281281878745693 +1241.9959979989994,0.7932724627747118,0.02812274197152633 +1243.6118059029513,0.773784098606896,0.02811726936533952 +1245.2276138069033,0.7724384194193428,0.028112716827585753 +1246.8434217108554,0.7925655983931704,0.0281291060689681 +1248.4592296148073,0.7725551987569111,0.028149804379796847 +1250.0750375187595,0.7765271424945248,0.028169717549205553 +1251.6908454227114,0.8048706706455242,0.028173826717401595 +1253.3066533266633,0.7954476370842238,0.028177933333332586 +1254.9224612306152,0.7524521565943108,0.028185610615192085 +1256.5382691345671,0.8040553289226302,0.02818443777662028 +1258.1540770385193,0.8206350820012461,0.028182655787414926 +1259.7698849424712,0.7882393802212403,0.02818085145197832 +1261.3856928464234,0.824899532062273,0.02817291802454864 +1263.0015007503753,0.8000303058819802,0.028159599978692624 +1264.6173086543272,0.7949405675575216,0.028137907586525398 +1266.233116558279,0.7932544906876364,0.028121645162962138 +1267.848924462231,0.7824375805047802,0.028107063814628123 +1269.464732366183,0.8110458250619401,0.02809247296734831 +1271.080540270135,0.7785002276548677,0.0280764207087448 +1272.696348174087,0.8074221979799554,0.028060585468776204 +1274.3121560780392,0.7993831268200113,0.02804473717958161 +1275.927963981991,0.7818546535740379,0.02802246291689928 +1277.543771885943,0.7596033200904366,0.027995401872338673 +1279.159579789895,0.7804791208174872,0.027968301931456583 +1280.7753876938468,0.7764740733101955,0.02794202190934421 +1282.3911955977987,0.7833387334401386,0.027914846294546804 +1284.007003501751,0.7943981198402625,0.02788762485862898 +1285.6228114057028,0.7967190294923295,0.027857564345902957 +1287.238619309655,0.742255589739654,0.02782298645923257 +1288.8544272136069,0.7901673766545869,0.027782668791498714 +1290.4702351175588,0.7707096106935777,0.027737925572647378 +1292.0860430215107,0.7506532357921729,0.027688780209617493 +1293.7018509254626,0.7620279391760691,0.02763953005370392 +1295.3176588294145,0.7777058275407338,0.027592259371513772 +1296.9334667333667,0.7879354482444533,0.027552036035216405 +1298.5492746373186,0.7456663203148962,0.027510167887838603 +1300.1650825412707,0.7413396888198674,0.027469279366992064 +1301.7808904452227,0.7530420226754247,0.027437544364839892 +1303.3966983491746,0.7355610253425902,0.027405772284769613 +1305.0125062531265,0.7647707214984122,0.02737334684723039 +1306.6283141570784,0.7399673075666524,0.027342232390877422 +1308.2441220610303,0.7687504732444712,0.02731108217944474 +1309.8599299649825,0.7483531137705057,0.027279896088271773 +1311.4757378689344,0.7274578047469419,0.02724942899667663 +1313.0915457728865,0.7440078102411589,0.02721967224336132 +1314.7073536768385,0.7286067701537703,0.027210044582860585 +1316.3231615807904,0.7275236513707294,0.027201069431235028 +1317.9389694847423,0.7428654490048056,0.02719221944367093 +1319.5547773886942,0.752779950165982,0.027183344565288967 +1321.1705852926461,0.7275943485341027,0.027175649664032214 +1322.7863931965983,0.7292096428228125,0.02715316407258097 +1324.4022011005502,0.7481994475403579,0.027127175624693283 +1326.0180090045023,0.7150740633229034,0.02710746471927604 +1327.6338169084543,0.7282157748117517,0.02709143971477645 +1329.2496248124062,0.7379132782944869,0.02707540177239438 +1330.865432716358,0.7629610224523643,0.027067794018609585 +1332.48124062031,0.7081516116715204,0.027066585555914464 +1334.0970485242622,0.749277015953391,0.027065376610999628 +1335.712856428214,0.7187686940750382,0.027065638950150097 +1337.3286643321662,0.7384211819004572,0.027067764362598116 +1338.9444722361181,0.7348088552013301,0.027068628842225283 +1340.56028014007,0.7412837324321332,0.02706582402931884 +1342.176088044022,0.723771270168391,0.027060021454765076 +1343.791895947974,0.7303027503634434,0.027054215784209603 +1345.4077038519258,0.738310369746752,0.027040728924827877 +1347.023511755878,0.6971785690690981,0.027002252802028188 +1348.6393196598299,0.7167001576651814,0.02695208192150162 +1350.255127563782,0.7583874648525839,0.02687492724060368 +1351.870935467734,0.7049453800398462,0.02665294369703777 +1353.4867433716859,0.692794186461617,0.026428520983429276 +1355.1025512756378,0.6806993747618338,0.026195440624370465 +1356.7183591795897,0.6601220754723688,0.02585727726609169 +1358.3341670835416,0.6594437200082237,0.02551252607600418 +1359.9499749874938,0.6376771687300844,0.025161491227303143 +1361.5657828914457,0.6307120428906279,0.024806527423799827 +1363.1815907953978,0.5931975894264095,0.02444468551947445 +1364.7973986993497,0.5693856364554061,0.024055535923834498 +1366.4132066033017,0.5636896453560242,0.02365631297073957 +1368.0290145072536,0.5413609766045947,0.023249433469691386 +1369.6448224112055,0.5285060591198856,0.022833484029234397 +1371.2606303151574,0.5584884891874673,0.02264405517335274 +1372.8764382191096,0.5173850841086765,0.02246946465999615 +1374.4922461230615,0.50007219806885,0.022243128875055244 +1376.1080540270136,0.4993489109051297,0.022212220670510152 +1377.7238619309655,0.501914060328371,0.022266034898817545 +1379.3396698349175,0.5051735221831947,0.022312876392265212 +1380.9554777388694,0.48951184768455985,0.022465491410909404 +1382.5712856428213,0.5170180437863309,0.022849633654592326 +1384.1870935467732,0.5122477806658131,0.023227421254257988 +1385.8029014507254,0.5374665710696859,0.02358979017764783 +1387.4187093546773,0.5737976422593362,0.023937325745754294 +1389.0345172586294,0.5749546820468644,0.02427509389971389 +1390.6503251625813,0.6156494554560433,0.02455509878311432 +1392.2661330665333,0.607242383668304,0.024849051093571918 +1393.8819409704852,0.6430211643205197,0.02513913417813207 +1395.497748874437,0.6517326367242438,0.02540554913166427 +1397.113556778389,0.6510727707399073,0.025624576619164653 +1398.7293646823412,0.6767405847735183,0.02578754088118482 +1400.345172586293,0.6557544443582646,0.025925292121662398 +1401.9609804902452,0.6883864489190273,0.02601052170252991 +1403.5767883941971,0.6673359398101106,0.02609518688493168 +1405.192596298149,0.6905653599698391,0.026179397901920254 +1406.808404202101,0.6938832650468666,0.02625814652628459 +1408.424212106053,0.692938162340889,0.02633301837747876 +1410.0400200100048,0.7271775916169946,0.026407483197656675 +1411.655827913957,0.6753402027296537,0.026487857280423764 +1413.2716358179089,0.6931746512200703,0.026567602114994437 +1414.887443721861,0.6969388752637716,0.026647351820270632 +1416.503251625813,0.7011702503750711,0.026681016527376568 +1418.1190595297649,0.7112155662754309,0.026711011422549606 +1419.7348674337168,0.7145085892317176,0.02674082353881018 +1421.3506753376687,0.6924255344706882,0.026758581012273294 +1422.9664832416208,0.725061005491412,0.02677494237286277 +1424.5822911455728,0.7155046245874609,0.02679555823827197 +1426.198099049525,0.7212459412853454,0.026781634453760948 +1427.8139069534768,0.7411216426323856,0.026755661175728866 +1429.4297148574287,0.7051224661342813,0.026729655763033194 +1431.0455227613807,0.72621994340164,0.026683422915848878 +1432.6613306653326,0.7119868263341856,0.02660677625480637 +1434.2771385692845,0.7160655172707454,0.02652942941915072 +1435.8929464732366,0.714731670829966,0.026416140094456923 +1437.5087543771886,0.6947585273799115,0.026273283359601888 +1439.1245622811407,0.6562088022255183,0.026129624902682287 +1440.7403701850926,0.6468059048847828,0.025772643089324525 +1442.3561780890445,0.6429211616469898,0.025215034480097376 +1443.9719859929965,0.6027066926120961,0.024644306909892808 +1445.5877938969484,0.5785175793103038,0.023896778570252224 +1447.2036018009003,0.5305446563655573,0.022821669180976417 +1448.8194097048524,0.47490245916197965,0.021644458167627646 +1450.4352176088044,0.41788308897607873,0.020499339316805122 +1452.0510255127565,0.38341867828778325,0.019694991619689524 +1453.6668334167084,0.37114968146688737,0.01885501940740117 +1455.2826413206603,0.33620026431473216,0.01845733171817972 +1456.8984492246122,0.4124250154858923,0.020162371664146705 +1458.5142571285642,0.4859286125419457,0.021699022858603093 +1460.130065032516,0.534732918533372,0.022976493674153456 +1461.7458729364682,0.5449270797264515,0.023149977967974703 +1463.3616808404201,0.5565650972049708,0.023314060316584582 +1464.9774887443723,0.5582673324234454,0.023493632673649324 +1466.5932966483242,0.578898908847971,0.02389818090982046 +1468.2091045522761,0.6018731824901207,0.024296195827704037 +1469.824912456228,0.6301778233708851,0.02468775522404874 +1471.44072036018,0.6400667877553761,0.024948985281177356 +1473.0565282641319,0.6684164066004387,0.025192439244119114 +1474.672336168084,0.6870845156969969,0.02554460938434791 +1476.288144072036,0.66403733230148,0.025768281217968782 +1477.903951975988,0.6938488733445614,0.025951519929480006 +1479.51975987994,0.7034249587458054,0.026129404371457228 +1481.135567783892,0.6902345500538875,0.026256722068852323 +1482.7513756878438,0.6926515350574625,0.02625671259577832 +1484.3671835917958,0.7014828189286102,0.026204111800069457 +1485.9829914957477,0.6703126843164826,0.02599753823415549 +1487.5987993996998,0.6722590368087177,0.025687256197946644 +1489.2146073036517,0.6578353666158395,0.025370786723633038 +1490.830415207604,0.6224152921177706,0.024631245664462932 +1492.4462231115558,0.5600517406237966,0.023390588876009862 +1494.0620310155077,0.5041878157866673,0.02207724165885759 +1495.6778389194596,0.46223946346084166,0.02135579731913209 +1497.2936468234116,0.480282022762586,0.02147906823966615 +1498.9094547273637,0.5134333966502185,0.021714226429009366 +1500.5252626313156,0.5615295813882161,0.022757109128344173 +1502.1410705352678,0.6019781207123545,0.024015302355609464 +1503.7568784392197,0.6541451928790097,0.025210573934550586 +1505.3726863431716,0.7369588431400202,0.026143851782135016 +1506.9884942471235,0.7072506267735594,0.02636646843595816 +1508.6043021510754,0.7651902841215689,0.02703596389647179 +1510.2201100550274,0.7813071235753232,0.02763946414575871 +1511.8359179589795,0.7989554979479802,0.028171976009010554 +1513.4517258629314,0.8465178454093537,0.028666884597317244 +1515.0675337668836,0.870275452907113,0.029131639167081766 +1516.6833416708355,0.8323356810409729,0.02923856810567012 +1518.2991495747874,0.8556415431565232,0.029253091282904656 +1519.9149574787393,0.8896378835382436,0.02926758745460583 +1521.5307653826912,0.8793043284045532,0.02928677871148745 +1523.1465732866432,0.8632901280301389,0.029306204741962823 +1524.7623811905953,0.8709870549742595,0.029318381099983873 +1526.3781890945472,0.8385012556947491,0.029324016354546872 +1527.9939969984994,0.8580833091109856,0.029329441135836565 +1529.6098049024513,0.8604703792801732,0.029334864756677688 +1531.2256128064032,0.8693517286332079,0.029335700918550003 +1532.8414207103551,0.8636018601736726,0.029358072774165744 +1534.457228614307,0.8679121940850058,0.02942141530217523 +1536.073036518259,0.8536088424539193,0.0294804730124435 +1537.688844422211,0.8824700683745931,0.029537123150995055 +1539.304652326163,0.8894195757682244,0.0295932888385067 +1540.9204602301152,0.8849265011113241,0.029643784570214115 +1542.536268134067,0.9038002665199757,0.02967505825170172 +1544.152076038019,0.8495682123556121,0.02970610598982859 +1545.767883941971,0.882378142499601,0.02973353625738593 +1547.3836918459228,0.916416292412243,0.029756989683333776 +1548.9994997498748,0.8781002078502792,0.029780214682424845 +1550.615307653827,0.8778640318809294,0.029759296512186666 +1552.2311155577788,0.8969764226854366,0.02973037052238351 +1553.846923461731,0.854492949725218,0.029701407127540828 +1555.4627313656829,0.8732714551606049,0.02967168498703793 +1557.0785392696348,0.8960396421851922,0.02964012341480471 +1558.6943471735867,0.8848147969161966,0.02960302987065569 +1560.3101550775386,0.8674295274723048,0.029562175715572438 +1561.9259629814906,0.8849272448183542,0.02951541250104401 +1563.5417708854427,0.8855792221041998,0.02946857041150901 +1565.1575787893946,0.8433606416377877,0.029420337658336865 +1566.7733866933468,0.8398392521995216,0.02934017883398832 +1568.3891945972987,0.8261171709804456,0.02923874941063334 +1570.0050025012506,0.862326397447655,0.02913696874773285 +1571.6208104052025,0.8595264747769217,0.02905306823278857 +1573.2366183091544,0.8442492000076943,0.028968826545930245 +1574.8524262131064,0.8367211859537467,0.02889936338061422 +1576.4682341170585,0.8460764196824825,0.028872082801383515 +1578.0840420210104,0.8493552951646506,0.028844812028404176 +1579.6998499249626,0.8296088830601759,0.028817483569251776 +1581.3156578289145,0.8286364202886699,0.02878979548013649 +1582.9314657328664,0.8301531829668845,0.028761472989483186 +1584.5472736368183,0.8158544107721064,0.028723052364060177 +1586.1630815407702,0.8363768484010918,0.02870948540845052 +1587.7788894447224,0.8336752623011574,0.028705604989872426 +1589.3946973486743,0.8247956424163256,0.028701721708927437 +1591.0105052526264,0.806000824280332,0.028697137884914986 +1592.6263131565784,0.8190640123354718,0.028671435231107947 +1594.2421210605303,0.8138923208751268,0.028641392725855905 +1595.8579289644822,0.8127347919840211,0.028596631399104254 +1597.4737368684341,0.8356300629605706,0.028538825372405888 +1599.089544772386,0.8054560134094593,0.028480876441552522 +1600.7053526763382,0.7955466423842044,0.028316113914667512 +1602.32116058029,0.81768526715663,0.028091800639556123 +1603.9369684842422,0.7781585037024302,0.02786007790707242 +1605.5527763881942,0.7767265558345702,0.02765457869229632 +1607.168584292146,0.7644726425551444,0.027505693933470993 +1608.784392196098,0.7537204995732043,0.02747277337648679 +1610.40020010005,0.7918489617893029,0.02764336885548629 +1612.0160080040018,0.7930082835441619,0.027849676331126602 +1613.631815907954,0.8092085378633456,0.028054418907044455 +1615.247623811906,0.8052623221685782,0.02823695063485013 +1616.863431715858,0.8350961512360244,0.028349192666803715 +1618.47923961981,0.8321062633533971,0.028665962898349055 +1620.0950475237619,0.8395887645540612,0.028970748994863696 +1621.7108554277138,0.8744291825714826,0.029236384519695097 +1623.3266633316657,0.8588259799219673,0.029493776373516495 +1624.9424712356176,0.8828271716072429,0.029743639326937278 +1626.5582791395698,0.8723796435069509,0.029761942216804213 +1628.1740870435217,0.8692846739271598,0.029769902143530754 +1629.7898949474738,0.8572360960830402,0.029777855069414935 +1631.4057028514258,0.8815429849519949,0.02978827138147553 +1633.0215107553777,0.8890836534938963,0.02979904960244399 +1634.6373186593296,0.9032301493368515,0.02988291787411132 +1636.2531265632815,0.8783975015021993,0.02999270179471073 +1637.8689344672334,0.8904460378468699,0.030101606303105283 +1639.4847423711856,0.9334410065037629,0.030209352540068853 +1641.1005502751375,0.9182537065688369,0.030318634265225356 +1642.7163581790896,0.9231739653103093,0.030387957520824887 +1644.3321660830416,0.9336708903955813,0.03041997554999289 +1645.9479739869935,0.9116208943115264,0.03045193148045055 +1647.5637818909454,0.9352815182779846,0.03048382574988649 +1649.1795897948973,0.9248885763316845,0.030515658790680144 +1650.7953976988492,0.9313001895234785,0.03054111752288519 +1652.4112056028014,0.9398318549915458,0.030551955643349286 +1654.0270135067533,0.9563570466740132,0.03056278983575577 +1655.6428214107054,0.9610570430587952,0.030573620104450003 +1657.2586293146574,0.9324722022931844,0.030584446453769253 +1658.8744372186093,0.9682993044495833,0.0305952167162942 +1660.4902451225612,0.9557810355648112,0.03060594713940539 +1662.106053026513,0.9368054618805466,0.030617901892406985 +1663.7218609304653,0.9599249209530925,0.030629851529184873 +1665.3376688344172,0.9417444632721925,0.030642090573882362 +1666.9534767383693,0.9101211722100391,0.030655438456683025 +1668.5692846423212,0.955928128105617,0.03066698324538183 +1670.1850925462732,0.9524796017661701,0.030677799293927093 +1671.800900450225,0.9570908776397974,0.03068518506701756 +1673.416708354177,0.9549291357561751,0.030692568233961617 +1675.032516258129,0.9658848098904994,0.030699962940282415 +1676.648324162081,0.9491146844572484,0.03070804342534451 +1678.264132066033,0.9669061492238673,0.030716120794436124 +1679.8799399699851,0.9509220032366809,0.030724195051159184 +1681.495747873937,0.9310580487866273,0.0307296677785154 +1683.111555777889,0.9081651031159002,0.030734930549433513 +1684.7273636818409,0.9902931543681877,0.03074330809121252 +1686.3431715857928,0.9149724594420249,0.0307473754812755 +1687.9589794897447,0.9459116370402221,0.03074972026339654 +1689.5747873936969,0.9413453156626607,0.03075205851480377 +1691.1905952976488,0.9758647463258834,0.030744300628321605 +1692.806403201601,0.9631099758913019,0.030730305764385832 +1694.4222111055528,0.9448915214204141,0.03070649560564973 +1696.0380190095048,0.942248170346138,0.030681308770425252 +1697.6538269134567,0.9355353044249973,0.030655343729113983 +1699.2696348174086,0.9399099072237386,0.03062935522302321 +1700.8854427213607,0.9418525316267966,0.03060876195743979 +1702.5012506253127,0.9624928668892918,0.030600859581445174 +1704.1170585292646,0.936012762295485,0.0305930137180764 +1705.7328664332165,0.9342204728145748,0.03059157657944292 +1707.3486743371686,0.9131744070311638,0.03059786575500487 +1708.9644822411205,0.9808648520838605,0.030604153457719697 +1710.5802901450725,0.9520799524665048,0.03060876398971708 +1712.1960980490244,0.9453700856994657,0.030614210352766832 +1713.8119059529765,0.9286903131814545,0.030619655177190157 +1715.4277138569284,0.9779008827865588,0.03062360293393117 +1717.0435217608804,0.9351883697099417,0.03062339587211032 +1718.6593296648323,0.9398967312447786,0.030619389769562265 +1720.2751375687844,0.9646254108836155,0.030611201682138232 +1721.8909454727363,0.9327166939012046,0.030597440200224056 +1723.5067533766883,0.9555153541978627,0.030583671463154577 +1725.1225612806402,0.9305960195177673,0.030569654145396235 +1726.7383691845923,0.9663929595010322,0.03054468366875173 +1728.3541770885442,0.9267905696641524,0.030503935811657015 +1729.9699849924962,0.9414509436293136,0.030463084944396798 +1731.585792896448,0.9082136181575629,0.0304242155170655 +1733.2016008004002,0.9244699217459275,0.030385282426062955 +1734.8174087043521,0.9200582176559747,0.030346699405559518 +1736.433216608304,0.9106927188298264,0.030327721753896874 +1738.049024512256,0.8887922600822289,0.0303107417461609 +1739.6648324162081,0.9492708691631199,0.030293676118657943 +1741.28064032016,0.9020190910373824,0.03028941564504884 +1742.896448224112,0.9212663720864557,0.030288415872414765 +1744.5122561280639,0.8975880676801745,0.030350196528007446 +1746.128064032016,0.9269428578829007,0.0304154727647311 +1747.743871935968,0.933994836333777,0.030479160181788464 +1749.3596798399199,0.9266132509947952,0.030542644730087797 +1750.975487743872,0.9470474996912444,0.030591935956743095 +1752.591295647824,0.9289960630536446,0.030620715577035655 +1754.2071035517758,0.9431379264281617,0.030644236914081382 +1755.8229114557278,0.9255408202426026,0.030667159283861198 +1757.43871935968,0.9513064926591847,0.030689502614656795 +1759.0545272636318,0.942847056963936,0.030711784571811156 +1760.6703351675837,0.9640085951864761,0.030719868272414345 +1762.2861430715357,0.9770122463327572,0.03071152605886885 +1763.9019509754878,0.9389253437181074,0.030703180623666358 +1765.5177588794397,0.9404703097484092,0.03069460661159184 +1767.1335667833916,0.9636091873668529,0.030685551295063215 +1768.7493746873436,0.8941284219495231,0.03067521386715618 +1770.3651825912957,0.9564167037703823,0.030660795960513975 +1771.9809904952476,0.9039603608066771,0.030645821447477573 +1773.5967983991995,0.9392510345765355,0.030630834814244404 +1775.2126063031515,0.939642646967029,0.030615280125073252 +1776.8284142071036,0.9285468627135672,0.030596042776022916 +1778.4442221110555,0.9166830467601509,0.03057679048813872 +1780.0600300150074,0.9284526304501007,0.030556121824607894 +1781.6758379189594,0.9317260349390354,0.030499066637545508 +1783.2916458229115,0.9170424089782363,0.030441895651321653 +1784.9074537268634,0.903734363725829,0.030384608123153356 +1786.5232616308153,0.9274572187484988,0.030298901487087 +1788.1390695347673,0.9190978811622336,0.030211896162436542 +1789.7548774387194,0.9032687538815094,0.030124561744670875 +1791.3706853426713,0.911151684830064,0.03003720017846715 +1792.9864932466232,0.9201572075832787,0.029949558966129473 +1794.6023011505752,0.8706954689807624,0.0298394394341872 +1796.2181090545273,0.9132030850933961,0.029777005942298002 +1797.8339169584792,0.8597948510765533,0.029735058712668423 +1799.4497248624311,0.902525174771723,0.029692915838908027 +1801.065532766383,0.8669475151303171,0.02974034489551812 +1802.6813406703352,0.8967554962757868,0.02982187623583603 +1804.2971485742871,0.9003215533656358,0.029883073740969754 +1805.912956478239,0.9319986539350357,0.029878078275604885 +1807.528764382191,0.9037719919875631,0.029822447186171278 +1809.144572286143,0.9054525508568991,0.029766167362966015 +1810.760380190095,0.874663744150318,0.029732765610660683 +1812.376188094047,0.8794439969488671,0.029819916360548166 +1813.9919959979989,0.9302705456260065,0.029906596570658566 +1815.607803901951,0.8853809606983779,0.03000599275584361 +1817.223611805903,0.8659917456659754,0.030126695797029843 +1818.8394197098548,0.8917413511611781,0.030246818874368645 +1820.4552276138068,0.9356193678586152,0.030338696112473054 +1822.071035517759,0.8971444275629333,0.03040242155967897 +1823.6868434217108,0.9464886263115483,0.030465930918578632 +1825.3026513256627,0.9238120631334383,0.030525293823673326 +1826.9184592296147,0.9137322632404233,0.03056739303523317 +1828.5342671335668,0.9303948072909517,0.030592736742660786 +1830.1500750375187,0.9224056018588409,0.030610879406057764 +1831.7658829414706,0.9525529212544576,0.030622632263355647 +1833.3816908454228,0.9348254540340689,0.030634344641670943 +1834.9974987493747,0.9395372098110067,0.030646016763036164 +1836.6133066533266,0.9432043488984121,0.030630347012677975 +1838.2291145572785,0.9764367289799218,0.030607262684271073 +1839.8449224612307,0.9350622426966647,0.03058414059016007 +1841.4607303651826,0.9633459338184036,0.030543140965559247 +1843.0765382691345,0.939980327864737,0.030500141954362146 +1844.6923461730864,0.9466566095830464,0.03044832311514776 +1846.3081540770386,0.899001346180873,0.030369568364585233 +1847.9239619809905,0.9257088473252675,0.030289524098006563 +1849.5397698849424,0.9227912608317251,0.03020926748208333 +1851.1555777888943,0.9135036754174459,0.030129564469212305 +1852.7713856928465,0.9014565896472281,0.0300460776289916 +1854.3871935967984,0.8933361306623796,0.029904977763347905 +1856.0030015007503,0.9044572352632102,0.029799581338540777 +1857.6188094047022,0.868578962036516,0.0297157065119021 +1859.2346173086544,0.8499272136892031,0.02963094732227278 +1860.8504252126063,0.9016969418865723,0.029561736387810574 +1862.4662331165582,0.8708401721122113,0.029565133925945463 +1864.0820410205101,0.8691435142535672,0.029579081612567282 +1865.6978489244623,0.8439813893292685,0.02959537071744807 +1867.3136568284142,0.8715957282780857,0.029614764102779384 +1868.9294647323661,0.874747168626351,0.029634007418563754 +1870.545272636318,0.8761995263247859,0.0297043464467658 +1872.1610805402702,0.8505185420378066,0.02980507428576689 +1873.776888444222,0.9000745519889104,0.029905349363551187 +1875.392696348174,0.8991310465687821,0.030005522080618494 +1877.008504252126,0.9322833129110911,0.030106321338571704 +1878.624312156078,0.927879615120964,0.030193932253872353 +1880.24012006003,0.9071790554552553,0.03026141250436191 +1881.855927963982,0.9228241246675576,0.030320395727217467 +1883.4717358679338,0.9054037128066842,0.030379257829852745 +1885.087543771886,0.8956666107437874,0.03043686516815515 +1886.703351675838,0.942062172111466,0.03048124636132124 +1888.3191595797898,0.9687019154143182,0.030553694547786482 +1889.9349674837417,0.9277859094337858,0.030625765638320413 +1891.5507753876939,0.9070231797302165,0.030685435553815418 +1893.1665832916458,0.923158807339767,0.030744245380309752 +1894.7823911955977,0.9343129988917791,0.030802706208208665 +1896.3981990995496,0.910686545055655,0.03081695637845289 +1898.0140070035018,0.924719433611781,0.03082927233679068 +1899.6298149074537,0.9743509506931717,0.030841555378461814 +1901.2456228114056,0.9544123988318565,0.0308465482840128 +1902.8614307153575,0.9565531731659618,0.030849343938342967 +1904.4772386193097,0.9396920741446402,0.030842798516844298 +1906.0930465232616,0.9661508093193389,0.030830367976894466 +1907.7088544272135,0.9592746402501793,0.030816562130360672 +1909.3246623311654,0.9719324323131759,0.030802736684968534 +1910.9404702351176,0.9458456648273819,0.03078950352779852 +1912.5562781390695,0.9482464808995317,0.030773144396026367 +1914.1720860430214,0.9423902312102879,0.030753697117328865 +1915.7878939469736,0.9572212020261895,0.030729608150330198 +1917.4037018509255,0.9388389686185918,0.030700627175082658 +1919.0195097548774,0.9644352361475103,0.03067160992604917 +1920.6353176588293,0.9300227213972926,0.030614315628358934 +1922.2511255627815,0.9315464285637622,0.030510423899640936 +1923.8669334667334,0.96432435317046,0.03040613062444255 +1925.4827413706853,0.9459254079902684,0.030287958507046086 +1927.0985492746372,0.8730255021692531,0.030137432460289902 +1928.7143571785894,0.9056677027402562,0.029983941862384327 +1930.3301650825413,0.885172728568649,0.029833970669225544 +1931.9459729864932,0.9073032576453276,0.029773221595927216 +1933.561780890445,0.895788429983528,0.02971230359324377 +1935.1775887943973,0.8664551925019292,0.029664570296774436 +1936.7933966983492,0.8829197173914456,0.02972458003422099 +1938.409204602301,0.9112583242955657,0.029736872615723275 +1940.025012506253,0.8856681010398852,0.029741151208447995 +1941.6408204102052,0.8916857916522983,0.029721088629085214 +1943.256628314157,0.8786937350017378,0.02969983805981967 +1944.872436218109,0.8496732892093601,0.029677373338149574 +1946.488244122061,0.9101012865560972,0.029641391839250766 +1948.104052026013,0.8885591910478686,0.029621773212244993 +1949.719859929965,0.8823747665053102,0.029602028861133604 +1951.335667833917,0.875791360175667,0.029582451738521885 +1952.9514757378688,0.8811807365793958,0.029562807618095654 +1954.567283641821,0.8863339406608473,0.029592451195582004 +1956.1830915457729,0.9033742266840734,0.02975937205140489 +1957.7988994497248,0.9259881827001639,0.029952881722332257 +1959.4147073536767,0.9015852770597644,0.030145095754795834 +1961.0305152576288,0.9447838583062241,0.030273112027326986 +1962.6463231615808,0.9332635111428446,0.030351878775901495 +1964.2621310655327,0.9144947569993456,0.030386737994205427 +1965.8779389694846,0.9327948013161488,0.030417761844092384 +1967.4937468734367,0.9223294729581928,0.030445561161496784 +1969.1095547773887,0.9212244562562159,0.030473320060565055 +1970.7253626813406,0.9551862540458631,0.03049874137913119 +1972.3411705852925,0.954374365323419,0.03056471905733999 +1973.9569784892446,0.9517792918442084,0.03063028419235049 +1975.5727863931966,0.9387328485358101,0.030694211752321728 +1977.1885942971485,0.9142753060876158,0.03075549760306592 +1978.8044022011004,0.9464386455420097,0.030816394842915318 +1980.4202101050525,0.9859595081750488,0.03084125194398297 +1982.0360180090045,0.9978826591291662,0.030857725849813195 +1983.6518259129564,0.9400636091921677,0.030874177273114554 +1985.2676338169083,0.9522511234878828,0.03089072151780291 +1986.8834417208604,0.9659492381937338,0.030907823721465146 +1988.4992496248124,0.9364334413514972,0.030913150455986055 +1990.1150575287643,0.9592418690961955,0.030909658869333185 +1991.7308654327162,0.9743433487558445,0.030906163398035848 +1993.3466733366683,0.9566143109803951,0.030902664035603038 +1994.9624812406203,0.9617064611010505,0.030899160775523626 +1996.5782891445722,0.9074740578775023,0.030901368092595426 +1998.1940970485243,0.940516161281663,0.030913415216261675 +1999.8099049524762,0.9340800661596874,0.030925453161939415 +2001.4257128564282,0.973467115748039,0.03093778842737709 +2003.04152076038,0.9744414968414773,0.030950155337083403 +2004.6573286643322,0.9583471740328785,0.030962681055312823 +2006.2731365682841,0.9781251902428472,0.030976545939759802 +2007.888944472236,0.9867297649476071,0.030990472709176944 +2009.504752376188,0.9860410276797191,0.031004387760825154 +2011.1205602801401,0.9897861136908859,0.03101660653475471 +2012.736368184092,0.9382377935644957,0.031028069568830148 +2014.352176088044,0.9527543204732154,0.03103186813672251 +2015.9679839919959,0.9906524479977501,0.031034555233880313 +2017.583791895948,0.972551725738745,0.031036963651940863 +2019.1995997999,0.9440410242384383,0.03103937163221204 +2020.8154077038519,0.957537909293902,0.031041954270856112 +2022.4312156078038,1.0121840269563775,0.031047297975009252 +2024.047023511756,0.9267520661314542,0.031053756452028892 +2025.6628314157078,0.9787437435971487,0.031060496167640155 +2027.2786393196598,0.9849013554903883,0.031067641674278116 +2028.8944472236117,0.997499139550474,0.031074783729164765 +2030.5102551275638,1.0007876573264347,0.03108001524973005 +2032.1260630315157,0.9824335879567887,0.031083894240801147 +2033.7418709354677,0.9754824825260064,0.031087772647916956 +2035.3576788394196,1.0227788846920332,0.03109165047135746 +2036.9734867433717,0.9538517915366291,0.031095527711402428 +2038.5892946473236,0.9667490677061675,0.031099834755966546 +2040.2051025512756,0.9489169036865174,0.03110557323919484 +2041.8209104552275,0.9774712923118885,0.031112822954574883 +2043.4367183591796,0.9867084794377982,0.031120070971947744 +2045.0525262631315,0.9627558947580764,0.03112735106015732 +2046.6683341670835,0.95941410767755,0.031135544445878717 +2048.2841420710356,0.9879032537150839,0.031141774243316236 +2049.8999499749875,0.9774981005828041,0.031148002215939958 +2051.5157578789394,0.9851310845130653,0.031157472437271422 +2053.1315657828914,0.9766161458533283,0.03116715246302435 +2054.7473736868433,0.9827778375517957,0.03117682808895153 +2056.3631815907956,0.9739594034382262,0.031189412448558305 +2057.978989494747,0.9520925192322264,0.031202528882701582 +2059.5947973986995,0.9696013734590138,0.031215637253350404 +2061.210605302651,0.9670321495578452,0.031227188241689272 +2062.8264132066033,0.9554606468660827,0.031238214659767508 +2064.4422211105552,0.9869471270641577,0.03124798974661461 +2066.058029014507,0.9909545874143878,0.031256277025625306 +2067.673836918459,0.9714790399679326,0.0312642026548903 +2069.289644822411,1.0065803648525387,0.03127212320532307 +2070.9054527263634,0.9750376256250041,0.03128003868315887 +2072.521260630315,0.9994440019297001,0.03128858810047258 +2074.137068534267,0.9485065967849026,0.031298136617794875 +2075.752876438219,1.0137353134995712,0.031305121875522327 +2077.368684342171,0.9987400239095588,0.03130917256788723 +2078.984492246123,0.9924662331783172,0.03131322231502766 +2080.600300150075,0.9298463971421232,0.031316615011201865 +2082.2161080540272,1.0074532103467153,0.031320451402876724 +2083.8319159579787,0.9770033300302825,0.03132428709165344 +2085.447723861931,0.9817049629989502,0.03132793201464758 +2087.063531765883,0.9919914805297272,0.031331080414075854 +2088.679339669835,0.9940586503258534,0.03133422817781366 +2090.295147573787,0.9587172237501651,0.03133478057067964 +2091.9109554777388,0.9614239088192901,0.03133409468746059 +2093.526763381691,0.9719657612757631,0.0313334087823134 +2095.1425712856426,0.9806198574505579,0.03133269259324215 +2096.758379189595,1.0009030768192035,0.03133166366005075 +2098.3741870935464,1.0362463235306696,0.03133063467750429 +2099.989994997499,0.9922419190885204,0.03132960564559567 +2101.6058029014507,1.0275550479691637,0.031328917472872475 +2103.2216108054026,0.9971549980521673,0.03132823140216119 +2104.8374187093546,0.9662963328468661,0.031327545309503796 +2106.4532266133065,0.9878463771924524,0.031325183754675315 +2108.069034517259,0.9466012654036908,0.0313217597117203 +2109.6848424212103,0.964505043314405,0.031318335154647874 +2111.3006503251627,0.9927323608251452,0.03131435765488477 +2112.9164582291146,0.9488104367242737,0.031310245683684276 +2114.5322661330665,0.9853786460729755,0.031306744345185725 +2116.1480740370184,0.9905818190206398,0.031304441079595575 +2117.7638819409704,0.991292768195493,0.031302038193685884 +2119.3796898449227,0.981891206636545,0.03129963503835325 +2120.995497748874,0.9834473533578431,0.03129638540773697 +2122.6113056528266,0.9604158505106303,0.031292607903316755 +2124.227113556778,0.9948985102332482,0.03128882973270784 +2125.8429214607304,0.9744160914349301,0.031285230120880234 +2127.4587293646823,0.9870156311309637,0.03128179426443813 +2129.0745372686342,0.9835787327764778,0.03127835785659231 +2130.690345172586,0.9913762880878864,0.03127477404255164 +2132.306153076538,0.9732276626513312,0.031270992723643413 +2133.9219609804904,0.9974958478011936,0.03126721073652596 +2135.537768884442,0.983027786075245,0.03126365699683595 +2137.1535767883943,0.9983126890870082,0.031260561632331554 +2138.769384692346,0.9774375267566702,0.03125746581985887 +2140.385192596298,1.0000556238007994,0.03125469763283783 +2142.00100050025,1.0133634085760954,0.03125297732071173 +2143.616808404202,0.99693509252666,0.031251256870176644 +2145.2326163081543,0.9863587297656016,0.031249585823313126 +2146.848424212106,0.9652553714747705,0.031248209255620107 +2148.464232116058,0.9454059460512125,0.031246571009316385 +2150.0800400200096,0.9529507711860445,0.031244578178283237 +2151.695847923962,0.9545903717784023,0.03124258522010959 +2153.311655827914,0.9668228505691989,0.031240592134771095 +2154.927463731866,0.9649164758137107,0.031238598922243427 +2156.5432716358177,0.9675205355604239,0.031235015282355744 +2158.1590795397697,0.9778913873704997,0.03122781208623673 +2159.774887443722,0.9640850760386186,0.03122060601222888 +2161.3906953476735,0.9888634696519,0.031213989879028663 +2163.006503251626,0.9582377251521343,0.031207466923286683 +2164.622311155578,0.9635508607218003,0.031200941187955532 +2166.2381190595297,0.9951565000340531,0.031185101267079456 +2167.8539269634816,0.9839800547394264,0.031169204145837855 +2169.4697348674335,1.0105403878345778,0.03115328441844401 +2171.085542771386,0.9910075550322708,0.031137341981889107 +2172.7013506753374,0.9625192846480122,0.03112137673237808 +2174.3171585792898,0.9453256127986683,0.031128883266714206 +2175.9329664832417,0.9938522342674493,0.031143588403150794 +2177.5487743871936,0.9407751086734661,0.03115841448737953 +2179.1645822911455,0.9611980038225975,0.03117321603591607 +2180.7803901950974,1.0027569547425377,0.0311881595862427 +2182.39619809905,0.9732667098247283,0.031194401760856957 +2184.0120060030013,0.9508848648387561,0.031193439405351756 +2185.6278139069536,0.9758054651129474,0.031192343115032634 +2187.243621810905,0.9748374563717032,0.031191036064651345 +2188.8594297148575,0.9844709147718813,0.031189728953225852 +2190.4752376188094,0.9663933730182404,0.03118849043850022 +2192.0910455227613,0.9774945218718382,0.03118738920024857 +2193.706853426713,1.0083897518699039,0.031186287922491368 +2195.322661330665,0.9945597265827305,0.03118525543089406 +2196.9384692346175,0.9383714385459312,0.031184498746008173 +2198.554277138569,0.9871036776031271,0.031184382061537112 +2200.1700850425214,0.9605314719072026,0.031189150005143967 +2201.7858929464733,0.9588884377800099,0.031193606845495114 +2203.401700850425,0.9491743684409837,0.031198060975723342 +2205.017508754377,0.9433822968388414,0.031202516135302758 +2206.633316658329,1.0005305511154539,0.03120730957830493 +2208.2491245622814,0.9684756933074142,0.031203256098308742 +2209.864932466233,0.9865314338009712,0.031198182586926256 +2211.4807403701852,0.9484740063621669,0.031194370432089627 +2213.0965482741367,0.9948531141058725,0.031190671219323247 +2214.712356178089,0.9692681587948739,0.031186969679736623 +2216.328164082041,0.9798579213359102,0.031189694969796136 +2217.943971985993,0.9600346076233254,0.031195463728385452 +2219.559779889945,0.9963896409028281,0.031201230161348698 +2221.1755877938967,1.0002873498395464,0.031206994271970906 +2222.791395697849,0.9791605101921808,0.031212756063529242 +2224.4072036018006,0.9785542218985015,0.031216340657473023 +2226.023011505753,0.967869587705639,0.03121715621965878 +2227.638819409705,0.9854626178598305,0.03121784534275844 +2229.254627313657,0.9349096583970699,0.0312185344436199 +2230.8704352176087,0.9866836834400831,0.03121940912166544 +2232.4862431215606,0.973445940660563,0.031219448108356158 +2234.102051025513,1.027777684743655,0.031216371119990927 +2235.7178589294645,0.9829039571160796,0.0312132923670579 +2237.333666833417,0.9509888239457847,0.031210211847417034 +2238.9494747373683,0.9730774573305361,0.031207129558923796 +2240.5652826413207,0.975358276184049,0.03120414336368519 +2242.1810905452726,0.9480217151160852,0.03120517663095594 +2243.7968984492245,0.9639282425500788,0.03120620984825255 +2245.412706353177,0.9374536530794608,0.031207067092786204 +2247.0285142571283,0.9507680810908637,0.031207411473629265 +2248.6443221610807,0.9919928880899389,0.03120775584892138 +2250.260130065032,0.9789235211204442,0.031207713501808346 +2251.8759379689845,0.9552991887922802,0.031208128792195453 +2253.4917458729365,0.989082333209967,0.03120854399385352 +2255.1075537768884,0.9558574646150692,0.031208959106782487 +2256.7233616808403,1.0001231307489153,0.03120937413098229 +2258.339169584792,0.9781929517360024,0.031206885512894977 +2259.9549774887446,0.9586553147821236,0.031202353524998918 +2261.570785392696,1.0010738631826066,0.031197818335235057 +2263.1865932966484,0.9877843070357832,0.031193279938248664 +2264.8024012006003,0.9257564100784725,0.031188738328669786 +2266.4182091045523,1.0037684442301986,0.031186826337361435 +2268.034017008504,0.9848990128369353,0.031189889990726218 +2269.649824912456,0.9552521760267257,0.031192953047143975 +2271.2656328164085,0.9560139616497199,0.03119628508772536 +2272.88144072036,0.9646851922077064,0.031199691095040227 +2274.4972486243123,0.9955161920682203,0.03120264555302652 +2276.1130565282638,0.9364924969316796,0.03120282187293979 +2277.728864432216,0.9678608047028446,0.031202891056568764 +2279.344672336168,0.9288974835190296,0.031202960179023784 +2280.96048024012,0.9994339571232679,0.031203029240299617 +2282.576288144072,0.9595542859229808,0.03120309824039101 +2284.192096048024,0.9799403026339956,0.031203070945058805 +2285.807903951976,0.9604809894167845,0.031203036605132246 +2287.4237118559276,0.9730995556358487,0.03120300218989757 +2289.03951975988,0.918353182837305,0.031202967699345188 +2290.655327663832,0.9593080537833047,0.031202514553495014 +2292.271135567784,0.9425047186251496,0.031202922471323013 +2293.886943471736,0.9752760066146043,0.03120392029509146 +2295.5027513756877,1.0188520786597322,0.031204917929949165 +2297.11855927964,0.9739852216573514,0.031205915375970998 +2298.7343671835915,0.9730735692083123,0.031206912633231824 +2300.350175087544,0.9697015094782282,0.03120862591793378 +2301.9659829914954,0.9757354437396174,0.031211066482780755 +2303.5817908954477,0.9762185065315888,0.031213506253217616 +2305.1975987993997,0.9887440231282819,0.03121598730739145 +2306.8134067033516,1.018664618449648,0.031218769570709702 +2308.4292146073035,0.9760508513012328,0.03121766031529067 +2310.0450225112554,0.9537993404763918,0.031206412528364206 +2311.660830415208,0.9646348328819443,0.031194817376996278 +2313.2766383191592,0.9828722656931205,0.031183209303219345 +2314.8924462231116,0.9700036035642676,0.031171588262442804 +2316.5082541270635,0.9709824240673147,0.03116059472024304 +2318.1240620310155,0.9872345434254604,0.03115973245221139 +2319.7398699349674,1.004154437091016,0.03115887015118032 +2321.3556778389193,0.9727692004203898,0.031158007817145207 +2322.9714857428717,0.9739709566469494,0.031157145450101405 +2324.587293646823,0.9205138728599431,0.03115628305004428 +2326.2031015507755,0.9856629698607778,0.031155333418068178 +2327.8189094547274,0.980695400767407,0.031154367276813286 +2329.4347173586793,0.9586954845628136,0.031153401090434154 +2331.0505252626313,0.9862989909768106,0.031152434858922946 +2332.666333166583,0.9470889279551332,0.031151468582271837 +2334.2821410705355,0.9983705329339118,0.031149145690597187 +2335.897948974487,0.9646698268086908,0.031146192167314006 +2337.5137568784394,0.9932232336594087,0.031143390741918124 +2339.129564782391,0.9962336789768793,0.031140588512598353 +2340.745372686343,0.9908888477441697,0.031137626716063578 +2342.361180590295,0.9436356507387678,0.031137000016453944 +2343.976988494247,0.9876240081217545,0.03114008176386669 +2345.592796398199,0.9714779599776205,0.031143162303906086 +2347.208604302151,0.9755882580512478,0.031146241637835827 +2348.8244122061033,0.9559663658787823,0.031149319766917354 +2350.4402201100547,0.9682303583583818,0.031152609206893868 +2352.056028014007,0.9395018724094369,0.03115682453980737 +2353.671835917959,0.9970734287610945,0.031161037742664665 +2355.287643821911,0.952278519207529,0.03116524881843251 +2356.903451725863,1.0152403341485716,0.031169457770070692 +2358.5192596298148,0.9862079419175215,0.03117366460053217 +2360.135067533767,0.9948820518897189,0.03117343660366046 +2361.7508754377186,0.9774915210659798,0.031172748129642117 +2363.366683341671,0.9982989205364478,0.0311720596334462 +2364.9824912456224,0.9584888639377841,0.031171371115070585 +2366.598299149575,0.9595930422842665,0.031170001473096735 +2368.2141070535267,1.016649177524302,0.031170950272689193 +2369.8299149574786,0.979917423326178,0.03117267398994923 +2371.4457228614306,0.9721194054156205,0.031174704741396046 +2373.0615307653825,0.9827805328704632,0.031176770708780624 +2374.677338669335,0.9666259377326705,0.031178835647605815 +2376.2931465732863,0.9147648840267601,0.031178648312842117 +2377.9089544772387,1.0073054351709887,0.031176651194426606 +2379.5247623811906,0.9804959381430502,0.03117465394805851 +2381.1405702851425,0.9906041468909597,0.03117265657371324 +2382.7563781890944,0.9681125648426683,0.031170659071366184 +2384.3721860930464,0.9880865790154892,0.031166590130741086 +2385.9879939969987,0.9792706015431966,0.031158189385864607 +2387.60380190095,0.9787395352161598,0.03114991710917397 +2389.2196098049026,0.9794044333745742,0.03114163942927422 +2390.835417708854,0.9561551635274546,0.031133178174624507 +2392.4512256128064,0.9741694839421899,0.031125383012468363 +2394.0670335167583,0.970280634960116,0.03112555944535591 +2395.6828414207102,0.9892107781064742,0.03112573554196141 +2397.298649324662,0.9639576321470387,0.031125911302385532 +2398.914457228614,0.9553663703184831,0.03112608672672887 +2400.5302651325665,0.9794211341671744,0.031126261815091916 +2402.146073036518,0.9506702580395753,0.031124256798908803 +2403.7618809404703,0.9684446485743862,0.031121945406089424 +2405.377688844422,0.9735629960549965,0.031119633835265555 +2406.993496748374,0.9769186280225512,0.031117322086394474 +2408.609304652326,0.9674952630840041,0.03111501015943347 +2410.225112556278,0.9969719555272086,0.031110232935115823 +2411.8409204602303,0.9601382231395127,0.031103360108806447 +2413.456728364182,0.9779800056139849,0.031096484973597547 +2415.072536268134,0.935652997339206,0.031089561067432717 +2416.688344172086,0.9698778765353432,0.031081646238940476 +2418.304152076038,0.9826440235988647,0.031076885080261178 +2419.91995997999,0.9671585647154765,0.031076134218138284 +2421.535767883942,0.9347938779686779,0.031073741502216902 +2423.151575787894,0.9885905836540497,0.03107126129817 +2424.7673836918457,0.9701493375588867,0.03106877908926696 +2426.383191595798,0.9885736441358923,0.03106444640787029 +2427.9989994997495,0.9630609026502602,0.03106447959884983 +2429.614807403702,0.9423635938931881,0.031064500685239367 +2431.230615307654,0.9507153563302515,0.03106477317458796 +2432.8464232116057,0.9638299476760173,0.03106511632276676 +2434.4622311155576,0.9668108931616464,0.031065429296847503 +2436.0780390195096,0.9639854990846577,0.03106159335086528 +2437.693846923462,0.9970796544456683,0.031058098646328837 +2439.3096548274134,0.9554885793255773,0.03105459947228357 +2440.9254627313658,0.9494779321916894,0.03105268457622863 +2442.5412706353177,0.930657013813178,0.03105195161316611 +2444.1570785392696,0.9918248362090926,0.031047979590068803 +2445.7728864432215,0.9631626379782773,0.031044616312271373 +2447.3886943471734,0.9726600440129423,0.031042881569649353 +2449.004502251126,0.9738263978039916,0.031041146685105728 +2450.6203101550773,0.9438291052741579,0.031039411658605638 +2452.2361180590296,0.9399991021168173,0.03103802709807518 +2453.851925962981,0.9702779277889232,0.031036909813134346 +2455.4677338669335,0.9434962047957791,0.03103599330172419 +2457.0835417708854,0.9449167579061257,0.031035569919785067 +2458.6993496748373,0.9834543078865435,0.031035146447877603 +2460.3151575787892,0.9897900971881524,0.031034223886018914 +2461.930965482741,0.9713406713606586,0.031032217328283436 +2463.5467733866935,0.9534440221250076,0.031030210640744644 +2465.162581290645,0.9476850480385839,0.031028238760542882 +2466.7783891945974,0.9635998094527216,0.031026579056916834 +2468.3941970985493,0.972816712190982,0.031025000079751727 +2470.010005002501,0.9813526093410941,0.031023964738426963 +2471.625812906453,0.965272844742758,0.031023964738426963 +2473.241620810405,0.9464880426199254,0.031023964738426963 +2474.8574287143574,0.961088788768174,0.031023964738426963 +2476.473236618309,0.941920676862243,0.031023964738426963 +2478.0890445222612,0.9316023893138395,0.031024340720687837 +2479.7048524262127,0.9912900729886284,0.031024752740990248 +2481.320660330165,0.9508272034448527,0.03102516474403732 +2482.936468234117,0.9681825456634776,0.031025576729831236 +2484.552276138069,0.9793953085283004,0.03102598869837416 +2486.168084042021,0.9522581376031195,0.031025828661146195 +2487.7838919459728,0.9657375789214675,0.03102541668590196 +2489.399699849925,0.9905614839320874,0.03102500469340589 +2491.0155077538766,0.9390597998780094,0.03102481093738546 +2492.631315657829,0.930094533094589,0.03102474617645734 +2494.247123561781,0.9419761921399449,0.031024534295481566 +2495.862931465733,0.97003661943675,0.03102416042039488 +2497.4787393696847,0.9851419198038405,0.03102378648674283 +2499.0945472736366,0.9464565053779116,0.031023412494514055 +2500.710355177589,0.9920187671138437,0.031023038443697214 +2502.3261630815405,0.9735587243708077,0.031023036146456465 +2503.941970985493,0.9885799937072449,0.03102410468677511 +2505.5577788894448,0.9737183082609314,0.031025053308179035 +2507.1735867933967,0.9621892146040241,0.03102577451646031 +2508.7893946973486,0.98836993879248,0.031026495671861654 +2510.4052026013005,0.978783394445228,0.031026578797248978 +2512.021010505253,0.9789516395479074,0.031024148050208197 +2513.6368184092044,0.9864987500490721,0.031021717024262527 +2515.2526263131567,0.9702971540605256,0.03101934002616636 +2516.868434217108,0.9866548566628314,0.031017255833707014 +2518.4842421210606,1.0358957126686363,0.03101517143613786 +2520.1000500250125,0.9706487490470547,0.031013631525885394 +2521.7158579289644,0.948231993446338,0.031007711237842062 +2523.3316658329163,0.998757197929142,0.03100178855929998 +2524.9474737368682,0.9182456935411287,0.03099586348804241 +2526.5632816408206,0.9639366633584648,0.03099094580662594 +2528.179089544772,0.9389721178329168,0.03098481877005456 +2529.7948974487244,0.9484178546282688,0.030977872383973943 +2531.4107053526764,0.9556538026434134,0.030970620240140335 +2533.0265132566283,0.9423811999051056,0.030963321944703748 +2534.64232116058,0.9964586307859193,0.030956021680847996 +2536.258129064532,0.9753394256576428,0.03094803025783793 +2537.8739369684845,0.9625046957813477,0.03094036138957086 +2539.489744872436,0.9739142265172307,0.030932689733462446 +2541.1055527763883,0.9250650124970397,0.030924537836257263 +2542.72136068034,0.9531599431427312,0.03091616233598883 +2544.337168584292,0.9497888313430406,0.030907783506519102 +2545.952976488244,0.9947048131618297,0.030899607369663122 +2547.568784392196,0.9555832944571797,0.030891571411002714 +2549.184592296148,0.9782420347937445,0.03088353238406886 +2550.8004002001,0.9737539011654321,0.03087549028534429 +2552.416208104052,0.9189973235135123,0.030867445111305045 +2554.0320160080037,0.9360360996314534,0.030860373521654695 +2555.647823911956,0.9457028412877165,0.030853352141906244 +2557.263631815908,0.9319820364978947,0.03084632756842494 +2558.87943971986,0.9574046436082172,0.03083929979769355 +2560.495247623812,0.9467125899311479,0.030832268826188048 +2562.1110555277637,0.969193665846006,0.03082448320957074 +2563.726863431716,0.9457827102753283,0.030816416409088665 +2565.3426713356675,0.9568821429547939,0.03080842092857961 +2566.95847923962,0.9188374887389886,0.030800699009596998 +2568.5742871435714,0.9580481800746978,0.03079297424449421 +2570.1900950475238,0.9474988612205035,0.03078366622158303 +2571.8059029514757,0.9562151505881963,0.03077284612597228 +2573.4217108554276,0.932574835425139,0.03076202220413869 +2575.03751875938,0.9494098246932314,0.030751308784535157 +2576.6533266633314,0.9675405543571984,0.030745402390265457 +2578.269134567284,0.9290838429528668,0.03073710400749031 +2579.8849424712353,0.9624512053654276,0.03072303867307687 +2581.5007503751876,0.9406331092646142,0.030709613712630958 +2583.1165582791396,0.9427615397957172,0.030696225687415778 +2584.7323661830915,0.9108529405247666,0.03068282444384132 +2586.3481740870434,0.9412048514730478,0.030668710931965278 +2587.9639819909953,0.9117026854337672,0.03064952738688349 +2589.5797898949477,0.908489817584225,0.03063031482953285 +2591.195597798899,0.9478562424598674,0.030612375813783815 +2592.8114057028515,0.9381459524560231,0.030594865573129425 +2594.4272136068034,0.945384266507835,0.030577326137566647 +2596.0430215107554,0.9244715602155547,0.030589728934925935 +2597.6588294147073,0.9577553245859688,0.030607455904860033 +2599.274637318659,0.8910512611061039,0.030625153064886623 +2600.8904452226116,0.9166943065991455,0.030643208623671175 +2602.506253126563,0.9666786929653163,0.030661550738093186 +2604.1220610305154,0.9303948196311443,0.03067105865436242 +2605.737868934467,0.9487248301850983,0.03067509536551833 +2607.3536768384192,0.9353406101208709,0.030678557267418163 +2608.969484742371,0.947240231623822,0.030682018174470062 +2610.585292646323,0.9315511720674288,0.03068471305103787 +2612.201100550275,0.9400344857852919,0.030687060890120892 +2613.816908454227,0.9443826055421555,0.030690786547182623 +2615.4327163581793,0.9261927589185508,0.03069441469127145 +2617.0485242621307,0.941582172277862,0.03069778177210232 +2618.664332166083,0.9424601898790893,0.030701145577976457 +2620.280140070035,0.9313240769613204,0.03070317836064593 +2621.895947973987,0.9321666686865899,0.030699716685227602 +2623.511755877939,0.9585100900540342,0.03069625427346957 +2625.127563781891,0.933651427618568,0.03069231814948195 +2626.743371685843,0.9267089322527313,0.03068286111217669 +2628.3591795897946,0.9268807876442188,0.030673399386996456 +2629.974987493747,0.9438438008093234,0.030663526706793818 +2631.5907953976985,0.8891205652742696,0.03065329504098404 +2633.206603301651,0.9221075012486919,0.030643052880326475 +2634.8224112056027,0.9102302828005765,0.030632805680518505 +2636.4382191095547,0.9388040138241959,0.03062255343411499 +2638.0540270135066,0.9271126483432753,0.030613876701493698 +2639.6698349174585,0.9562151350801087,0.03060567853148037 +2641.285642821411,0.9462556728506806,0.03059747485857743 +2642.9014507253623,0.9407956031265036,0.030589265675539424 +2644.5172586293147,0.9257080207050866,0.030581050975101984 +2646.1330665332666,0.9378469711559827,0.03057195070955598 +2647.7488744372185,0.967628343326519,0.030562017882197354 +2649.3646823411705,0.9635036589659656,0.030552080294554404 +2650.9804902451224,0.9389065828264248,0.0305421379397765 +2652.5962981490748,0.9121714351371272,0.03053219081099655 +2654.212106053026,0.942529221485363,0.030522238901330982 +2655.8279139569786,0.906561507297118,0.030512282203879647 +2657.4437218609305,0.9608826027196403,0.030502320711725792 +2659.0595297648824,0.9478496155988653,0.030492354417935998 +2660.6753376688343,0.9382720463012825,0.0304825321898261 +2662.2911455727863,0.9474701501944192,0.030472912707042266 +2663.9069534767386,0.9050675188466772,0.030463288740366672 +2665.52276138069,0.9391722838589543,0.030453660283523296 +2667.1385692846425,0.8648360047534939,0.030444027330221446 +2668.754377188594,0.9111910418746877,0.030434389874155757 +2670.3701850925463,0.9429490226012565,0.030424747909006063 +2671.985992996498,0.9417378981701513,0.03041510142843746 +2673.60180090045,0.9623464441361499,0.03040545042610015 +2675.217608804402,0.9327545299656815,0.03039550585737249 +2676.833416708354,0.9223993100665435,0.03038369832882879 +2678.4492246123064,0.9417229739327674,0.030371884014540836 +2680.065032516258,0.9292147513962633,0.03036006290279593 +2681.68084042021,0.9276537922398398,0.030348234981847643 +2683.296648324162,0.8939857810089077,0.03033640023991567 +2684.912456228114,0.9192370802660348,0.03032455866518573 +2686.528264132066,0.9100798745611236,0.030312370554575016 +2688.144072036018,0.9170438768207098,0.030299544369050253 +2689.7598799399702,0.9099076986507159,0.030285981454720026 +2691.3756878439217,0.8944419739820665,0.030272717378752114 +2692.991495747874,0.9072136943464361,0.030259499662550135 +2694.6073036518255,0.9434217710421561,0.030246274857651863 +2696.223111555778,0.9191446393141698,0.030233190166057744 +2697.83891945973,0.8949510741280177,0.030220570427955014 +2699.4547273636817,0.9502113141813533,0.030207943694874485 +2701.0705352676337,0.9061851887800576,0.03019243922673225 +2702.6863431715856,0.9027312856314156,0.030175460562528896 +2704.302151075538,0.9000142126194728,0.030158436662429428 +2705.9179589794894,0.8905508462564493,0.030139368534349713 +2707.533766883442,0.8990944562304519,0.030119973183748157 +2709.1495747873937,0.9011012135412975,0.03010056298247571 +2710.7653826913456,0.9078493500621857,0.030081137894133643 +2712.3811905952975,0.8643516807747059,0.0300616978821713 +2713.9969984992495,0.8980402673346631,0.030039426035690764 +2715.612806403202,0.8884142626557336,0.03001422995421158 +2717.2286143071533,0.8936941494971554,0.029985394406714914 +2718.8444222111057,0.9094158963704829,0.02995652922764241 +2720.4602301150576,0.8865015182623559,0.029927010378160476 +2722.0760380190095,0.8923653242576521,0.02989274667062682 +2723.6918459229614,0.9323496769406056,0.029856190431444215 +2725.3076538269133,0.8816671763359403,0.02981951953871652 +2726.9234617308653,0.8858202802389455,0.029782506349125777 +2728.539269634817,0.8767855651048324,0.02974544701644218 +2730.155077538769,0.8731906229526555,0.029697762004567477 +2731.7708854427215,0.8779865707396947,0.029630683031793878 +2733.3866933466734,0.8775103406530148,0.029563399787975182 +2735.0025012506253,0.8735607842366274,0.02949590942920088 +2736.618309154577,0.8526409240206358,0.029427840888287937 +2738.234117058529,0.8727596976983217,0.029361732181282647 +2739.849924962481,0.8584138423833646,0.029308128531063828 +2741.465732866433,0.8641223574995305,0.029254751297904395 +2743.0815407703853,0.8539055971090677,0.02920129826292568 +2744.6973486743373,0.8549920679452689,0.029147734207788663 +2746.313156578289,0.8188222903634376,0.029094361454888105 +2747.928964482241,0.8395623005590795,0.029129349542231182 +2749.544772386193,0.8448197008080306,0.02917065829907175 +2751.160580290145,0.8206762349464014,0.029202296172560992 +2752.776388194097,0.8473541221274623,0.02922979550307363 +2754.3921960980488,0.8538283184837965,0.029256747658528728 +2756.008004002001,0.8275313574227955,0.029240210305095944 +2757.623811905953,0.8572036405056604,0.029205783776987248 +2759.239619809905,0.8440185239356803,0.029171263428653917 +2760.855427713857,0.834623923019763,0.029136849558062464 +2762.471235617809,0.803458322657307,0.029102520529230853 +2764.0870435217607,0.862894591650605,0.029064318571961213 +2765.7028514257127,0.8234671066516727,0.029016138473440964 +2767.3186593296646,0.8394258591841238,0.028960050409787323 +2768.934467233617,0.8149064224505296,0.028903801676491384 +2770.550275137569,0.8325308513340374,0.028846341100884743 +2772.166083041521,0.8129012840368275,0.0287853931420034 +2773.7818909454727,0.8076280125863455,0.028720861583140786 +2775.3976988494246,0.7989230889812934,0.028660353365002823 +2777.0135067533765,0.7912584032604661,0.02861261261970741 +2778.6293146573285,0.8602970117847425,0.028564773389344465 +2780.2451225612804,0.8171698520477119,0.028517248855554664 +2781.8609304652327,0.7969015044664693,0.02847466253502149 +2783.4767383691847,0.8304112232890823,0.0284319838609101 +2785.0925462731366,0.8057554195348028,0.02838923478897525 +2786.7083541770885,0.8173219415844509,0.028346764591937385 +2788.3241620810404,0.792003161876115,0.02830420194245436 +2789.9399699849923,0.8206269811727739,0.02825665771719924 +2791.5557778889442,0.7725201373410499,0.028211891066249266 +2793.171585792896,0.7918449249717938,0.028167189843852004 +2794.7873936968485,0.8060098930755403,0.02812240616205433 +2796.4032016008005,0.7971853877907958,0.028077192135659103 +2798.0190095047524,0.8024918839952067,0.028031775697443535 +2799.6348174087043,0.7705979902199631,0.02798623358013376 +2801.250625312656,0.7715361058499811,0.027916597549233157 +2802.866433216608,0.7903474149363869,0.027839700463383098 +2804.48224112056,0.7737089722914883,0.027762528747948302 +2806.098049024512,0.7431784355882773,0.027645339456614463 +2807.7138569284643,0.7403696641821116,0.0275059835150838 +2809.3296648324163,0.7555316342167411,0.027365715988490108 +2810.945472736368,0.7393018570688656,0.027221341737771392 +2812.56128064032,0.7565686098480338,0.02707370027290685 +2814.177088544272,0.7291255572626726,0.02692594769575235 +2815.792896448224,0.716452283628322,0.026781573840944376 +2817.408704352176,0.7120025098586716,0.026636329022060264 +2819.0245122561278,0.7253752183408959,0.026489971109227156 +2820.64032016008,0.6780961776699072,0.026342819896591554 +2822.256128064032,0.6665348995528053,0.026195038909715293 +2823.871935967984,0.6701511114258937,0.026037866352799494 +2825.487743871936,0.6536863138226204,0.025879150189851003 +2827.103551775888,0.6642280838642474,0.02571916607124178 +2828.7193596798397,0.6503683730158876,0.02555788084163316 +2830.3351675837916,0.6249523659127266,0.025395834020861638 +2831.950975487744,0.6336514080949633,0.02523175502858574 +2833.566783391696,0.6267028960029404,0.025065320682818446 +2835.182591295648,0.6328269418537524,0.024905888274556153 +2836.7983991995998,0.6217909265045325,0.024811634164825607 +2838.4142071035517,0.6050571065865529,0.024716984214247742 +2840.0300150075036,0.6257503857731269,0.024614183279660584 +2841.6458229114555,0.6162067352271385,0.02458716139110186 +2843.2616308154074,0.6178961358229904,0.024559965044475753 +2844.87743871936,0.5999011893966352,0.02453259215090215 +2846.4932466233117,0.6268378456831434,0.02455413169219848 +2848.1090545272637,0.5955765161579754,0.024564512994534403 +2849.7248624312156,0.5764167211613198,0.024541030875379524 +2851.3406703351675,0.5872594481177408,0.02455160908899979 +2852.9564782391194,0.6294039832978828,0.024567830726218903 +2854.5722861430713,0.6066311174567468,0.02458241976967556 +2856.1880940470232,0.605954940317036,0.024590392205636392 +2857.8039019509756,0.6008589243236843,0.02454611166951478 +2859.4197098549275,0.5979771743390302,0.02449853011902485 +2861.0355177588795,0.6078489421939884,0.02444693471199157 +2862.6513256628314,0.5749092494342469,0.024391442815539597 +2864.2671335667833,0.5820215687233522,0.02433221817819214 +2865.882941470735,0.5940635605169187,0.024278810962487817 +2867.498749374687,0.5830597601811813,0.02420500789920542 +2869.114557278639,0.5687917382932082,0.024129123961239868 +2870.7303651825914,0.564462957388052,0.024038087827459934 +2872.3461730865433,0.5716476495690535,0.02392912095716208 +2873.9619809904952,0.5866049763043575,0.023885361119162472 +2875.577788894447,0.5695403990432681,0.02387723116443399 +2877.193596798399,0.5779350617345372,0.02386982879255594 +2878.809404702351,0.558801972862949,0.023862303334951332 +2880.425212606303,0.5565715074996914,0.023858117767745234 +2882.041020510255,0.5621048153090253,0.023889901388617026 +2883.656828414207,0.5787416219506708,0.02395565201266149 +2885.272636318159,0.5832572295282771,0.024022141566225307 +2886.888444222111,0.5787078527938266,0.02409311576185706 +2888.504252126063,0.5843321989849063,0.024163853696613596 +2890.120060030015,0.597804273420035,0.024245937029649077 +2891.735867933967,0.5840650861636765,0.024358532922191253 +2893.3516758379187,0.6118624946356819,0.024469999893302244 +2894.9674837418706,0.6019376325611133,0.024580377229770963 +2896.583291645823,0.6010114971237466,0.024690124326734224 +2898.199099549775,0.6120567543089639,0.024798861294280636 +2899.814907453727,0.622578087591056,0.02485693453194075 +2901.4307153576788,0.6245764866747046,0.024918212129803885 +2903.0465232616307,0.624958862961267,0.024979731539845867 +2904.6623311655826,0.6173691789097773,0.025041051888331042 +2906.2781390695345,0.6253091162123126,0.02511805512485629 +2907.893946973487,0.656732486787429,0.02510141112274561 +2909.509754877439,0.6422763759756708,0.0250563754627943 +2911.1255627813907,0.6388777746431804,0.02508579497522572 +2912.7413706853426,0.6087528148551773,0.025145878470782795 +2914.3571785892946,0.6301057364683752,0.025203474237652585 +2915.9729864932465,0.6416526323177213,0.02516568363451961 +2917.5887943971984,0.6410354615909056,0.02504972943463777 +2919.2046023011503,0.6260036722789053,0.024924074862759917 +2920.8204102051027,0.6224943018887337,0.02476029777653555 +2922.4362181090546,0.6416191498843837,0.024558450385421256 +2924.0520260130065,0.5962411306215675,0.02438623311363918 +2925.6678339169584,0.6108014126257805,0.02428699223264541 +2927.2836418209104,0.6021062135987275,0.024182541479660487 +2928.8994497248623,0.6137508798214151,0.02407215044868772 +2930.515257628814,0.5958470890116417,0.02395498626154089 +2932.131065532766,0.6134739379700794,0.023872039811330494 +2933.7468734367185,0.6226481796114395,0.02407347711503391 +2935.3626813406704,0.6290749382505857,0.024271526255666146 +2936.9784892446223,0.6308900366681705,0.02446662801207232 +2938.5942971485742,0.676218026406219,0.024658681835845797 +2940.210105052526,0.6336415955489919,0.0248444611754613 +2941.825912956478,0.662276084066499,0.02501937583087721 +2943.44172086043,0.6412482244873801,0.025192729785818536 +2945.057528764382,0.6748426906854322,0.025361847011400776 +2946.6733366683343,0.6571755602920062,0.02549138248450212 +2948.289144572286,0.6511538086768518,0.025618461615510287 +2949.904952476238,0.6611554977548281,0.025661701336362776 +2951.52076038019,0.6723635377386425,0.025665076369068 +2953.136568284142,0.6883628438461177,0.025668270605462964 +2954.752376188094,0.657949393865879,0.025671464123142616 +2956.368184092046,0.6641379866611633,0.02567238920072139 +2957.9839919959977,0.6612436418196662,0.02567979713258361 +2959.59979989995,0.6987301839076364,0.025694894370093917 +2961.215607803902,0.6951641906702478,0.02570735740469199 +2962.831415707854,0.7109766838142066,0.02571892383458075 +2964.447223611806,0.6741023987895739,0.025730446986874194 +2966.0630315157578,0.6711163378738383,0.02572156832836621 +2967.6788394197097,0.6653221023232041,0.02573230069668975 +2969.2946473236616,0.689810357003848,0.025742218888446092 +2970.9104552276135,0.6940122300296729,0.025718159548604475 +2972.526263131566,0.6598924834736061,0.025667197969744253 +2974.142071035518,0.6610726951230341,0.025613035907043183 +2975.7578789394697,0.6476589652137249,0.025506474929277375 +2977.3736868434216,0.6640852623316744,0.02539980729478737 +2978.9894947473736,0.6561238738541049,0.025292394178182843 +2980.6053026513255,0.646820652204325,0.02518452318273901 +2982.2211105552774,0.6178656710886394,0.025076388941209702 +2983.8369184592293,0.6082355081492838,0.02495718907984253 +2985.4527263631817,0.6569624510630346,0.024834900646827366 +2987.0685342671336,0.6089122872229839,0.024711814455336868 +2988.6843421710855,0.6476833108416069,0.02458791431120828 +2990.3001500750374,0.5848217548931376,0.024463261292147855 +2991.9159579789894,0.6340449938825033,0.02435786139718936 +2993.5317658829413,0.6030012583011509,0.024264745219255944 +2995.147573786893,0.5625657249070946,0.024170626044392827 +2996.7633816908456,0.5727480544987766,0.024075486409195587 +2998.3791895947975,0.5780625224465077,0.02397930811632567 +2999.9949974987494,0.5808640428202849,0.023859723883479875 +3001.6108054027013,0.5750614025852744,0.023708370804123247 +3003.2266133066532,0.560624203092731,0.0235560162769701 +3004.842421210605,0.5327671316790444,0.02340262111640714 +3006.458229114557,0.548893264426843,0.023355601423743606 +3008.074037018509,0.5426899030114688,0.023312238477863664 +3009.6898449224614,0.5346737385561353,0.023228123647762163 +3011.3056528264133,0.538972694261771,0.023150689494073333 +3012.921460730365,0.5285310303660069,0.023074105938137877 +3014.537268634317,0.534407209440114,0.02299653158749878 +3016.153076538269,0.5154128344956118,0.022935171390332888 +3017.768884442221,0.519254353943501,0.022834471764928466 +3019.384692346173,0.5244031227044811,0.022728305272516684 +3021.000500250125,0.5190220433935709,0.02267688083597865 +3022.616308154077,0.507217324495605,0.0226570840426054 +3024.232116058029,0.5243786853498721,0.02263302447985068 +3025.847923961981,0.5083097631066849,0.02245656228358639 +3027.463731865933,0.5330918152348033,0.022201981738094862 +3029.079539769885,0.5173775533204377,0.02191739104868181 +3030.6953476738367,0.48569345549083504,0.021586380917258913 +3032.3111555777887,0.48157393579330265,0.021193538866992254 +3033.9269634817406,0.4993311686434113,0.020981710736973237 +3035.542771385693,0.4975586072512416,0.020968099357674727 +3037.158579289645,0.48361067237429634,0.020902958821971185 +3038.774387193597,0.5015065462726382,0.020835503906832937 +3040.3901950975487,0.4864054042287946,0.020763625765310954 +3042.0060030015006,0.48984955820441284,0.02084921208705761 +3043.6218109054525,0.5098337975783032,0.021302016933163637 +3045.2376188094045,0.5017850749976702,0.02170785985162061 +3046.8534267133564,0.5398070976320561,0.02208209115687918 +3048.4692346173088,0.5526517047569308,0.022429395212909722 +3050.0850425212607,0.5366012545586973,0.022750014158470208 +3051.7008504252126,0.5795362231982716,0.02299918096050768 +3053.3166583291645,0.5661314772961746,0.023240758447203996 +3054.9324662331164,0.560631670502021,0.023475519994100913 +3056.5482741370683,0.5688913786080821,0.02375602840916108 +3058.1640820410203,0.5894529580010194,0.02403274777249669 +3059.779889944972,0.593737155228054,0.024103690897522033 +3061.3956978489246,0.6077832119701599,0.02414542013584647 +3063.0115057528765,0.6018251225573105,0.024186892259215415 +3064.6273136568284,0.6227666035582742,0.024226989078007695 +3066.2431215607803,0.6235371322389166,0.024265390232435506 +3067.8589294647322,0.6233200569021357,0.024328665892072134 +3069.474737368684,0.6356520098728105,0.024406302338988495 +3071.090545272636,0.6127760939705857,0.024483232683042727 +3072.7063531765884,0.6306402659264312,0.024559464527924294 +3074.3221610805404,0.6279837266657061,0.02463500517541381 +3075.9379689844923,0.6569270477285201,0.02483084798643278 +3077.553776888444,0.6584832457526245,0.025187808834421063 +3079.169584792396,0.665573487131083,0.02553356018278408 +3080.785392696348,0.688489066855909,0.02586934556506254 +3082.4012006003,0.7083584683283335,0.026196187127299268 +3084.017008504252,0.7390323785189787,0.026467711315784202 +3085.6328164082042,0.7279086310055364,0.0265440265107393 +3087.248624312156,0.7275089601242746,0.026619338102280822 +3088.864432216108,0.763249879643511,0.026694106796184582 +3090.48024012006,0.7188324193281654,0.026757558790529507 +3092.096048024012,0.7237736357070748,0.02679517123802442 +3093.711855927964,0.7187650089469216,0.026846580190423318 +3095.3276638319157,0.7833302546861758,0.02689021500739537 +3096.9434717358677,0.7342272641635085,0.02690276866730641 +3098.55927963982,0.7441844696707375,0.026915292792008716 +3100.175087543772,0.7353753430948837,0.026926452634688694 +3101.790895447724,0.7835587513404398,0.027219100240314157 +3103.406703351676,0.7796777349352706,0.02758629823477747 +3105.0225112556277,0.775675681527293,0.02793646232262989 +3106.6383191595796,0.8195849134982649,0.028266159658048892 +3108.2541270635315,0.851863939214412,0.02858285936466013 +3109.8699349674835,0.7999555847933747,0.028745475978251223 +3111.485742871436,0.8236646471039669,0.028782866020000943 +3113.1015507753878,0.8557783893094898,0.02881985391885129 +3114.7173586793397,0.8177571798216577,0.028856674884515654 +3116.3331665832916,0.8234997640984669,0.028891838431226256 +3117.9489744872435,0.8598573835235276,0.02894480526603426 +3119.5647823911954,0.8425718707255087,0.02903506382955246 +3121.1805902951473,0.8209395222656954,0.029124343463552024 +3122.7963981990993,0.8531294750331403,0.029212674492279763 +3124.4122061030516,0.8698591272207034,0.02930008570549681 +3126.0280140070035,0.8764601273310358,0.029382562550086314 +3127.6438219109555,0.8670691379308114,0.029448433646578218 +3129.2596298149074,0.8527250005126564,0.02951373955655308 +3130.8754377188593,0.8648680154712373,0.029578493291911825 +3132.491245622811,0.8720090662796338,0.029642707371079033 +3134.107053526763,0.8734729226404365,0.02970639384480965 +3135.722861430715,0.8689974631397042,0.029733841824749963 +3137.3386693346674,0.8783904932269742,0.029755411590077326 +3138.9544772386193,0.8901655528300536,0.029776881262548814 +3140.5702851425713,0.8828766928674561,0.029797482390162194 +3142.186093046523,0.8725496953199025,0.029816573303837104 +3143.801900950475,0.8863193415622447,0.02982219755121386 +3145.417708854427,0.8744372758733492,0.02982111386443838 +3147.033516758379,0.8920134559525159,0.029819743953849946 +3148.649324662331,0.9053602654310793,0.029818357523201295 +3150.2651325662832,0.8840498916174088,0.029816894780994994 +3151.880940470235,0.9001549259956771,0.029812404220233412 +3153.496748374187,0.9522548136214715,0.02980461826133794 +3155.112556278139,0.8761052173982045,0.029796798534337244 +3156.728364182091,0.9148481313675569,0.029788630520001455 +3158.344172086043,0.8892892635004785,0.02978045372273367 +3159.9599799899947,0.8916932624086207,0.0297715332841304 +3161.575787893947,0.8938949466239805,0.029756265400047305 +3163.191595797899,0.8918178159904693,0.029740884886161747 +3164.807403701851,0.8733113974262027,0.029725491374192555 +3166.423211605803,0.819650064268003,0.029708791827693787 +3168.039019509755,0.8858047742271763,0.029691932235439186 +3169.6548274137067,0.8678672987294278,0.029677019080082054 +3171.2706353176586,0.8865345551369233,0.02966122146484918 +3172.8864432216105,0.8587489294985932,0.029645169848817488 +3174.502251125563,0.8560622253855467,0.02962909979870668 +3176.118059029515,0.8641763743409302,0.029612755909526237 +3177.7338669334667,0.8610835568027685,0.02960245197182816 +3179.3496748374187,0.8723251784090865,0.02959369194386938 +3180.9654827413706,0.9035540271219675,0.029585123217298864 +3182.5812906453225,0.9082272908274234,0.029576674153927708 +3184.1970985492744,0.842350058063494,0.029568195921447566 +3185.8129064532263,0.8517063361792463,0.02955589345540069 +3187.4287143571787,0.8643257434019088,0.029540806478908544 +3189.0445222611306,0.8664956806925563,0.029525699851640955 +3190.6603301650825,0.881432978565836,0.029510421402818485 +3192.2761380690345,0.8583780897328829,0.029494902579333918 +3193.8919459729864,0.854764794991188,0.029478726512719985 +3195.5077538769383,0.9020515993001329,0.029461635429419986 +3197.12356178089,0.8690185703776406,0.0294450377604485 +3198.739369684842,0.8849862275651859,0.029428421918930622 +3200.3551775887945,0.8907691944582597,0.029411705557075556 +3201.9709854927464,0.870704961942018,0.029394575072220836 +3203.5867933966983,0.8756665763761279,0.029376802355837846 +3205.2026013006503,0.8581493567190033,0.02935919911865641 +3206.818409204602,0.8692148171432996,0.029342892204842284 +3208.434217108554,0.8888114288177601,0.029326569167139944 +3210.050025012506,0.8617452198005954,0.029310253275534458 +3211.665832916458,0.8536947024219834,0.02929407657279455 +3213.2816408204103,0.841264407066218,0.029277837734013185 +3214.897448724362,0.8528663604869473,0.029261584075099913 +3216.513256628314,0.8589465269187886,0.029245669394592798 +3218.129064532266,0.8790434696709243,0.029229764428090707 +3219.744872436218,0.8758865185104572,0.029214064682950958 +3221.36068034017,0.8650422058746184,0.029198442130817168 +3222.976488244122,0.8647420127712924,0.029182805168555703 +3224.5922961480737,0.8412354058276014,0.02916715375931304 +3226.208104052026,0.8674148912781009,0.0291517718043066 +3227.823911955978,0.8692638153270034,0.029136976797491835 +3229.43971985993,0.8331907719751283,0.029122698836726305 +3231.055527763882,0.8644221729430959,0.0291009439721144 +3232.671335667834,0.8360977073620472,0.029075191965803375 +3234.2871435717857,0.8304691284137243,0.029049399331915422 +3235.9029514757376,0.8423844779379515,0.02902223766549064 +3237.51875937969,0.859169398362617,0.0289918389907835 +3239.134567283642,0.8395365619761332,0.028961398033758686 +3240.750375187594,0.8660168786926478,0.02893091460816078 +3242.3661830915457,0.850181833413086,0.028900388526352364 +3243.9819909954977,0.8649013077878972,0.02886992505818265 +3245.5977988994496,0.828345461212984,0.02884110047571752 +3247.2136068034015,0.8485568679514772,0.02881174517038823 +3248.8294147073534,0.8235360188826744,0.028782344521883725 +3250.445222611306,0.8712081069192614,0.02875289831943694 +3252.0610305152577,0.8210830466825232,0.0287234063506429 +3253.6768384192096,0.831989431100859,0.02869386840144083 +3255.2926463231615,0.8495441333912934,0.028663014191252494 +3256.9084542271135,0.8243771117592872,0.028626356576479176 +3258.5242621310654,0.8502129673336061,0.028589627529630554 +3260.1400700350173,0.820042179118783,0.028553336193281487 +3261.755877938969,0.8194576305123396,0.028522352743656842 +3263.3716858429216,0.8246634070735811,0.028491317996064254 +3264.9874937468735,0.8172670831635267,0.028460231694861338 +3266.6033016508254,0.8113162018850347,0.02843887674325494 +3268.2191095547773,0.7729117005877908,0.028417573705168283 +3269.8349174587293,0.8180855969855646,0.028396246292565257 +3271.450725362681,0.8027816796435957,0.028376315212903215 +3273.066533266633,0.7926304285586632,0.02835652459435683 +3274.682341170585,0.8297944626553686,0.02833671287191699 +3276.2981490745374,0.8037781891714272,0.02831815532449316 +3277.9139569784893,0.809378853466459,0.028299891562477628 +3279.529764882441,0.790911927468691,0.02828160977378283 +3281.145572786393,0.8442940805360359,0.028264156448520046 +3282.761380690345,0.7706590817328501,0.028247034436747524 +3284.377188594297,0.7932233791173545,0.028229896537302193 +3285.992996498249,0.7805547070875564,0.02821323324866503 +3287.608804402201,0.7895133856016112,0.028196862827358615 +3289.224612306153,0.8191674219807659,0.028180477843579698 +3290.840420210105,0.8135426181693732,0.02816553516005883 +3292.456228114057,0.7862326982077644,0.028151925480456398 +3294.072036018009,0.7660043726904698,0.028138305712794427 +3295.687843921961,0.8136742406165015,0.028125017263660908 +3297.3036518259128,0.785776750591336,0.028112180125966432 +3298.9194597298647,0.7706528421329357,0.02809933399389581 +3300.5352676338166,0.7995146021993812,0.02808687822016074 +3302.151075537769,0.7848388998354539,0.028075220697791572 +3303.766883441721,0.7794276767600319,0.028063013647547642 +3305.382691345673,0.7909215345852494,0.028050590848349488 +3306.9984992496247,0.775977508468919,0.028039083177250426 +3308.6143071535766,0.7707457722723515,0.028027569389517053 +3310.2301150575286,0.8119771464927994,0.02801622178702399 +3311.8459229614805,0.7845133092080875,0.028006222481377078 +3313.4617308654324,0.8044040947145334,0.027996939298631403 +3315.077538769385,0.792746739654804,0.02798770953500687 +3316.6933466733367,0.7761429415264929,0.02797962926279847 +3318.3091545772886,0.8063045730951378,0.027971545403045694 +3319.9249624812405,0.7913554063500452,0.027963457950965817 +3321.5407703851924,0.7674373411875745,0.027956910240356753 +3323.1565782891444,0.7808077804058622,0.0279504353576097 +3324.7723861930963,0.7466603168804955,0.02794395816775452 +3326.3881940970487,0.796542238450624,0.02793887055135573 +3328.0040020010006,0.8078357577949661,0.02793400978218455 +3329.6198099049525,0.7829933044276327,0.027929147711740872 +3331.2356178089044,0.7745787893250815,0.027923664403731098 +3332.8514257128563,0.7788599372789857,0.02791798862755806 +3334.4672336168082,0.7821697146786453,0.027912311075512983 +3336.08304152076,0.7915717838759112,0.027906903695988347 +3337.698849424712,0.805269725894639,0.027901628518849683 +3339.3146573286645,0.783129324894316,0.02789635180632529 +3340.9304652326164,0.7497901702442756,0.02789130739632679 +3342.5462731365683,0.7729580150556455,0.027886433864041743 +3344.16208104052,0.790146338248875,0.027881559020204092 +3345.777888944472,0.7905713305181037,0.027877074162125565 +3347.393696848424,0.8055157630306985,0.02787300978282714 +3349.009504752376,0.7499857160469114,0.027868944490700386 +3350.625312656328,0.7974712333993302,0.027865193039551355 +3352.2411205602803,0.7693004372078982,0.027861939473613574 +3353.856928464232,0.7937715934409547,0.02785868532239246 +3355.472736368184,0.8067196894563498,0.027855549625547513 +3357.088544272136,0.7844399052123522,0.027852701268960042 +3358.704352176088,0.7332059838031753,0.02784985246357779 +3360.32016008004,0.759878667252687,0.027847003209188557 +3361.9359679839918,0.7558486142638935,0.027844153505579963 +3363.5517758879437,0.7688336174097657,0.02783923912687731 +3365.167583791896,0.7528423148694833,0.027834440715390003 +3366.783391695848,0.7747946628814365,0.027830736642542906 +3368.3991995998,0.7828427089387807,0.02782703198180986 +3370.015007503752,0.7992896005142376,0.02782333430008385 +3371.6308154077037,0.7483448450201956,0.02782205654202137 +3373.2466233116556,0.7939529651666627,0.02782124175035347 +3374.8624312156076,0.7874335762787377,0.02782042692192356 +3376.4782391195595,0.752558748449664,0.027820357546287682 +3378.094047023512,0.7994319013159314,0.027820357546287682 +3379.7098549274638,0.7560401440212202,0.027820357546287682 +3381.3256628314157,0.7839229813961629,0.0278200232781246 +3382.9414707353676,0.7570734329328551,0.02781961584101534 +3384.5572786393195,0.7771331796265861,0.027819208394713107 +3386.1730865432714,0.7784680434151797,0.02781909675534461 +3387.7888944472234,0.7566730875003554,0.02781909675534461 +3389.4047023511753,0.772312930755797,0.02781909675534461 +3391.0205102551276,0.789142076441221,0.02781909675534461 +3392.6363181590796,0.758633052148229,0.02781909675534461 +3394.2521260630315,0.7535349393099966,0.02781909675534461 +3395.8679339669834,0.8026925554863177,0.02781909675534461 +3397.4837418709353,0.7957221471350442,0.02781909675534461 +3399.0995497748872,0.8050924082793195,0.02781909675534461 +3400.715357678839,0.7525441726215576,0.02781963791601686 +3402.3311655827915,0.7684641613777456,0.02782086019827409 +3403.9469734867434,0.7551249571439925,0.027822082397811553 +3405.5627813906954,0.7751554352969442,0.02782330451464604 +3407.1785892946473,0.7703336391287652,0.027824526548794342 +3408.794397198599,0.766934333247937,0.027825748500273233 +3410.410205102551,0.7909730829353413,0.027826866973699946 +3412.026013006503,0.7846507619940039,0.027827681511669273 +3413.641820910455,0.7720855816188656,0.027828496012915892 +3415.2576288144073,0.7892144037533955,0.0278295052626696 +3416.8734367183592,0.7758605962228226,0.027831541241437337 +3418.489244622311,0.7634469175292035,0.02783357699083516 +3420.105052526263,0.7663206730191274,0.027835638977494057 +3421.720860430215,0.7702325274960033,0.027837110786224743 +3423.336668334167,0.7738549383646495,0.027837476179068753 +3424.952476238119,0.7604771979680841,0.02783784080011565 +3426.5682841420708,0.7703472515114592,0.027841363526479652 +3428.184092046023,0.7663962676482226,0.02784497976218754 +3429.799899949975,0.7717666064132115,0.027849111670012673 +3431.415707853927,0.7488624307152812,0.027854802246472597 +3433.031515757879,0.7716604149562685,0.027860491034814625 +3434.647323661831,0.7945666411698924,0.027866178036723293 +3436.2631315657827,0.7723554585687051,0.027873132817677726 +3437.8789394697346,0.750604987952322,0.02788043925112744 +3439.4947473736866,0.771893109354552,0.0278877427412303 +3441.110555277639,0.804103352828824,0.027898387454187858 +3442.726363181591,0.7959667143210983,0.0279105462753345 +3444.3421710855428,0.7964791800712967,0.027922696961111625 +3445.9579789894947,0.7864991278329719,0.02793507941532289 +3447.5737868934466,0.7832526997309907,0.027947618056705797 +3449.1895947973985,0.7855143330865585,0.027960148064304684 +3450.8054027013504,0.769943307938314,0.027973876996915628 +3452.4212106053023,0.7868464023124296,0.027988809640911702 +3454.0370185092547,0.777037297302922,0.02800373006872795 +3455.6528264132066,0.7885822673459415,0.028018020577181727 +3457.2686343171586,0.7637464065696635,0.02803187730306818 +3458.8844422211105,0.7883062080736544,0.02804572179138666 +3460.5002501250624,0.7816949469654195,0.028060176010002304 +3462.1160580290143,0.7884304831203688,0.028076002695601097 +3463.7318659329662,0.8272950683780591,0.02809220488045739 +3465.347673836918,0.7802598936740145,0.028109212709325766 +3466.9634817408705,0.7869009490655128,0.028126833101718436 +3468.5792896448224,0.7870741376835262,0.028144436619644227 +3470.1950975487744,0.7888738518554997,0.028161733883308802 +3471.8109054527263,0.8033511089524212,0.028176695717063705 +3473.426713356678,0.7898287431105431,0.028190506589508963 +3475.04252126063,0.8208278147191052,0.028204105555915925 +3476.658329164582,0.7798389367893522,0.028210323869302664 +3478.274137068534,0.7870099272931023,0.028216538893051906 +3479.8899449724863,0.7883662224092036,0.0282227506308951 +3481.5057528764382,0.7895794063537623,0.028225466749782248 +3483.12156078039,0.8104562524136152,0.028227921746182282 +3484.737368684342,0.8062872113268613,0.028230376140098774 +3486.353176588294,0.7597246958671957,0.028231164301009352 +3487.968984492246,0.7891282709673616,0.028231629018145913 +3489.584792396198,0.7478721949277528,0.028232619255714988 +3491.20060030015,0.808389634394801,0.02823292587589462 +3492.816408204102,0.8215282466955895,0.02823292587589462 +3494.432216108054,0.8321085756572312,0.02823292587589462 +3496.048024012006,0.8102020912647176,0.028231893937147475 +3497.663831915958,0.8166839641418775,0.028230302816148103 +3499.27963981991,0.7745917818297894,0.028228711558260604 +3500.8954477238617,0.7915164455703589,0.02821322412868868 +3502.5112556278136,0.7915381910672291,0.028186527788794196 +3504.127063531766,0.7775937239525611,0.02815979276913877 +3505.742871435718,0.8173213926231754,0.02810873397596254 +3507.35867933967,0.7894231269937416,0.02802887501100144 +3508.9744872436218,0.787901584177161,0.02794866591628188 +3510.5902951475737,0.7727987378445688,0.027862320230104803 +3512.2061030515256,0.7715981488114115,0.027765463878333875 +3513.8219109554775,0.7660556476201112,0.027668223037994738 +3515.4377188594294,0.7842775409439617,0.02757261713577244 +3517.053526763382,0.7641921139875314,0.027477077655076655 +3518.6693346673337,0.7582575307258383,0.02738099750918031 +3520.2851425712856,0.7334319977871433,0.027284293610240536 +3521.9009504752376,0.7349250678019181,0.027186682415146258 +3523.5167583791895,0.7623320133003101,0.02708673367050184 +3525.1325662831414,0.7481720226608946,0.02698592140275581 +3526.7483741870933,0.7235013933250655,0.026884910236144522 +3528.364182091045,0.7062825544428932,0.026783300232293496 +3529.9799899949976,0.7448682305186893,0.0266810806127252 +3531.5957978989495,0.6989378853047934,0.026579103614242084 +3533.2116058029014,0.7283605591467625,0.026476515972785407 +3534.8274137068533,0.673144450186467,0.026373295426928456 +3536.4432216108053,0.6883339360889356,0.026269032406683858 +3538.059029514757,0.6960456939284995,0.02616405944838737 +3539.674837418709,0.6698007271438265,0.026058839203771774 +3541.290645322661,0.6708601316549112,0.025954267045742958 +3542.9064532266134,0.6714308241347814,0.025849185977169814 +3544.5222611305653,0.682710861790206,0.025743400730163638 +3546.1380690345172,0.6530897295044001,0.025636570907582534 +3547.753876938469,0.6687139525935807,0.025528463399669334 +3549.369684842421,0.655028965450251,0.025417924864610857 +3550.985492746373,0.6328210926787783,0.02533571982771484 +3552.601300650325,0.6488481817071362,0.02527177394296242 +3554.217108554277,0.6515178080145618,0.025207572007505653 +3555.832916458229,0.6604725594671154,0.025169935739216494 +3557.448724362181,0.6402262769294293,0.02515845769564093 +3559.064532266133,0.6277261934254508,0.02514699684440689 +3560.680340170085,0.6448211047426411,0.025144784119335847 +3562.296148074037,0.656456647882094,0.02515529173370479 +3563.911955977989,0.6481046736852669,0.025165792188192752 +3565.5277638819407,0.6349506640218673,0.025221206393977794 +3567.143571785893,0.6553444487973874,0.025370976387464148 +3568.759379689845,0.6588319563658315,0.025519284744844713 +3570.375187593797,0.6900144592152848,0.025677644928465068 +3571.990995497749,0.6676105407567239,0.025871908671949252 +3573.6068034017007,0.6977058356173835,0.026064204078379984 +3575.2226113056527,0.7091070049603141,0.026254496647476807 +3576.8384192096046,0.6997860046262941,0.02644221180586035 +3578.4542271135565,0.7195072443638489,0.026627811488211587 +3580.070035017509,0.7385533899176574,0.02681132780592919 +3581.685842921461,0.7181743009077125,0.02699191571091238 +3583.3016508254127,0.753386664232772,0.027170319983614497 +3584.9174587293646,0.7629667934520633,0.027346882016465283 +3586.5332666333165,0.7748811540817303,0.027521657169483633 +3588.1490745372685,0.7814808114312107,0.027694698083878484 +3589.7648824412204,0.7753705319269815,0.02786655591125877 +3591.3806903451723,0.7755917092978721,0.028040147105661793 +3592.9964982491247,0.8109133342359565,0.028211991882231002 +3594.6123061530766,0.8246134765155421,0.028382309776319316 +3596.2281140570285,0.8181667890649506,0.028551438592779033 +3597.8439219609804,0.8117685696229786,0.02871920792654079 +3599.4597298649323,0.8439792291417827,0.02888160408005065 +3601.0755377688843,0.859983001432119,0.029017484025424697 +3602.691345672836,0.8189665625174398,0.029140103441174414 +3604.307153576788,0.883743188147468,0.029261935840683578 +3605.9229614807405,0.8659616700780867,0.02935260970790198 +3607.5387693846924,0.8540176841856854,0.02941984138264764 +3609.1545772886443,0.8693279801156756,0.02948669349247876 +3610.770385192596,0.8828347750048552,0.029540213189981842 +3612.386193096548,0.8676197845781963,0.029579238618662376 +3614.0020010005,0.8566939843245838,0.029618180081581548 +3615.617808904452,0.910483023944062,0.029667986876881346 +3617.233616808404,0.9020787398961713,0.02973499687106205 +3618.8494247123563,0.9228121343789362,0.029801783286292596 +3620.465232616308,0.8906502121034447,0.029874760414600257 +3622.08104052026,0.8743501881239746,0.029963266409909615 +3623.696848424212,0.9056399511403727,0.03005138716534131 +3625.312656328164,0.9080813448326301,0.030130899429699577 +3626.928464232116,0.9138528977399157,0.0301759050135459 +3628.544272136068,0.913147966715056,0.030220811806244578 +3630.1600800400197,0.8880471737480189,0.03026441426151821 +3631.775887943972,0.8918115747401983,0.030296952685758483 +3633.391695847924,0.9318331279293642,0.030327376811611205 +3635.007503751876,0.9368140512671109,0.030357691363645918 +3636.623311655828,0.9411840827643253,0.030375554032618098 +3638.2391195597797,0.9379768992432986,0.03039339701241323 +3639.8549274637317,0.9053018780365143,0.03041122035830737 +3641.4707353676836,0.9044351515571837,0.0304213054061024 +3643.0865432716355,0.9494460411156809,0.030430893555821757 +3644.702351175588,0.9248112433848137,0.030440477271502578 +3646.31815907954,0.9064030970476021,0.030449767191431734 +3647.9339669834917,0.9223617565361573,0.030458987640141235 +3649.5497748874436,0.9010188069092558,0.030468203993853884 +3651.1655827913955,0.9370243918999696,0.03047716072161427 +3652.7813906953475,0.953166692384762,0.030486014925243686 +3654.3971985992994,0.9400026215087196,0.030494865357572835 +3656.0130065032517,0.9477350508725015,0.030501715689926205 +3657.6288144072037,0.9149285805135088,0.03050811968649938 +3659.2446223111556,0.9553150320923565,0.030515865983259328 +3660.8604302151075,0.9197057321912607,0.030523422030776497 +3662.4762381190594,0.9777765445896167,0.0305308109586613 +3664.0920460230113,0.9218570994235732,0.030538198088192216 +3665.7078539269633,0.9352633565270602,0.030544831549435485 +3667.323661830915,0.9345263737703694,0.030549070451967072 +3668.9394697348675,0.931260488448718,0.03055330849210289 +3670.5552776388195,0.9219152858042885,0.030557545670369054 +3672.1710855427714,0.9316724175170339,0.03056178198729119 +3673.7868934467233,0.9589992619757047,0.03056601744339437 +3675.402701350675,0.9473583018493316,0.030569988221474033 +3677.018509254627,0.9408507495970524,0.030573163644246188 +3678.634317158579,0.9417171739329172,0.030576338583600038 +3680.250125062531,0.9423457446370094,0.03057934925094866 +3681.8659329664833,0.9541107850234014,0.030581465303330578 +3683.4817408704353,0.9229992273439435,0.030584312462529264 +3685.097548774387,0.9226114323702147,0.030587406816284968 +3686.713356678339,0.9439655337594427,0.03058950702795318 +3688.329164582291,0.9447210960832433,0.03059160707422739 +3689.944972486243,0.9392903376032123,0.030593706955151692 +3691.560780390195,0.9300843449778795,0.030594459192009628 +3693.1765882941468,0.9089090584560283,0.0305941219729037 +3694.792396198099,0.9013400485566769,0.030593784618235694 +3696.408204102051,0.9477558183767852,0.030593754322953567 +3698.024012006003,0.9190847778086056,0.03059376915226525 +3699.639819909955,0.9352581798191114,0.030594060000351447 +3701.255627813907,0.9355379136579743,0.030594843438689154 +3702.8714357178587,0.9271413230543402,0.03059554828984061 +3704.4872436218106,0.904287317018305,0.030596253117196263 +3706.1030515257626,0.9310938050695032,0.030596476780346542 +3707.718859429715,0.9154649783736054,0.030596476780346542 +3709.334667333667,0.9249773916858328,0.030596476780346542 +3710.950475237619,0.9532268383359125,0.03059585488175372 +3712.5662831415707,0.95701315719633,0.0305947976116294 +3714.1820910455226,0.9406409407154697,0.030593740287958745 +3715.7978989494745,0.9356563533266395,0.03059285696154445 +3717.4137068534264,0.9502789464270918,0.03059215201951579 +3719.0295147573784,0.9540168329933173,0.030591447053679697 +3720.6453226613307,0.9091217975793058,0.03059060128151542 +3722.2611305652827,0.9206996811785588,0.030589543745264604 +3723.8769384692346,0.941503368470637,0.030588486155427006 +3725.4927463731865,0.9373233484015356,0.030587320998283155 +3727.1085542771384,0.9281694249437135,0.030585910716389934 +3728.7243621810903,0.9446252983398958,0.030584500339181565 +3730.3401700850422,0.9618915328057145,0.030582941390298164 +3731.9559779889946,0.9256529141882536,0.03058082548763111 +3733.5717858929465,0.9469821575129468,0.03057870937034811 +3735.1875937968985,0.9511248798617898,0.030576511132676322 +3736.8034017008504,0.9648088384981317,0.030573689011579194 +3738.4192096048023,0.925880853352347,0.03057086650855079 +3740.035017508754,0.9372603744682511,0.030568051271086857 +3741.650825412706,0.9488044614754786,0.0305653456544584 +3743.266633316658,0.9339907923800145,0.03056151935672688 +3744.8824412206104,0.9511426849957906,0.030557692576959544 +3746.4982491245623,0.9511835222550535,0.030553865314973 +3748.1140570285143,0.9477197281488176,0.03055003757058376 +3749.729864932466,0.9308401221907743,0.030546209343608195 +3751.345672836418,0.9656290927868183,0.0305448531173262 +3752.96148074037,0.9119771145703262,0.03054379361797379 +3754.577288644322,0.9514418452700476,0.030542734064735618 +3756.193096548274,0.9446076711858873,0.030541152835533714 +3757.808904452226,0.9095544171256217,0.030539386659629526 +3759.424712356178,0.9313768417100874,0.030537081951236836 +3761.04052026013,0.8952962229165667,0.030535267514005062 +3762.656328164082,0.9450032751706481,0.030533830343793093 +3764.272136068034,0.9312511312187717,0.030532393094628102 +3765.887943971986,0.9567361383968518,0.030530955766495272 +3767.5037518759377,0.902406700996035,0.03052919340568308 +3769.1195597798896,0.9492296668027561,0.030527129446448798 +3770.735367683842,0.9353280945370239,0.030525708550832555 +3772.351175587794,0.9231926388092724,0.03052505762382844 +3773.966983491746,0.8784877952188588,0.03052440648284139 +3775.5827913956978,0.9263562406996972,0.030523943503157902 +3777.1985992996497,0.9079035626424431,0.030523918835338677 +3778.8144072036016,0.9284809670255998,0.030523894088398597 +3780.4302151075535,0.9431328907731638,0.030523963326304256 +3782.0460230115054,0.9232002593469705,0.030524291688917994 +3783.661830915458,0.9310972133275413,0.03052468012622708 +3785.2776388194097,0.9300646002877534,0.03052604332057232 +3786.8934467233616,0.9251573541921888,0.030528868944343486 +3788.5092546273136,0.9532666017275466,0.03053169418491528 +3790.1250625312655,0.9254568184126065,0.030534628355858788 +3791.7408704352174,0.9178481865163655,0.03053886490206579 +3793.3566783391693,0.9518899125932236,0.0305412945241489 +3794.9724862431212,0.9448167901107997,0.030543438600836297 +3796.5882941470736,0.9477391741098905,0.030545234576377797 +3798.2041020510255,0.9428729244256818,0.030547023369813384 +3799.8199099549774,0.9315734217894184,0.030548810989810837 +3801.4357178589294,0.9227529542919191,0.03055132213719587 +3803.0515257628813,0.9399616195454316,0.030554495424252332 +3804.667333666833,0.9293654098346222,0.030557668228865072 +3806.283141570785,0.8963122297867052,0.03056168020296071 +3807.898949474737,0.9490411299847498,0.03056590904634305 +3809.5147573786894,0.8923418980066993,0.030570137033453355 +3811.1305652826413,0.9504798571977288,0.03057411771469258 +3812.7463731865932,0.9117554169864578,0.030577991879492485 +3814.362181090545,0.9412829110837454,0.03058186532603363 +3815.977988994497,0.9559297578216688,0.03058509882598782 +3817.593796898449,0.958292462120878,0.03058769608234073 +3819.209604802401,0.9460192682933245,0.030589465544036597 +3820.8254127063533,0.9366523309767164,0.03059123451345719 +3822.441220610305,0.9227387124571371,0.030593002990718994 +3824.057028514257,0.9523867416471169,0.030594770975938417 +3825.672836418209,0.9425294824546844,0.030596391992764205 +3827.288644322161,0.9379264052079487,0.030598844734274926 +3828.904452226113,0.9547203682961248,0.030601306637525513 +3830.520260130065,0.9433111159609057,0.030603655029771096 +3832.1360680340167,0.9254715519469072,0.030605764765213043 +3833.751875937969,0.93763561603914,0.030607874287974724 +3835.367683841921,0.9280140932030791,0.030610143583560234 +3836.983491745873,0.9512942625587967,0.030612955644971143 +3838.599299649825,0.9106215675012265,0.030615767328673306 +3840.2151075537768,0.9154441031528332,0.030618391516259925 +3841.8309154577287,0.9390031743477575,0.030619797040356098 +3843.4467233616806,0.9665482952552368,0.030621202470117608 +3845.0625312656325,0.95185121350706,0.030622580613434845 +3846.678339169585,0.9092361430604814,0.030623283246707593 +3848.294147073537,0.9456450084274775,0.03062398585640845 +3849.9099549774887,0.8965856771682169,0.03062468844253979 +3851.5257628814406,0.9343728821317167,0.03062541123454529 +3853.1415707853926,0.9618501028838735,0.030626809252348515 +3854.7573786893445,0.9451176609678332,0.03062820715109862 +3856.3731865932964,0.9432517551140351,0.030629903448118858 +3857.9889944972483,0.9601430379381825,0.030631652353307344 +3859.6048024012007,0.9147437859477792,0.03063315434803031 +3861.2206103051526,0.9310389615928507,0.030632545169860113 +3862.8364182091045,0.9236686772647071,0.030631849967212268 +3864.4522261130564,0.9445997529753521,0.030631154645578713 +3866.0680340170084,0.9375799846377215,0.030629994907050345 +3867.6838419209603,0.9139798504229549,0.030628596920109184 +3869.299649824912,0.9481962988338682,0.030628140669281306 +3870.915457728864,0.9384206019796082,0.030627789437054312 +3872.5312656328165,0.96692666679739,0.030627438198938157 +3874.1470735367684,0.9436674670093598,0.030627086954932534 +3875.7628814407203,0.9145216310961857,0.030626735705037152 +3877.3786893446722,0.9141213698733118,0.030626384449251698 +3878.994497248624,0.9465488507617914,0.030626033187575907 +3880.610305152576,0.9294089298125641,0.030625681920009452 +3882.226113056528,0.9398860188207784,0.030625330646552047 +3883.84192096048,0.9275688359162731,0.030624979367203403 +3885.4577288644323,0.9299442020018311,0.030624528568200422 +3887.073536768384,0.9430888688397204,0.030623825976705946 +3888.689344672336,0.9478978071660598,0.030623123361641417 +3890.305152576288,0.9497987026675275,0.03062228802389716 +3891.92096048024,0.9241919362896589,0.03062088266699106 +3893.536768384192,0.9229942211403799,0.030619477215764974 +3895.152576288144,0.9447256810276117,0.030618038488611228 +3896.768384192096,0.9795972429596174,0.03061628142117702 +3898.384192096048,0.9115260999107075,0.030614524206270644 +3900.0,0.9122656333905926,0.03061276684385495 diff --git a/content/data_work/toluene.csv b/content/data_work/toluene.csv new file mode 100644 index 0000000..8797844 --- /dev/null +++ b/content/data_work/toluene.csv @@ -0,0 +1,401 @@ +# toluene +# wavenumber (cm-1), transmittance +579.481, 0.641 +587.912705, 0.628 +596.34441, 0.5971 +604.776115, 0.577 +613.20782, 0.5769 +621.639525, 0.5798 +630.07123, 0.5918 +638.502935, 0.6108 +646.93464, 0.6274 +655.366345, 0.6497 +663.79805, 0.651 +672.229755, 0.6248 +680.66146, 0.5442 +689.093165, 0.4429 +697.52487, 0.0575 +705.956575, 0.3035 +714.38828, 0.5274 +722.819985, 0.3347 +731.25169, 0.0216 +739.683395, 0.0324 +748.1151, 0.2982 +756.546805, 0.5973 +764.97851, 0.7349 +773.410215, 0.788 +781.84192, 0.8113 +790.273625, 0.7686 +798.70533, 0.8408 +807.137035, 0.8582 +815.56874, 0.862 +824.000445, 0.865 +832.43215, 0.8609 +840.863855, 0.8424 +849.29556, 0.8361 +857.727265, 0.8562 +866.15897, 0.865 +874.590675, 0.86 +883.02238, 0.862 +891.454085, 0.8418 +899.88579, 0.7585 +908.317495, 0.8284 +916.7492, 0.8524 +925.180905, 0.857 +933.61261, 0.8462 +942.044315, 0.8468 +950.47602, 0.8363 +958.907725, 0.8306 +967.33943, 0.8193 +975.771135, 0.816 +984.20284, 0.809 +992.634545, 0.816 +1001.06625, 0.8101 +1009.497955, 0.808 +1017.92966, 0.7964 +1026.361365, 0.7253 +1034.79307, 0.393 +1043.224775, 0.5963 +1051.65648, 0.6415 +1060.088185, 0.7345 +1068.51989, 0.7525 +1076.951595, 0.6544 +1085.3833, 0.412 +1093.815005, 0.7094 +1102.24671, 0.7814 +1110.678415, 0.7422 +1119.11012, 0.8318 +1127.541825, 0.848 +1135.97353, 0.8449 +1144.405235, 0.8369 +1152.83694, 0.8107 +1161.268645, 0.7971 +1169.70035, 0.804 +1178.132055, 0.7551 +1186.56376, 0.7781 +1194.995465, 0.8279 +1203.42717, 0.838 +1211.858875, 0.7977 +1220.29058, 0.8488 +1228.722285, 0.869 +1237.15399, 0.8672 +1245.585695, 0.8535 +1254.0174, 0.8581 +1262.449105, 0.8687 +1270.88081, 0.8673 +1279.312515, 0.867 +1287.74422, 0.8686 +1296.175925, 0.8624 +1304.60763, 0.8534 +1313.039335, 0.842 +1321.47104, 0.85 +1329.902745, 0.8405 +1338.33445, 0.8386 +1346.766155, 0.8336 +1355.19786, 0.8158 +1363.629565, 0.7879 +1372.06127, 0.7353 +1380.492975, 0.597 +1388.92468, 0.7025 +1397.356385, 0.748 +1405.78809, 0.7375 +1414.219795, 0.7192 +1422.6515, 0.7022 +1431.083205, 0.6898 +1439.51491, 0.6608 +1447.946615, 0.5566 +1456.37832, 0.401 +1464.810025, 0.3134 +1473.24173, 0.362 +1481.673435, 0.4888 +1490.10514, 0.5048 +1498.536845, 0.1906 +1506.96855, 0.3032 +1515.400255, 0.6929 +1523.83196, 0.7058 +1532.263665, 0.708 +1540.69537, 0.7652 +1549.127075, 0.8048 +1557.55878, 0.8036 +1565.990485, 0.7953 +1574.42219, 0.7503 +1582.853895, 0.7552 +1591.2856, 0.7508 +1599.717305, 0.7245 +1608.14901, 0.5195 +1616.580715, 0.5485 +1625.01242, 0.7705 +1633.444125, 0.7776 +1641.87583, 0.8737 +1650.307535, 0.8964 +1658.73924, 0.899 +1667.170945, 0.901 +1675.60265, 0.901 +1684.034355, 0.901 +1692.46606, 0.908 +1700.897765, 0.903 +1709.32947, 0.906 +1717.761175, 0.9058 +1726.19288, 0.899 +1734.624585, 0.8694 +1743.05629, 0.8434 +1751.487995, 0.8825 +1759.9197, 0.906 +1768.351405, 0.901 +1776.78311, 0.891 +1785.214815, 0.881 +1793.64652, 0.876 +1802.078225, 0.8355 +1810.50993, 0.767 +1818.941635, 0.8239 +1827.37334, 0.8638 +1835.805045, 0.8819 +1844.23675, 0.886 +1852.668455, 0.8606 +1861.10016, 0.7779 +1869.531865, 0.7571 +1877.96357, 0.8082 +1886.395275, 0.8308 +1894.82698, 0.8858 +1903.258685, 0.9026 +1911.69039, 0.9075 +1920.122095, 0.906 +1928.5538, 0.8908 +1936.985505, 0.8559 +1945.41721, 0.7711 +1953.848915, 0.7423 +1962.28062, 0.8108 +1970.712325, 0.8277 +1979.14403, 0.8856 +1987.575735, 0.8997 +1996.00744, 0.894 +2004.439145, 0.9029 +2012.87085, 0.913 +2021.302555, 0.915 +2029.73426, 0.9206 +2038.165965, 0.921 +2046.59767, 0.923 +2055.029375, 0.923 +2063.46108, 0.923 +2071.892785, 0.921 +2080.32449, 0.9206 +2088.756195, 0.923 +2097.1879, 0.923 +2105.619605, 0.923 +2114.05131, 0.921 +2122.483015, 0.921 +2130.91472, 0.921 +2139.346425, 0.921 +2147.77813, 0.921 +2156.209835, 0.9204 +2164.64154, 0.9154 +2173.073245, 0.901 +2181.50495, 0.916 +2189.936655, 0.9154 +2198.36836, 0.915 +2206.800065, 0.92 +2215.23177, 0.9154 +2223.663475, 0.92 +2232.09518, 0.92 +2240.526885, 0.916 +2248.95859, 0.916 +2257.390295, 0.9154 +2265.822, 0.91 +2274.253705, 0.9123 +2282.68541, 0.9117 +2291.117115, 0.911 +2299.54882, 0.9123 +2307.980525, 0.915 +2316.41223, 0.9041 +2324.843935, 0.9036 +2333.27564, 0.903 +2341.707345, 0.9003 +2350.13905, 0.9036 +2358.570755, 0.908 +2367.00246, 0.908 +2375.434165, 0.911 +2383.86587, 0.9104 +2392.297575, 0.9034 +2400.72928, 0.9049 +2409.160985, 0.904 +2417.59269, 0.8997 +2426.024395, 0.9023 +2434.4561, 0.911 +2442.887805, 0.915 +2451.31951, 0.915 +2459.751215, 0.9156 +2468.18292, 0.915 +2476.614625, 0.915 +2485.04633, 0.9154 +2493.478035, 0.915 +2501.90974, 0.9143 +2510.341445, 0.915 +2518.77315, 0.915 +2527.204855, 0.916 +2535.63656, 0.915 +2544.068265, 0.915 +2552.49997, 0.915 +2560.931675, 0.916 +2569.36338, 0.916 +2577.795085, 0.913 +2586.22679, 0.9021 +2594.658495, 0.886 +2603.0902, 0.9023 +2611.521905, 0.9053 +2619.95361, 0.9106 +2628.385315, 0.911 +2636.81702, 0.911 +2645.248725, 0.913 +2653.68043, 0.913 +2662.112135, 0.913 +2670.54384, 0.913 +2678.975545, 0.913 +2687.40725, 0.913 +2695.838955, 0.9117 +2704.27066, 0.911 +2712.702365, 0.9087 +2721.13407, 0.903 +2729.565775, 0.8921 +2737.99748, 0.8537 +2746.429185, 0.8292 +2754.86089, 0.8929 +2763.292595, 0.8997 +2771.7243, 0.8991 +2780.156005, 0.894 +2788.58771, 0.893 +2797.019415, 0.8864 +2805.45112, 0.8797 +2813.882825, 0.8669 +2822.31453, 0.859 +2830.746235, 0.8431 +2839.17794, 0.8236 +2847.609645, 0.7878 +2856.04135, 0.7091 +2864.473055, 0.5837 +2872.90476, 0.4919 +2881.336465, 0.473 +2889.76817, 0.4964 +2898.199875, 0.5617 +2906.63158, 0.5889 +2915.063285, 0.5191 +2923.49499, 0.3467 +2931.926695, 0.247 +2940.3584, 0.3145 +2948.790105, 0.3913 +2957.22181, 0.3926 +2965.653515, 0.4032 +2974.08522, 0.4461 +2982.516925, 0.4525 +2990.94863, 0.4503 +2999.380335, 0.4706 +3007.81204, 0.45 +3016.243745, 0.3968 +3024.67545, 0.3135 +3033.107155, 0.1182 +3041.53886, 0.0896 +3049.970565, 0.2388 +3058.40227, 0.341 +3066.833975, 0.303 +3075.26568, 0.2881 +3083.697385, 0.4336 +3092.12909, 0.4191 +3100.560795, 0.414 +3108.9925, 0.6651 +3117.424205, 0.6966 +3125.85591, 0.7759 +3134.287615, 0.8406 +3142.71932, 0.8689 +3151.151025, 0.8783 +3159.58273, 0.882 +3168.014435, 0.8827 +3176.44614, 0.8853 +3184.877845, 0.8953 +3193.30955, 0.899 +3201.741255, 0.901 +3210.17296, 0.9023 +3218.604665, 0.903 +3227.03637, 0.904 +3235.468075, 0.906 +3243.89978, 0.904 +3252.331485, 0.904 +3260.76319, 0.904 +3269.194895, 0.904 +3277.6266, 0.904 +3286.058305, 0.904 +3294.49001, 0.904 +3302.921715, 0.904 +3311.35342, 0.903 +3319.785125, 0.903 +3328.21683, 0.903 +3336.648535, 0.903 +3345.08024, 0.903 +3353.511945, 0.903 +3361.94365, 0.903 +3370.375355, 0.901 +3378.80706, 0.901 +3387.238765, 0.901 +3395.67047, 0.901 +3404.102175, 0.901 +3412.53388, 0.901 +3420.965585, 0.901 +3429.39729, 0.899 +3437.828995, 0.899 +3446.2607, 0.899 +3454.692405, 0.899 +3463.12411, 0.898 +3471.555815, 0.898 +3479.98752, 0.8967 +3488.419225, 0.896 +3496.85093, 0.896 +3505.282635, 0.896 +3513.71434, 0.896 +3522.146045, 0.898 +3530.57775, 0.898 +3539.009455, 0.898 +3547.44116, 0.899 +3555.872865, 0.898 +3564.30457, 0.898 +3572.736275, 0.896 +3581.16798, 0.8947 +3589.599685, 0.893 +3598.03139, 0.896 +3606.463095, 0.8947 +3614.8948, 0.893 +3623.326505, 0.893 +3631.75821, 0.893 +3640.189915, 0.891 +3648.62162, 0.891 +3657.053325, 0.891 +3665.48503, 0.893 +3673.916735, 0.893 +3682.34844, 0.893 +3690.780145, 0.894 +3699.21185, 0.893 +3707.643555, 0.893 +3716.07526, 0.893 +3724.506965, 0.893 +3732.93867, 0.893 +3741.370375, 0.893 +3749.80208, 0.8917 +3758.233785, 0.8917 +3766.66549, 0.891 +3775.097195, 0.8897 +3783.5289, 0.889 +3791.960605, 0.889 +3800.39231, 0.887 +3808.824015, 0.887 +3817.25572, 0.887 +3825.687425, 0.886 +3834.11913, 0.886 +3842.550835, 0.886 +3850.98254, 0.886 +3859.414245, 0.887 +3867.84595, 0.886 +3876.277655, 0.886 +3884.70936, 0.886 +3893.141065, 0.886 +3901.57277, 0.886 +3910.004475, 0.886 +3918.43618, 0.887 +3926.867885, 0.887 +3935.29959, 0.887 From 3b35790f0ffa47f01dfcb2d9f6a68b31be7151a5 Mon Sep 17 00:00:00 2001 From: Andrew McCluskey Date: Sat, 2 May 2020 10:55:09 +0100 Subject: [PATCH 2/3] dealing with jacobs comments --- content/data_work/ir_spectra.ipynb | 65 ++++++++++++++++++------------ 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/content/data_work/ir_spectra.ipynb b/content/data_work/ir_spectra.ipynb index f74ad03..b9db855 100644 --- a/content/data_work/ir_spectra.ipynb +++ b/content/data_work/ir_spectra.ipynb @@ -1,5 +1,21 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise: Fitting IR spectra\n", + "\n", + "Prerequisites:\n", + "\n", + "* types\n", + "* functions\n", + "* containers\n", + "* numpy \n", + "* optimisation\n", + "* io" + ] + }, { "cell_type": "code", "execution_count": 1, @@ -16,17 +32,6 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Exercise: Fitting IR spectra\n", - "\n", - "Prerequisites:\n", - "\n", - "* types\n", - "* functions\n", - "* containers\n", - "* numpy \n", - "* optimisation\n", - "* io\n", - "\n", "This is one of the *long-form* exercises in the book. \n", "The idea behind these are to introduce a particular problem, and then allow the space to work on it. \n", "\n", @@ -36,12 +41,12 @@ "## Aim \n", "\n", "You have been tasked with determining the relative composition of a mixture of two organic species; namely toluene and benyl alcohol. \n", - "YOu have recognised, that using IR spectroscopy and some data analysis, it may be possible to evaluate this. \n", + "You have recognised, that using IR spectroscopy and some data analysis, it may be possible to evaluate this. \n", "\n", "## Reading in and plotting experimental data\n", "\n", "IR spectra of the two species in isolation were available online, from the [NIST Chemistry Webbook](https://webbook.nist.gov/chemistry/).\n", - "These are available in the files `tolene.csv` and `benzyl_alcohol.csv`, these files consist of two columns the first is the wavenumber, $\\bar{\\nu}$, and the second is the transmittance ($T$). \n", + "These are available in the files `toluene.csv` and `benzyl_alcohol.csv`, these files consist of two columns the first is the wavenumber, $\\bar{\\nu}$, and the second is the transmittance ($T$). \n", "Referring to the previous section on [reading and writing data](./io.html), in the cell below, use [`np.loadtxt()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html) to open these files and store the information in array objects. \n", "\n" ] @@ -94,13 +99,13 @@ "metadata": {}, "source": [ "Having plotted each of the three datasets, you should be able to identify features present in the mixture data that match those in the isolated datasets. \n", - "Such as the large feature in the toulene isolated data that can be seen in the mixture data at around 3000 cm-1, and then at higher energy there is a broad feature in the benzyl alcohol isolated data between 3250 cm-1 and 3750 cm-1, that can also be found in the experimental data.\n", + "Such as the large feature in the toluene isolated data that can be seen in the mixture data at around 3000 cm-1, and then at higher energy there is a broad feature in the benzyl alcohol isolated data between 3250 cm-1 and 3750 cm-1, that can also be found in the experimental data.\n", "\n", "## Fitting\n", "\n", "You will hopefully have encounter data fitting before, for example when a straight line of best fit is applied to some experimental data points. \n", "This is shown below, where the blue dots are some discrete datapoints and the orange line is the line of best fit. \n", - "In order to determine this line of best fit, we use a process called, we have a metric that we want to minimise which represents the difference between the data and the model (the straight line). " + "In order to determine this line of best fit, we have a metric that we want to minimise which represents the difference between the data and the model (the straight line). " ] }, { @@ -110,7 +115,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEGCAYAAABvtY4XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAeOElEQVR4nO3deXxU5b3H8c8vIUBYAwLKalxxVxBxQRRBBAWXVm1dEK3tpd5uuKGiVqvWNRbFa1ulaNXrUrWglX1HBBFZBRQQkTWArGENkOW5f5zBi8iSkDnzzJz5vl+vvJxkJvN8X8fky8l5znmOOecQEZHoyfAdQEREwqGCFxGJKBW8iEhEqeBFRCJKBS8iElGVfAfYU7169Vxubq7vGCIiKWP69OnrnHP19/VcUhV8bm4u06ZN8x1DRCRlmNnS/T2nQzQiIhGlghcRiSgVvIhIRKngRUQiSgUvIhJRKngRkYhSwYuIRFSoBW9mS8xsjpnNMjOd4C4isrelk2FS31DeOhEXOl3knFuXgHFERFJH4UYY9RDMeAPq5MJZv4LK1eM6RFJdySoiEnnOwdwBMPw+2L4BzvsDtLsv7uUO4Re8A0aamQNeds712/sFZtYD6AHQrFmzkOOIiHi0YTEMuQsWjYFGLaHbQGh4WmjDhV3w5zvn8s2sATDKzOY75ybs+YJY6fcDaNWqle4fKCLRU1IEk1+E8U9DRiW4NA/O+iVkZIY6bKgF75zLj/13jZl9ALQGJhz4u0REImT5VBjUE9Z8CSd0hUufgdqNEzJ0aAVvZtWBDOfcltjjS4BHwxpPRCSp7NgEox+Baa9CrUZw3dtwQpeERghzD/5w4AMz2z3O28654SGOJyLin3Pw1X9g2L2wbQ2cfRu0fwCq1Ex4lNAK3jn3LXB6WO8vIpJ0CpbBkLth4Qg44jS4/h1o3NJbHJ0mKSJSUSXFMOUlGPc4YNDpCWj9a8j0W7EqeBGJmw9n5pM3YgErCwpplJNNr07NuapFYiYUvcmfEUyirp4Nx3eGy/IgJzlO+VbBi0hcfDgzn94D51BYVAJAfkEhvQfOAYhmye/cAmMfh89fhuoN4GdvwIlXQDDvmBRU8CISF3kjFnxf7rsVFpWQN2JB9Ap+/hAY2gs2rwzOZ+/wEFSt7TvVj6jgRSQuVhYUluvrKWlTPgy7B+YPhgYnw7WvQ9OzfKfaLxW8iMRFo5xs8vdR5o1ysj2kibPSEpjaH8Y8BqXFcPEjcO5vITPLd7ID0nrwIhIXvTo1Jzvrh5feZ2dl0qtTc0+J4mTVbOh/cbDn3rQ1/GYynH970pc7aA9eROJk93H2yJxFs2sbjH8SJv8NqtWFq1+BU65OqknUg1HBi0jcXNWiceoW+p6+Hhms+rhpGbS8GTo+Atl1fKcqNxW8iMhuW1YHSwx89SHUPwF+MRyOPNd3qkOmghcRKS2F6f8MFgcr3gHtH4TzekKlyqEOG/aFYSp4EUlv330VXIm64nM46gLo+jwcdkzowybiwjCdRSMi6amoMNhjf7ktbFgEP3kZun+UkHKHA18YFi/agxeR9LNoLAy+AzYugTNuhI6PQfXDEhohEReGqeBFJH1sXQsjesOc9+GwY+HmwXBUWy9REnFhmA7RiEj0lZbCjDfgxVbBzTguvA9um+St3CExF4ZpD15Eom3tAhh0Oyz7FI5sE0yi1j/ed6qEXBimgheRaCraARP7wCd9oHJ1uOLF4Hh7RvIcuAj7wjAVvIhEz+IJwSTq+m/g1J8Fd1iqUd93qoRTwYtIdGxbDyMfhC/ehjpHwU0fwDHtfafyRgUvIqnPOfjiXzDifti5GdreBRf0gqwILFVcASp4EUlt6xfB4NuDwzJNzw4mUQ8/yXeqpKCCF5HUVLwLJvWFCXlQqSp0fQ5a3pJUk6i+qeBFJPUsnRysH7NuAZz8E+j8FNQ8wneqpKOCF5HUUbgRRj0UXLRUuxnc8D4cf4nvVElLBS8iyc85mDsAht8H2zfAeX+AdvcF57fLfqngRSS5bVgc3F1p0Rho1BK6DYSGp/lOlRJU8CKSnEqKYPKLMP5pyKgEl+bBWb+EjMyDf68AKngRSUbLpwaTqGu+hBO6wqXPQO0I3Os1wVTwIpI8dmwKbsIx7VWo1QiuextO6OI7VcpSwYuIf84Fy/gOuxe2rYGzb4P2D0CVmr6TpTQVvIj4VbAMhtwNC0fAEafB9e9A45a+U0WCCl5E/CgphikvwbjHAQtWfGz9a8hULcWLtqSIJF7+jGASdfVsOL4zXJYHOc18p4ocFbyIJM7OLTD2cfj8ZajeAH72Bpx4BZj5ThZJKngRSYz5Q2BoL9i8MjifvcNDULW271SRpoIXkXBtyodh98D8wdDgZLj2dWh6lu9UaUEFLyLhKC2Bqf1hzGNQWgwXPwLn/hYys3wnSxsqeBGJv1Wzg5tw5E+HYzpAl79A3aN8p0o7oRe8mWUC04B851zXsMcTEY92bYPxT8Lkv0G1unD1K3DK1ZpE9SQRe/A9gXlArQSMJSK+fD0yWPVx0zJoeTN0fASy6/hOldZCvbeVmTUBugD9wxxHRDzashrevwXevja4yfUvhsEVL6jck0DYe/DPA/cA+11Qwsx6AD0AmjXThQ4iKaO0FKb/M1gcrHgHXPQgtOkJlSr7TiYxoRW8mXUF1jjnpptZu/29zjnXD+gH0KpVKxdWHhGJo+++CiZRl0+Boy6ALs9BvWN9p5K9hLkH3wa4wswuA6oCtczsTedctxDHFJEwFRXCx8/Apy9AlVpw1Utw+nWaRE1SoRW8c6430Bsgtgd/t8pdJIUtGguD74CNS+CMG6HjY1D9MN+p5AB0HryIHNjWtTDifpjzHtQ9Bm4eFByWkaSXkIJ3zo0HxidiLBGJE+dg5v/CyD8G57dfeC+cfydkVfWdTMpIe/Ai8mNrvw4mUZdOgmbnweXPQ/3mvlNJOangReT/Fe2AiX3gkz5QuTpc8T9wRjfICPWSGQmJCl5EAosnBJOo67+BU38W3GGpRn3fqaQCVPAi6W77Bhj5IMx6C+rkQreBcGwH36kkDlTwIunKOfjiXzDyAdixKZhAvfCeYLkBiQQVvEg6Wr8oOByz+GNo0jqYRD38ZN+pJM5U8CLppHgXTOoLE/KgUlXo0gfO/IUmUSNKBS+SLpZOhkE9Yd0COPkn0PkpqHmE71QSIhW8SNQVboRRD8OM16F2M7jhfTj+Et+pJAFU8CJR5RzMHQDD7wvOlDnv99Cud3B+u6QFFbxIFG1cAoPvhEVjoFHL4NTHhqf5TiUJpoIXiZKSIpj8Iox/GjIy4dJn4KxfBY8l7ajgRaJi+dRgEnXNl3BC16Dcazf2nUo8UsGLpLodm2DMozD1FajVCK57G07o4juVJAEVvEiqcg6++g8Muxe2rYGzb4P2D0CV/d4CWdKMCl4kFRUsh6F3w9fD4YjT4Pp3oHFL36kkyajgRVJJSTFMeQnGPQE4uOTxYM89U7/K8mP6qRBJFStnBpOoq76A4zpBl2chp5nvVJLEVPAiyW7nFhj7OHz+MlRvANe+DiddCWa+k0mSU8GLJLP5Q2BoL9i8Es76JXR4CKrW9p1KUoQKXiQZbV4ZFPv8wdDgZLj2NWja2ncqSTEqeJFkUloCU/vDmMegtBgu/hOc+zvIzPKdTFKQCl4kWayaDYNvh/zpcEz7YK32ukf5TiUpTAUv4tuubTD+SZj8N6hWF65+BU65WpOoUmEqeBGfFo4KVn3ctAxa3hwckqlW13cqiQgVvIgPW74L1mn/ciDUaw6/GAZHnuc7lUSMCl4kkUpLYcZrMOpPULwDLnoA2vSESlV8J5MIUsGLJMp3XwWTqMunQG5b6Po81DvWdyqJMBW8SNiKCmFCHkzqC1VqwVV/h9Ov1ySqhE4FLxKmReNg8B2wcTGcfgNc8meofpjvVJImVPAiYdi6FkY+ALPfhbrHwM2D4KgLfKeSNKOCF4kn52DmmzDqj7BzK1xwD7S9C7Kq+k4maUgFLxIva78OJlGXToJm58Hlz0P95r5TSRpTwYtUVNEOmPgcTOwDWdlw+QvQ4ibIyPCdTNKcCl6kIhZ/Euy1r/8GTr0WOj0BNRr4TiUCqOBFDs32DTDyjzDrTaiTC90GwrEdfKcS+QEVvEh5OBecGTPiftixCc6/I5hIrVzNdzKRH1HBi5TV+kXBOe2LP4YmrYNJ1MNP9p1KZL9CK3gzqwpMAKrExvm3c+7hsMYTCU3xLvi0L3ycF6wZ0+UvcOatmkSVpBfmHvxOoL1zbquZZQETzWyYc+6zEMcUia+lk4NJ1LXz4aSr4NKnoeYRvlOJlEloBe+cc8DW2KdZsQ8X1ngicVW4EUb/Caa/BrWbwg3vwfGdfKcSKZdQj8GbWSYwHTgW+KtzbkqY44lUmHMwdwAM7w3b1wf3Q73ofqhc3XcykXI76EFEM/u9mdU5lDd3zpU4584AmgCtzeyUfbx/DzObZmbT1q5deyjDiMTHxiXw1jUw4JdQuzH0GAedHle5S8oqyyzR4cBUM3vPzDqblX+NU+dcATAO6LyP5/o551o551rVr1+/vG8tUnElRTDxefjrObDsM+j8NPxqDDQ83XcykQo5aME75x4EjgNeAW4BFprZE2Z2zIG+z8zqm1lO7HE20BGYX+HEIvG0Yhr0awejHw4uVPrt53DObZCR6TuZSIWV6Ri8c86Z2WpgNVAM1AH+bWajnHP37OfbGgKvx47DZwDvOecGxyO0SIXt2ARjHoOp/aFmQ/j5W3BiV9+pROLqoAVvZj2B7sA6oD/QyzlXZGYZwEJgnwXvnJsNtIhjVpGKcw7mfQTD7oUtq+HsX0P7B6FKTd/JROKuLHvwdYGfOueW7vlF51ypmWmXR1JHwXIY2gu+HgZHnArXvQWNz/SdSiQ0By34A1196pybF984IiEoKYbPX4axjwMuuG3e2f8NmVqpQ6JNP+ESbStnwqCesOoLOK4TdHkWcpr5TiWSECp4iaadW2DcEzDlJaheH659LVhqoPxn+YqkLBW8RM/8ocGx9s350OpWuPhhqFrbdyqRhFPBS3RsXgnD7oF5g6DBSXDtP6Fpa9+pRLxRwUvqKy2Bqa/AmEehtAg6PAzn/R4ysyr81h/OzCdvxAJWFhTSKCebXp2ac1WLxnEILRI+FbykttVzgknU/Olw9EXQtQ/UPToub/3hzHx6D5xDYVEJAPkFhfQeOAdAJS8pQXcskNS0a1twT9SXL4SNS+Gn/eGmD+JW7gB5IxZ8X+67FRaVkDdiQdzGEAmT9uAl9SwcBUPuhIJl0LI7XPwIVKsb92FWFhSW6+siyUYFL6ljy3cw/D74ciDUOx5uGQq5bUIbrlFONvn7KPNGOdmhjSkSTzpEI8mvtBSmvQovngXzB8NFD8BtE0Mtd4BenZqTnfXDVSWzszLp1al5qOOKxIv24CW5ffdVcE/U5VMgty10fR7qHZuQoXdPpOosGklVKnhJTkWFMCEPJvWFKrXgqr/D6dcn/ErUq1o0VqFLylLBS/JZNA4G3wEbF8PpNwSLg1U/zHcqkZSjgpfksXUtjHwAZr8LdY+B7h/B0Rf6TiWSslTw4p9zMPNNGPVH2LkVLrgH2t4FWVV9JxNJaSp48Wvt18Ek6tJJ0OzcYBK1wQm+U4lEggpe/CjaAROfg4l9ICsbLn8BWtwEGTpzVyReVPCSeIs/Cfba138Dp14LnZ6AGg18pxKJHBW8JM72DcH6MbPehJwjodsAOPZi36lEIksFL+FzLjgzZsT9sGMTnH9HMJFauZrvZCKRpoKXcK1fFJzTvvhjaHIWXN4XDj/ZdyqRtKCCl3AU74JP+8LHeVCpCnT5C5x5qyZRRRJIBS/xt3RyMIm6dn5wo+vOT0Gthr5TiaQdFbzET+FGGP0nmP4a1G4K178LzTv7TiWStlTwUnHOwdwBMLw3bF8H5/4O2vWGKjV8JxNJayp4qZiNS2DIXfDNaGjUArr9Gxqe7juViKCCl0NVUgST/wrjn4KMTOj8NLT+r+CxiCQFFbyU34ppMKgnfDcXmneBy56B2k18pxKRvajg08yHM/MP/Q5FOzbBmMdgan+o2RB+/hac2DXcwCJyyFTwaeTDmfn0HjiHwqISAPILCuk9cA7AgUveOZj3EQy7F7ashtY9oP2DULVWImKLyCHSVSdpJG/Egu/LfbfCohLyRizY/zcVLId3rof3ukO1evCrMcEhGZW7SNLTHnwaWVlQWPavlxTD5y/D2McBBx0fg3N+A5n6kRFJFfptTSONcrLJ30eZN8rJ/uEXVs4MJlFXfQHHdgyWGahzZIJSiki86BBNGunVqTnZWT88jTE7K5NenZoHn+zcElys9I/2wbH2a/4JN76vchdJUdqDTyO7J1L3eRbN/KEwtBdsXgGtboUOD0N2jufEIlIRKvg0c1WLxj88Y2bzSni3G8wbBPVPhFtHQrOz/QUUkbhRwaer0hKY+gqMeRRKi6DDQ3Du76FSZd/JRCROQit4M2sKvAEcDjign3Oub1jjSTmsnhNMouZPh6Mvgq59oO7RvlOJSJyFuQdfDNzlnJthZjWB6WY2yjn3VYhjyoHs2hasHTP5r5BdB376j+Cm12a+k4lICEIreOfcKmBV7PEWM5sHNAZU8D4sHAVD7oSCZdDiJuj4KFSr6zuViIQoIcfgzSwXaAFM2cdzPYAeAM2aNUtEnPSy5TsYfh98ORDqHQ+3DIXcNr5TiUgChF7wZlYDGADc7pzbvPfzzrl+QD+AVq1aubDzpI3SUpjxOox+GIoKod39cP7twf1RRSQthFrwZpZFUO5vOecGhjmW7GHNPBh0Oyz/DHLbQtfnoN5xvlOJSIKFeRaNAa8A85xzfcIaR/ZQVAgT8mBSX6hSE678G5xxgyZRRdJUmHvwbYCbgDlmNiv2tfudc0NDHDN9LRoXTKJu+BZOvx4u+TNUr+c7lYh4FOZZNBMB7TqGbds6GHE/zH43OJe9+3/g6Ha+U4lIEtCVrKnKOZj1Fox8EHZuhQt6Qdu7Iauq72QikiRU8Klo3cJgEnXpRGh6DlzeFxqc4DuViCQZFXwqKd4Jn/SBiX0gKzso9hbdIUOrPovIj6ngU8WSicFe+/qFcMo10PlJqNHAdyoRSWIq+GS3fQOM/CPMehNyjoQbB8BxF/tOJSIpQAWfrJyD2e/BiN5QWABtbocL74XK1XwnE5EUoYJPRusXBee0fzseGreC7n3hiFN8pxKRFKOCTybFu+DTvvBxXrBmzGXPBrfPy8g8+PeKiOxFBZ8sln0WTKKunQcnXQmdn4ZaDX2nEpEUpoL3rXAjjP4TTH8NajeF69+F5p19pxKRCFDB++JcsEb7sPtg+zo493fQrjdUqeE7mYhEhAreh41LYMhd8M1oaHgG3Pg+NDrDdyoRiRgVfCKVFAX3Qx3/VDBx2vkpaN1Dk6giEgoVfKKsmA6D/gDfzYXml8FleVC7ie9UIhJhKviw7dgMYx+Dz/8BNRvCz9+EEy/3nUpE0oAKPizOwbxBMOwe2LI6OBTT/kGoWst3MhFJEyr4MGxaAUN7wYKhcPip8PO3oMmZvlOJSJpRwcdTaQlMeRnG/hlw0PExOOc3kKnNLCKJp+aJl5WzYFBPWDULju0IXf4CdY70nUpE0pgKvqJ2boVxT8CUv0P1+nDNP+Hkn4DpdrQi4pcKviIWDIMhd8PmFcGiYB0ehuwc36lERAAV/KHZvCo4O2beR1D/RLh1JDQ723cqEZEfUMGXR2kJTHsVRj8CpUXQ4SE49/dQqbLvZCIiP6KCL6vVc4NJ1PxpcHQ76NIHDjvGdyoRkf1SwR/Mru3w8VPw6YuQXQd++g849VpNoopI0lPBH8jC0TDkDihYBi26Bee1V6vrO5WISJmo4Pdly3fBza7nDoDDjoNbhkDu+b5TiYiUiwp+T6WlMON1GP0wFBUGN+A4/47g/qgiIilGBb/bmnnBPVGXfwa5baHrc1DvON+pREQOmQq+qBAmPAuT+ga3y7vyb3DGDZpEFZGUl94F/+14GHwHbPgWTrsOOj0O1ev5TiUiEhfpWfDb1sGIB2D2v6Du0dD9P8G57SIiEZJeBe8czHoLRj4YLBLW9m644G7IyvadTEQk7tKn4NctDA7HLPkEmp4Dlz8PDU70nUpEJDTRL/jinTDxefjk2WBP/fK+0KI7ZGT4TiYiEqpoF/ySSTD4dlj3NZxyNXR6Emoe7juViEhCRLPgt2+AUQ/BzP+FnCPhxgFw3MW+U4mIJFS0Ct45mPM+DO8NhRuhTU+48D6oXM13MhGRhItOwW/4FgbfCd+Og8atglMfjzjFdyoREW9CK3gzexXoCqxxzoXXtCVF8OkL8PEzkFkZLns2uH1eRmZoQ4qIpIIwTyV5Degc4vsHinfC1FfhuEvgt59D6/9SuYuIEOIevHNugpnlhvX+36tSA379sZYYEBHZi/eTwc2sh5lNM7Npa9euPbQ3UbmLiPyI94J3zvVzzrVyzrWqX7++7zgiIpGR8mfRfDgzn7wRC1hZUEijnGx6dWrOVS0a+44lIuJdShf8hzPz6T1wDoVFJQDkFxTSe+AcAJW8iKS90A7RmNk7wGSguZmtMLNfxnuMvBELvi/33QqLSsgbsSDeQ4mIpJwwz6K5Pqz33m1lQWG5vi4ikk68T7JWRKOcfa/jvr+vi4ikk5Qu+F6dmpOd9cOLmrKzMunVqbmnRCIiySOlJ1l3T6TqLBoRkR9L6YKHoORV6CIiP5bSh2hERGT/VPAiIhGlghcRiSgVvIhIRKngRUQiypxzvjN8z8zWAksP8dvrAeviGCdelKt8lKt8lKt8opjrSOfcPpfiTaqCrwgzm+aca+U7x96Uq3yUq3yUq3zSLZcO0YiIRJQKXkQkoqJU8P18B9gP5Sof5Sof5SqftMoVmWPwIiLyQ1HagxcRkT2o4EVEIiqlCt7MXjWzNWY2dz/Pm5m9YGbfmNlsM2uZJLnamdkmM5sV+3goQbmamtk4M/vKzL40s577eE3Ct1kZcyV8m5lZVTP73My+iOV6ZB+vqWJm78a21xQzy02SXLeY2do9ttevws61x9iZZjbTzAbv47mEb68y5vKyvcxsiZnNiY05bR/Px/f30TmXMh/ABUBLYO5+nr8MGAYYcA4wJUlytQMGe9heDYGWscc1ga+Bk3xvszLmSvg2i22DGrHHWcAU4Jy9XvMb4KXY4+uAd5Mk1y3Ai4n+GYuNfSfw9r7+f/nYXmXM5WV7AUuAegd4Pq6/jym1B++cmwBsOMBLrgTecIHPgBwza5gEubxwzq1yzs2IPd4CzAP2Xjw/4dusjLkSLrYNtsY+zYp97H0WwpXA67HH/wY6mJklQS4vzKwJ0AXov5+XJHx7lTFXsorr72NKFXwZNAaW7/H5CpKgOGLOjf2JPczMTk704LE/jVsQ7P3tyes2O0Au8LDNYn/WzwLWAKOcc/vdXs65YmATcFgS5AK4OvZn/b/NrGnYmWKeB+4BSvfzvJftVYZc4Gd7OWCkmU03sx77eD6uv49RK/hkNYNgvYjTgf8BPkzk4GZWAxgA3O6c25zIsQ/kILm8bDPnXIlz7gygCdDazE5JxLgHU4Zcg4Bc59xpwCj+f685NGbWFVjjnJse9ljlUcZcCd9eMec751oClwK/NbMLwhwsagWfD+z5L3GT2Ne8cs5t3v0ntnNuKJBlZvUSMbaZZRGU6FvOuYH7eImXbXawXD63WWzMAmAc0Hmvp77fXmZWCagNrPedyzm33jm3M/Zpf+DMBMRpA1xhZkuAfwHtzezNvV7jY3sdNJen7YVzLj/23zXAB0DrvV4S19/HqBX8R0D32Ez0OcAm59wq36HM7Ijdxx3NrDXBdg+9FGJjvgLMc8712c/LEr7NypLLxzYzs/pmlhN7nA10BObv9bKPgJtjj68BxrrY7JjPXHsdp72CYF4jVM653s65Js65XIIJ1LHOuW57vSzh26ssuXxsLzOrbmY1dz8GLgH2PvMurr+PKXXTbTN7h+DsinpmtgJ4mGDCCefcS8BQglnob4DtwC+SJNc1wH+bWTFQCFwX9g95TBvgJmBO7PgtwP1Asz2y+dhmZcnlY5s1BF43s0yCf1Dec84NNrNHgWnOuY8I/mH6XzP7hmBi/bqQM5U11x/M7AqgOJbrlgTk2qck2F5lyeVjex0OfBDbb6kEvO2cG25mt0E4v49aqkBEJKKidohGRERiVPAiIhGlghcRiSgVvIhIRKngRUQiSgUvIhJRKngRkYhSwYvsh5mdFVuMqmrsKsQvk2VtGpGy0IVOIgdgZn8GqgLZwArn3JOeI4mUmQpe5ADMrDIwFdgBnOecK/EcSaTMdIhG5MAOA2oQ3HmqqucsIuWiPXiRAzCzjwiWnD0KaOic+53nSCJlllKrSYokkpl1B4qcc2/HVnL81MzaO+fG+s4mUhbagxcRiSgdgxcRiSgVvIhIRKngRUQiSgUvIhJRKngRkYhSwYuIRJQKXkQkov4PgLg5z+MieJQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -131,6 +136,8 @@ "res = linregress(x, y)\n", "model = res.slope * x + res.intercept\n", "plt.plot(x, model, '-')\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", "plt.show()" ] }, @@ -138,7 +145,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This minimisation can be achieved for a straight line model through, linear regression, a mathematical operation which minimises the squared-residuals for each point. \n", + "This minimisation can be achieved for a straight line model through linear regression, a mathematical operation which minimises the squared-residuals for each point. \n", "The residuals are the difference between the model (the straight line) and the data. " ] }, @@ -149,7 +156,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -161,8 +168,10 @@ } ], "source": [ - "sq_resid = np.square(y - model)\n", + "sq_resid = np.square(model - y)\n", "plt.plot(x, sq_resid, 'o')\n", + "plt.xlabel('x')\n", + "plt.ylabel('(model - y)')\n", "plt.show()" ] }, @@ -216,7 +225,7 @@ "source": [ "## Interpolation\n", "\n", - "In the plots you have produced earlier, you might be able to notice that the vales for wavenumber that are measured in each spectra are not the sam. \n", + "In the plots you have produced earlier, you might be able to notice that the values for wavenumber that are measured in each spectra are not the same. \n", "This can be seen clearly if we print the minimum and maximum values for each spectra. \n", "These can be accessed using the [`np.amin()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.amin.html#numpy.amin) and [`np.amax()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.amax.html#numpy.amax) functions." ] @@ -235,11 +244,11 @@ "metadata": {}, "source": [ "In order to determine the $\\chi^2$-value between our model (outlined later) and the data (the mixture), it is necessary that the positions on the $x$-axis for the two are the same. \n", - "Additionaly, since our model will be created form mixing the toulene and benzyl alcohol spectra, we will need to normalised these $x$-axes. \n", + "Additionally, since our model will be created from mixing the toluene and benzyl alcohol spectra, we will need to normalised these $x$-axes. \n", "This technique of this is referred to as **interpolation**.\n", "\n", "Interpolation is where we determine new data points within the range of a discrete set of known points. \n", - "Essentially we use what we know about the $x$- and $y$-data and have an educated guess at the $y$-values for a different set of $x$-values. It is important that the new range of $x$ values is from within the exisiting range, or else we are [extrapolating](https://xkcd.com/605/), which can be very inaccurate. \n", + "Essentially we use what we know about the $x$- and $y$-data and have an educated guess at the $y$-values for a different set of $x$-values. It is important that the new range of $x$ values is from within the existing range, or else we are [extrapolating](https://xkcd.com/605/), which can be very inaccurate. \n", "For the data in this exercise, the range of the mixture data lies within the other two datasets, therefore we will use the wavenumber values from the mixture and interpolate new values for the isolated materials. \n", "\n", "To interpolate new $y$-values, we will use the [`np.interp()` function](https://docs.scipy.org/doc/numpy/reference/generated/numpy.interp.html). \n", @@ -291,7 +300,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD4CAYAAADFAawfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAcmElEQVR4nO3deXhU1eHG8e8hBBJZjKyyBRARRQXBiCKCLLKIVLFaEcWl1lJbq7VWQBAXXEHcKtUKdUdULAJaGhJ2AUWUTUARBGQLIGtYA1nm/P64Y3+AgUzIzJw7k/fzPHkyyUzmvl4zLzdn7j3HWGsRERH/KuM6gIiInJiKWkTE51TUIiI+p6IWEfE5FbWIiM+VjcSTVqtWzTZo0CASTy0iEpcWLly4w1pbvbD7IlLUDRo0YMGCBZF4ahGRuGSMWX+8+zT0ISLicypqERGfU1GLiPicilpExOdU1CIiPqeiFhHxORW1iIjPqahFRHxORS0iheo1ch69Rs5zHUNQUYuI+J6KWkTE51TUIiI+p6IWEfE5FbWIiM+pqEVEfE5FLSLicypqERGfU1GLiIRBJC8QCmkpLmPMOmAfUADkW2vTIpJGRER+oThrJnaw1u6IWBIRkRhmbAE1Cn6KyHNHZHFbEZFSZcN8ntlxL5UCeyD3Sih3SlifPtQxagtMMcYsNMb0LewBxpi+xpgFxpgF27dvD19CERG/2vcTTLgL3uxCpcAeRlfuC4nJYd9MqEfUl1lrs4wxNYCpxpjvrbWzj3yAtXYUMAogLS3NhjmniIh/FOTB/JEwaygUHIa2f+P+VW05XCYJjAn75kIqamttVvDzNmPMBKAVMPvEPyUiEofWzoL0/rBjJTTuAt2GQtVGHF4duSlhiyxqY0wFoIy1dl/wdhfg8YglEhHxo+yNMOUh+O4TOK0h9B4LTbpFZdOhHFHXBCYY73C+LPC+tTYjoqlERPwi7xB8MQLmPO993XEwtL4HEpOiFqHIorbWrgWaRyGLiIh/WAurMiDjQdi9Dpr2hC5PQkq9qEfR6Xki8gsTF2exeEM2uQUB2gydQb+uTejZoo7rWNGzcw1MHgCrp0L1s+HWT+CM9s7iqKhF5CgTF2cxcPwycgsCAGRl5zBw/DKA+C/rw/thznMw7xVIKA9dn4ZWfSEh0WksFbWIHGV45kpy8gqO+l5OXgHDM1fGb1FbC9+Oh8zBsG8zNL8JrngMKtV0nQxQUYvIMTZn5xTr+zHvp2+9YY51c6BWc7jhHajXynWqo6ioReQotVOSySqklGunhP+KO6dysmHWM/DVvyCpMvR4EVreBmUSXCf7BU1zKiJH6de1CcmJR5dVcmIC/bo2cZQozAIBWDQaRlwIX42CC2+HexZB2h2+LGnQEbWIHOPncej+45aSWxCgTkpy/Jz1kbUQ0vt5n+tdDN3He8MdPqeiFpFf6NmiDh98tQGAsX9o7ThNGBzYAdOHeEfSFWvAtSOhWa+IzMsRCSpqEYlfBfmw4E2Y+STkHoDWd8PlA7wx6RiiohaR+LT+C2+Y46fl3sUqVz4L1SMzzh7pC4RU1CISX/ZuhqmPwLJ/w6n14IZ34ZyrIzbMEY0LhFTUIhIf8nPhy1fhs2chkA/t+sNlfw37aivHisYFQipqEYl9q6d5F63sXA1NunuXfldpGJVNR+MCIRW1iMSu3esg8yH4fhJUaQQ3j4PGnaMaIRoXCOmCFxGJPbkHYebT8MrFsGamNy/Hn+ZFvaQhOhcI6YhaRGKHtd7Rc8Yg2LMBzrsOOj8Bp7q7GCcaFwipqEUkNmxfBZP7w9qZUKMp3DYJGrZ1nQqI/AVCKmoR8bfD++CzYfDlPyGxgnc+dNrvIKH01Ffp+S8VkdhirXcu9JSHYf9WaNEHOj0GFau7ThZ1KmoR8Z8tS71hjg3zoHZLuHEM1E1zncoZFbWI+MfBXTDzKW9+juTT4OoRcEEfKFO6T1BTUYuIe4ECWPQuTH8cDmXDRXdCh0FeWYuKWkQc2/g1pD8AW5ZA6qXQ/Vk4/XzXqXxFRS0ibuzfBtMegyVjoFItuO4N77zoGJkjOppU1CISXQV53jqFs56BvBxocx+0ewDKV3KdzLdU1CJSqIis7PLjbEjvD9tXQKNOcOUwqNY4/NuJMypqEYm8PZtgymD4dgKkpMKN73uz3GmYIyQqahGJnPzD8MUImPM82AC0HwRt7oXE8M0sVxqoqEUkMlZlenNE7/4RzvkVdHkKTqvvOlVMUlGLSHjtXAMZA+GHTKjaGPqMhzM7uU4V01TUIhIeuQdgzgvwxcuQUM6bfvTiu6BsOdfJYp6KWkRKxlr4biJkDoa9m6BZL7hiCFSu5TpZ3FBRi8jJ27YC0vvBujlQ83y47nWoH4HT+ko5FbWIFN+hPTBrKMwf6V2o0v05SLsDyiQU/bNSbCpqEQldIABLP4Spj8CBHXDhbdDxEahQ1XUy5yJygVBQyEVtjEkAFgBZ1toeEUskIv60ebE3zLHpa6h7Edz0EdRp6TpVqVCcI+q/ACuAyhHKIiJ+dGAnzHgcFr4DFarBNa9C896lfo7oaAqpqI0xdYGrgKeA+yOaSET8IVDgTeA/40lv3cJL/gjtH4SkU10nK3VCPaJ+CegPHHd6K2NMX6AvQGpqasmTiYg76+fB5H6wdRk0aOstKFuzqetUpVaRf7sYY3oA26y1C0/0OGvtKGttmrU2rXr10rf4pEhc2LcVxveFt7p5y2Jd/xbc9h+VtGOhHFG3Aa42xnQHkoDKxpj3rLV9IhtNRKImPxfmvwafDYOCXGj7N++jXAXXyYQQitpaOxAYCGCMaQ88oJIWiSNrZniTJ+1YBY27QrdnoGoj16nkCDqPWqS0yt4AmYNgxX/gtIbQeyw06eY6lRSiWEVtrZ0FzIpIEhGJjrwc+PxlmPsCYKDjYGh9DyQmuU4mx6EjapHSwlpYmQ4ZD3pH0017QpcnIaWe62RSBBW1SGmwYzVkDIDV06D62XDrp3DG5a5TSYhU1CLx7PB+mD0c5r3iLX/V9Rlo9XtISHSdTIpBRS0Sj6yF5R97C8ru2wIX3AydHoVKNV0nk5OgohaJN1uXw+T+sP5zqNUcbngX6rVynUpKQEUtEi9ydsPMZ+Drf0FSCvR4CVreqjmi44CKWiTWBQKw5D2Y9phX1ml3QIeH4JQqrpNJmKioRWLZpoWQ/gBsXgT1LoHuw6FWM9epJMxU1CKxaP92mD4EFo+GijXh2lHQ7AYwxnUyiQAVtUgsKciHBW/AjKcg7wBceg+06w9JWs8jnqmoRWLFurmQ3h+2fQtndIArh0H1Jq5TSRSoqEX8bk8WTH3YOy/61FTo9R6c3UPDHKWIilrEr/IPe1cUzn4OAvlw+QBocx+UO8V1MokyFbWIH/0wzbtoZdcaaHIVdH0KqjR0nUocUVGL+MmuH705olemQ5VGcPPH0PgK16nEMRW1iB/kHoS5L8Lnf4cyZeGKx+CSP0HZ8q6TiQ+oqEVcstZbYSVzEOzZCOddD12egMq1XScTH1FRi7iyfaU3Dr12FtQ4F27/LzS4zHUq8SEVtUi0HdrrrfY9/zVvle8rh3vzcyTo5SiF02+GSLRYC0s/8s6J3r8NWt7izRFdoZrrZOJzKmqRaNjyjXdV4cYvoc6F0PsD77NICFTUIpF0cBfMeBIWvgXJVeDqf3irrZQp4zqZxBAVtUgkBApg0Tsw/Qk4tAda9YX2AyE5xXUyiUEqapFw2/iVN0f0lm+g/mXQ/Vmoea7rVBLDVNQi4bLvJ2+VlW/eh0q14bo34LzrNHmSlJiKWqSkCvLgq1Ewayjk5cBlf4W2D0D5iq6TSZxQUYuUxNpZMHkAbP8ezuwM3YZCtTNdp5I4o6IWORnZG2HKYPhuIqTUh94fwlndNMwhEaGiFimOvEMwbwTMft77usNDcOm9kJjkNpfENRW1SKhWZkDGANi9Ds652psjOiXVdSopBVTUIkXZuQYyBsIPmVDtLLhlIjTq4DqVlCIqapHjyT0Ac56HL0ZAQnno8iS0+gOULec6mZQyKmqRY1kL307w3izcmwXNe3sT+Vc63XUyKaVU1CJH+uk7b47odXPg9PPh+jch9RLXqaSUU1GLgDcfx6yhMH8kJFWGq16AC2+HMgmuk4kUXdTGmCRgNlA++Phx1tpHIx1MJCoCAfjmA5j2KBzYAWm/hY4PwylVXCcT+Z9QjqgPAx2ttfuNMYnAXGPMZGvtlxHOJhJZWYu8YY5NX0PdVnDzOKh9getUIr9QZFFbay2wP/hlYvDDRjKUSEQd2AnTh8Cid6FCdej5GjTrpTmixbdCGqM2xiQAC4EzgVestfMLeUxfoC9AaqouAhD/ufG1uXQ+mM7vcsdA7n5ofTdcPsAbkxbxsZCK2lpbAFxgjEkBJhhjzrPWLj/mMaOAUQBpaWk64hZ/WT+PoTvuoUH+Wmh4OVz5LNQ423UqkZAU6289a202MBPoFpk4ImG2dwt8/Ht4qxsVA/t4IeUhuPUTlbTElFDO+qgO5Flrs40xyUBnYFjEk4mURH4uzP8nfPasN190u378dVUbck2SZriTmBPK0Ect4J3gOHUZ4CNr7aTIxhIpgdXTvTmid/4AZ10J3Z6GKmeQ+8M818lETkooZ30sBVpEIYtIyexeD5mD4PtJUOUMuOnfcFYX16lESkxXJkrsy8uBz/8Oc18EUwY6PQKt/wxly7tOJhIWKmqJXdbCynTIeBCyN8C5v4YuT8CpdV0nEwkrFbXEph0/eOPQa6ZDjaZw2yRo2NZ1KpGIUFFLbDm8D2YPh3mvQmIydBsGF90JCfpVlvil326JDdbCsnEw9WHYtwUu6ANXPAoVa4T04xMXZ7F4Qza5BQHaDJ1Bv65N6NmiToRDi4SHilr8b+tySO8HG76A2i2g13tQNy3kH5+4OIuB45eRWxAAICs7h4HjlwGorCUmaBYa8a+c3V5Bj2wLO1bCr16GO2cUq6QBhmeuJCev4OinzitgeObKcKYViRgdUYv/BAKweLQ3w13Obm8MusMgSD7tpJ5uc3ZOsb4v4jcqavGXTQsh/QHYvAhSW0P34d6SWCVQOyWZrEJKuXZKcomeVyRaNPQh/rB/O3xyN7zeEfZuhl+/Dr+dXOKSBujXtQnJiUcvqZWcmEC/rk1K/Nwi0aAjanGrIB++fh1mPg15B6HNX6BdPyhfKWyb+PkNw/7jlpJbEKBOSrLO+pCYoqIWd36c4y2Fte07aNTRmyO6WuOIbKpnizp88NUGAMb+oXVEtiESKSpqib49WTBlMHw7HlJSodcYOPsqTT8qchwqaome/MMw7xXvykIbgPYDvaGORL2pJ3IiKmqJjlVTvMmTdq2Bs3tA16fhtPquU4nEBBW1RNautZAxCFZNhqqNoc94OLOT61QiMUVFHcN6jfRWLPHlm2O5B2HuC/D5y5CQCJ0fh4v/CGXLuU4mEnNU1BJe1sJ3n3hvFu7ZCOff4JV05Vquk4nELBW1hM+2773T7X78DGqeB78eBfUvdZ1KJOapqKXkDu2Fz4bB/NegXAXo/hxc+FvNES0SJnolyckLBGDpWJj6CBzYDi1v9dYrrFDNdTKRuKKilpOzeYk3zLFxPtRJg5vGQp2WrlOdkC/fdBUJgYpaiufgLpjxBCx4yztyvuYVaH4TlNH8XiKRoqKW0AQKYOHbXkkf2gsX3wXtH4TkFNfJROKeilqKtmG+N0f01qXQoK03eVLNpq5TiZQaKmo5vn0/wbRH4ZsPoHIduP5NOPfXmjxJJMpU1DEqoqtqF+TB/JEwaygUHIbL7oe2f4PyFcPz/CJSLCrqGBTRVbXXzITJA7zFZBt3gW5DoWqjkkYWkRLQW/UxKCKramdvgLG3wOie3lF077Fw879V0iI+oCPqGBTWVbXzDsEXI2DO897XHQbDpfdAYlIJEopIOKmoY1BYVtW2FlZleHNE714HTa+BLk9BSr3wBRWRsNDQRwwq8araO9fAmN/ABzdCQnm49RO44V2VtIhP6Yg6Bp30qtqH98Oc57zlsBLKe6ustOrrzRctIr6loo5RxVpV21pY/jFMeRj2bYbmveGKIVCpZhSSikhJqajj3U/fQnp/WD8XTm8Gv3kbUi92nUpEiqHIojbG1APeBWoCFhhlrf17pINJCeVkw6xn4Kt/QVJl6PEitLwNyiQU/bMi4iuhHFHnA3+z1i4yxlQCFhpjplprv4twNjkZgQAsGQPTHoODOyHtDug4GE6p4jqZiJykIovaWrsF2BK8vc8YswKoA6io/SZrIaT38z7Xuxj6fAy1L3CdSkRKqFhj1MaYBkALYH4h9/UF+gKkpqaGIZqE7MAOmD4EFo2GCtXh2pHQrJcmTxKJEyEXtTGmIvAxcJ+1du+x91trRwGjANLS0mzYEspxlbEFdD74XxgxBnIPQOu74fIB3pi0iMSNkIraGJOIV9JjrLXjIxtJQrLuc4bu+DP183+EM9p7c0RXD/GCFxGJKUVemWiMMcAbwApr7QuRjyQntHczfHwnvN2dU+wBXkh5CG6ZqJIWiWOhHFG3AW4BlhljlgS/N8hamx65WPIL+bnw5avw2bMQyId2/bl/1aXkmiSNRYvEuVDO+pgLqAlcWj3NmyN652po0t279LtKQ0Z3dB1MRKJBVyb62e51kPkQfD8JqjSCm8dB486uU4lIlKmo/Sj3IHz+Enz+dzAJ0OlR74yOsuVdJxMRB1TUfmKtd/ScMQj2bIDzroPOT8CpYVoLUURikoraL7avgsn9Ye1MqNEUbpsEDdu6TiUiPqCidu3wPvhsGHz5T0isAN2GwUV3QoL+14iIR23girWw7N/eHNH7t0KLPtDpMahY3XUyEfEZFbULW5Z6wxwb5kHtlnDjGKib5jqViPiUijqaDu6CmU/Bgjch+TS4egRc0AfKaOlKETk+FXU0BApg8WiYNgQOZXtj0B0GeWUtIlIEFXWkbfwa0h+ALUsg9VLo/iycfr7rVCISQ1TUkbJ/m7fKypIxUKkWXPeGd1605uUQkWJSUYdbQR58/TrMfBrycqDNfdDuAShfyXUyEYlRKupw+nG2t+L39hXQqBNcOQyqNXadSkRinIo6HPZsgimD4dsJkJIKN77vzXKnYQ4RCQMVdUnkH4YvRsCc58EGoP0gaHMvJCa7TiYicURFfbJWZULGg7BrLZzzK+jyFJxW33UqEYlDKuri2rUWMgbCqgyodhbcMgEaaQZ/EYkcFXWocg/AnBfgi5choZw3/ejFd0HZcq6TiUicU1EXxVr4biJkDoa9m6BZL7hiCFSu5TqZiJQSKuoT2bbCmzzpx9lQ83y47nWo39p1KhEpZVTUhTm0B2YNg/mveReqdH8O0u6AMgmuk4lIKaSiPlIgAEs/hKmPwoHtcOFt0PERqFDVdTIRKcVU1D/bvATS+8Gmr6DuRXDzR1C7hetUIiIqag7ugumPw8K3oUI1uOZVaN5bc0SLiG+U3qIOFMDCt2D6E966hZf8Edo/CEmnuk4mInKU0lnUG7705ojeugwatIXuw6HGOa5TiYgUqnQV9b6t3huFSz+EynXg+rfg3Gs1eZKI+FrpKOr8XO9Uu8+ehYLD0PYBaHs/lKvgOpmISJHiv6jXzIDJA2DHKmjcFbo9A1UbuU4lIhKy+C3q7A2Q+RCs+BROawi9x0KTbq5TiYgUW/wVdV4OfP4yzH3R+7rjw9D6z5CY5DaXiMhJip+ithZWTvbmiM5eD017QpcnIaWe62QiIiUSH0W9YzVkDIDV06D62XDrp3DG5a5TiYiERWwX9eH9MHs4zHvFW/6q6zPQ6veQkOg6mYhI2MRmUVsLyz+GKQ/Dvs1wwc3Q6VGoVNN1MhGRsCuyqI0xbwI9gG3W2vMiH6kIW5d7p9utnwu1msMN70C9Vq5TiYhETChH1G8D/wDejWyUIuRkw8yn4et/QVIK9HgJWt6qOaJFJO4VWdTW2tnGmAaRj3IcgQAseQ+mDYGcXd4E/h0eglOqOIskIhJNYRujNsb0BfoCpKamntRz9Bo5D4Cxfwgud7VpoTd50uZFUO8Sb/KkWs3CkldEJFaEraittaOAUQBpaWm2RE92YAdMewwWj4aKNeHaUdDsBk2eJCKlkm/O+pi4OIvFG3aTWxCgzZM/0K/sOnq2vQfa9Yekyq7jiYg444uinrg4i4Hjl5JbYAFDlq3KQPsnqN6cnippESnlilxvyhjzATAPaGKM2WSM+V24QwzPXElOXuCo7+XkW4Znrgz3pkREYk4oZ330jnSIzdk5xfq+iEhp4osVXGunJBfr+yIipYkvirpf1yYkJx594UpyYgL9ujZxlEhExD988WZizxZ1AOg/bim5BQHqpCTTr2uT/31fRKQ080VRg1fWKmYRkV/yxdCHiIgcn4paRMTnVNQiIj6nohYR8TkVtYiIz6moRUR8TkUtIuJzKmoREZ9TUYuI+JyxtmSLsRT6pMZsB9af5I9XA3aEMU64KFfxKFfxKFfxxGOu+tba6oXdEZGiLgljzAJrbZrrHMdSruJRruJRruIpbbk09CEi4nMqahERn/NjUY9yHeA4lKt4lKt4lKt4SlUu341Ri4jI0fx4RC0iIkdQUYuI+JyTojbGvGmM2WaMWX6c+40x5mVjzGpjzFJjTEuf5GpvjNljjFkS/HgkSrnqGWNmGmO+M8Z8a4z5SyGPifo+CzFX1PeZMSbJGPOVMeabYK4hhTymvDFmbHB/zTfGNPBJrtuNMduP2F93RjrXEdtOMMYsNsZMKuS+qO+vEHM52V/GmHXGmGXBbS4o5P7wvh6ttVH/ANoBLYHlx7m/OzAZMMAlwHyf5GoPTHKwv2oBLYO3KwGrgKau91mIuaK+z4L7oGLwdiIwH7jkmMf8CXgtePtGYKxPct0O/CPav2PBbd8PvF/Y/y8X+yvEXE72F7AOqHaC+8P6enRyRG2tnQ3sOsFDrgHetZ4vgRRjTC0f5HLCWrvFWrsoeHsfsAI4doHJqO+zEHNFXXAf7A9+mRj8OPZd82uAd4K3xwGdjDHGB7mcMMbUBa4CXj/OQ6K+v0LM5VdhfT36dYy6DrDxiK834YMCCGod/NN1sjHm3GhvPPgnZwu8o7EjOd1nJ8gFDvZZ8M/lJcA2YKq19rj7y1qbD+wBqvogF8B1wT+Xxxlj6kU6U9BLQH8gcJz7neyvEHKBm/1lgSnGmIXGmL6F3B/W16Nfi9qvFuFdj98cGAFMjObGjTEVgY+B+6y1e6O57RMpIpeTfWatLbDWXgDUBVoZY86LxnaLEkKu/wANrLXNgKn8/1FsxBhjegDbrLULI72t4ggxV9T3V9Bl1tqWwJXA3caYdpHcmF+LOgs48l/GusHvOWWt3fvzn67W2nQg0RhTLRrbNsYk4pXhGGvt+EIe4mSfFZXL5T4LbjMbmAl0O+au/+0vY0xZ4FRgp+tc1tqd1trDwS9fBy6MQpw2wNXGmHXAh0BHY8x7xzzGxf4qMpej/YW1Niv4eRswAWh1zEPC+nr0a1F/CtwafOf0EmCPtXaL61DGmNN/HpczxrTC238Rf3EHt/kGsMJa+8JxHhb1fRZKLhf7zBhT3RiTErydDHQGvj/mYZ8CtwVvXw/MsMF3gVzmOmYc82q8cf+IstYOtNbWtdY2wHujcIa1ts8xD4v6/goll4v9ZYypYIyp9PNtoAtw7JliYX09lj3ptCVgjPkA72yAasaYTcCjeG+sYK19DUjHe9d0NXAQ+K1Pcl0P/NEYkw/kADdG+pc1qA1wC7AsOL4JMAhIPSKbi30WSi4X+6wW8I4xJgHvH4aPrLWTjDGPAwustZ/i/QMz2hizGu8N5BsjnCnUXPcaY64G8oO5bo9CrkL5YH+FksvF/qoJTAgef5QF3rfWZhhj7oLIvB51CbmIiM/5dehDRESCVNQiIj6nohYR8TkVtYiIz6moRUR8TkUtIuJzKmoREZ/7P+ivzCQ+VuZpAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -316,6 +325,8 @@ "popt, pcov = curve_fit(straight_line, x, y, sigma=dy)\n", "model = popt[0] * x + popt[1]\n", "plt.plot(x, model, '-')\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", "plt.show()" ] }, @@ -344,9 +355,13 @@ "source": [ "In order to consider the uncertainty, there is a slight modification to the $\\chi^2$-calculation, where the square residual is divided by the uncertainty,\n", "\n", - "$$ \\chi^2 = \\sum_{i=1}^{N}\\bigg[\\frac{y_{\\mathrm{model}, i} - y_{\\mathrm{exp}, i}}{\\mathrm{d}y_{\\mathrm{exp}, i}}\\bigg]^2, $$\n", + "$$ \\chi^2 = \\sum_{x=1}^{N}\\bigg[\\frac{y_{\\mathrm{model}}(x) - y_{\\mathrm{exp}}(x)}{\\mathrm{d}y_{\\mathrm{exp}}(x)}\\bigg]^2, $$\n", "\n", - "where $y_{\\mathrm{model}, i}$ is the model value at $i$, $y_{\\mathrm{exp}, i}$ is the experimental value at $i$, $\\mathrm{d}y_{\\mathrm{exp}, i}$ is the uncertainty at $i$, and $N$ is the number of points in the dataset. \n", + "where $y_{\\mathrm{model}}(x)$ is the model value at $x$, $y_{\\mathrm{exp}}(x)$ is the experimental value at $x$, $\\mathrm{d}y_{\\mathrm{exp}}(x)$ is the uncertainty at $x$, and $N$ is the number of points in the dataset. \n", + "For example, in the data above, \n", + "- There are 5 datapoints, so $N=5$,\n", + "- When $x=3$, $y_{\\mathrm{exp}}(3) = 2.7$ and $\\mathrm{d}y_{\\mathrm{exp}}(3) = 0.3$,\n", + "- The model value when $x=3$ can be found from the straight line equation, so is the gradient is 1 and intercept is 0, then $y_{\\mathrm{model}}(x) = 1\\times3 + 0 = 3$.\n", "\n", "In the cell below, define a new function to calculate the $\\chi^2$ value for **real** data." ] From 01dbd7b17f276850de2a7a89981e986d5c21fd78 Mon Sep 17 00:00:00 2001 From: Andrew McCluskey Date: Mon, 4 May 2020 07:30:35 +0100 Subject: [PATCH 3/3] fix final typo --- content/data_work/ir_spectra.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/data_work/ir_spectra.ipynb b/content/data_work/ir_spectra.ipynb index b9db855..d7291b7 100644 --- a/content/data_work/ir_spectra.ipynb +++ b/content/data_work/ir_spectra.ipynb @@ -361,7 +361,7 @@ "For example, in the data above, \n", "- There are 5 datapoints, so $N=5$,\n", "- When $x=3$, $y_{\\mathrm{exp}}(3) = 2.7$ and $\\mathrm{d}y_{\\mathrm{exp}}(3) = 0.3$,\n", - "- The model value when $x=3$ can be found from the straight line equation, so is the gradient is 1 and intercept is 0, then $y_{\\mathrm{model}}(x) = 1\\times3 + 0 = 3$.\n", + "- The model value when $x=3$ can be found from the straight line equation, so if the gradient is 1 and intercept is 0, then $y_{\\mathrm{model}}(x) = 1\\times3 + 0 = 3$.\n", "\n", "In the cell below, define a new function to calculate the $\\chi^2$ value for **real** data." ] @@ -440,4 +440,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file