diff --git a/time_spline/main.py b/time_spline/main.py new file mode 100644 index 0000000000000000000000000000000000000000..2375c156b34e2cb1d11408dfda7d4f1e2e17d381 --- /dev/null +++ b/time_spline/main.py @@ -0,0 +1,114 @@ +import matplotlib.pyplot as plt +import numpy as np +import math + + +def hermite1000(x, h): + mask = (x >= -h) & (x <= h) + return mask * np.polyval([2/(h*h*h), -3/(h*h), 0, 1], np.abs(x)) + + +def hermite0100(x, h): + mask = (x >= -h) & (x <= h) + return mask * np.polyval([1/(h*h), -2/h, 1, 0], np.abs(x))*np.sign(x) + + +def main(): + n = 512 + n_coarse = 8 + x = np.linspace(-2, 10, n) + y = np.zeros((n,)) + x_coarse = np.arange(n_coarse) + y_coarse = np.sin(math.pi * x_coarse/n_coarse) + + y_coarse_pad = np.zeros((n_coarse+2,)) + y_coarse_pad[1:-1] = y_coarse + + # y_dot = y_coarse_pad[2:] - y_coarse_pad[:-2] + y_dot = math.pi * np.cos(math.pi * x_coarse/n_coarse) / n_coarse + # y_dot = np.cos(math.pi * x_coarse/n_coarse) + # y_coarse = [1, 2, 0.5, 3, ] + + for i in range(n_coarse): + h1 = hermite1000(x - i, 1) + h2 = hermite0100(x - i, 1) + y += h1 * y_coarse[i] + y += h2 * y_dot[i] + + plt.figure() + plt.plot(x_coarse, y_coarse, "r.-") + # plt.plot(x_coarse, y_dot, "r.-") + plt.plot(x, y, 'b') + plt.show() + + return + + # for + h1 = hermite1000(x, 1) + h2 = hermite0100(x, 1) + h1_1 = hermite1000(x-1, 1) + h2_1 = hermite0100(x-1, 1) + + # 1 2 + y = h1 + 2*h1_1 + h2 * 1 + h2_1 * 0 + + plt.figure() + plt.plot(x, y, "b") + # plt.plot(x, h2, "r") + # plt.plot(x, h1_1, "b") + # plt.plot(x, h2_1, "r") + plt.show() + + +def main2(): + x = np.loadtxt("x.txt") + v = np.loadtxt("v.txt") + t = np.loadtxt("t.txt") + # p = np.polyfit(t, x, 5) + # x_approx = np.polyval(p,t) + + k = 60 + t_coarse = t[::k] + x_coarse = x[::k] + v_coarse = v[::k] + # print(len(t)) + # t_coa + # x_coarse = x[] + + # x_dot = np.zeros_like(x) + # x_dot[:-1] = (x[1:] - x[:-1])/(t[1:] - t[:-1]) + + plt.figure() + plt.plot(t, x, 'b') + plt.plot(t_coarse, x_coarse, 'bo') + # plt.plot(t, x_dot) + # plt.plot(t, v, 'r') + # + # plt.show() + # return + + h = t_coarse[1] - t_coarse[0] + + n_coarse = len(t_coarse) + + x_approx = np.zeros_like(x) + for i in range(n_coarse): + s1 = hermite1000(t - i * h, h) + s2 = hermite0100(t - i * h, h) + x_approx += s1 * x_coarse[i] + x_approx += s2 * v_coarse[i] + + print(n_coarse) + + plt.plot(t, x_approx, 'r') + + plt.figure() + plt.plot(t, x-x_approx, "r") + plt.title("error") + # plt.plot(t_coarse, x_coarse, "r.") + plt.show() + # print(x) + + +if __name__ == "__main__": + main2() diff --git a/time_spline/t.txt b/time_spline/t.txt new file mode 100644 index 0000000000000000000000000000000000000000..7f9375bbf26b8f531ae28b39e9aca9f80fd28e20 --- /dev/null +++ b/time_spline/t.txt @@ -0,0 +1,301 @@ +0 +0.01 +0.02 +0.03 +0.04 +0.05 +0.060000000000000005 +0.07 +0.08 +0.09 +0.09999999999999999 +0.10999999999999999 +0.11999999999999998 +0.12999999999999998 +0.13999999999999999 +0.15 +0.16 +0.17 +0.18000000000000002 +0.19000000000000003 +0.20000000000000004 +0.21000000000000005 +0.22000000000000006 +0.23000000000000007 +0.24000000000000007 +0.25000000000000006 +0.26000000000000006 +0.2700000000000001 +0.2800000000000001 +0.2900000000000001 +0.3000000000000001 +0.3100000000000001 +0.3200000000000001 +0.3300000000000001 +0.34000000000000014 +0.35000000000000014 +0.36000000000000015 +0.37000000000000016 +0.38000000000000017 +0.3900000000000002 +0.4000000000000002 +0.4100000000000002 +0.4200000000000002 +0.4300000000000002 +0.4400000000000002 +0.45000000000000023 +0.46000000000000024 +0.47000000000000025 +0.48000000000000026 +0.49000000000000027 +0.5000000000000002 +0.5100000000000002 +0.5200000000000002 +0.5300000000000002 +0.5400000000000003 +0.5500000000000003 +0.5600000000000003 +0.5700000000000003 +0.5800000000000003 +0.5900000000000003 +0.6000000000000003 +0.6100000000000003 +0.6200000000000003 +0.6300000000000003 +0.6400000000000003 +0.6500000000000004 +0.6600000000000004 +0.6700000000000004 +0.6800000000000004 +0.6900000000000004 +0.7000000000000004 +0.7100000000000004 +0.7200000000000004 +0.7300000000000004 +0.7400000000000004 +0.7500000000000004 +0.7600000000000005 +0.7700000000000005 +0.7800000000000005 +0.7900000000000005 +0.8000000000000005 +0.8100000000000005 +0.8200000000000005 +0.8300000000000005 +0.8400000000000005 +0.8500000000000005 +0.8600000000000005 +0.8700000000000006 +0.8800000000000006 +0.8900000000000006 +0.9000000000000006 +0.9100000000000006 +0.9200000000000006 +0.9300000000000006 +0.9400000000000006 +0.9500000000000006 +0.9600000000000006 +0.9700000000000006 +0.9800000000000006 +0.9900000000000007 +1.0000000000000007 +1.0100000000000007 +1.0200000000000007 +1.0300000000000007 +1.0400000000000007 +1.0500000000000007 +1.0600000000000007 +1.0700000000000007 +1.0800000000000007 +1.0900000000000007 +1.1000000000000008 +1.1100000000000008 +1.1200000000000008 +1.1300000000000008 +1.1400000000000008 +1.1500000000000008 +1.1600000000000008 +1.1700000000000008 +1.1800000000000008 +1.1900000000000008 +1.2000000000000008 +1.2100000000000009 +1.2200000000000009 +1.2300000000000009 +1.2400000000000009 +1.2500000000000009 +1.260000000000001 +1.270000000000001 +1.280000000000001 +1.290000000000001 +1.300000000000001 +1.310000000000001 +1.320000000000001 +1.330000000000001 +1.340000000000001 +1.350000000000001 +1.360000000000001 +1.370000000000001 +1.380000000000001 +1.390000000000001 +1.400000000000001 +1.410000000000001 +1.420000000000001 +1.430000000000001 +1.440000000000001 +1.450000000000001 +1.460000000000001 +1.470000000000001 +1.480000000000001 +1.490000000000001 +1.500000000000001 +1.5100000000000011 +1.5200000000000011 +1.5300000000000011 +1.5400000000000011 +1.5500000000000012 +1.5600000000000012 +1.5700000000000012 +1.5800000000000012 +1.5900000000000012 +1.6000000000000012 +1.6100000000000012 +1.6200000000000012 +1.6300000000000012 +1.6400000000000012 +1.6500000000000012 +1.6600000000000013 +1.6700000000000013 +1.6800000000000013 +1.6900000000000013 +1.7000000000000013 +1.7100000000000013 +1.7200000000000013 +1.7300000000000013 +1.7400000000000013 +1.7500000000000013 +1.7600000000000013 +1.7700000000000014 +1.7800000000000014 +1.7900000000000014 +1.8000000000000014 +1.8100000000000014 +1.8200000000000014 +1.8300000000000014 +1.8400000000000014 +1.8500000000000014 +1.8600000000000014 +1.8700000000000014 +1.8800000000000014 +1.8900000000000015 +1.9000000000000015 +1.9100000000000015 +1.9200000000000015 +1.9300000000000015 +1.9400000000000015 +1.9500000000000015 +1.9600000000000015 +1.9700000000000015 +1.9800000000000015 +1.9900000000000015 +2.0000000000000013 +2.010000000000001 +2.020000000000001 +2.0300000000000007 +2.0400000000000005 +2.0500000000000003 +2.06 +2.07 +2.0799999999999996 +2.0899999999999994 +2.099999999999999 +2.109999999999999 +2.1199999999999988 +2.1299999999999986 +2.1399999999999983 +2.149999999999998 +2.159999999999998 +2.1699999999999977 +2.1799999999999975 +2.1899999999999973 +2.199999999999997 +2.209999999999997 +2.2199999999999966 +2.2299999999999964 +2.239999999999996 +2.249999999999996 +2.259999999999996 +2.2699999999999956 +2.2799999999999954 +2.289999999999995 +2.299999999999995 +2.3099999999999947 +2.3199999999999945 +2.3299999999999943 +2.339999999999994 +2.349999999999994 +2.3599999999999937 +2.3699999999999934 +2.3799999999999932 +2.389999999999993 +2.399999999999993 +2.4099999999999926 +2.4199999999999924 +2.429999999999992 +2.439999999999992 +2.4499999999999917 +2.4599999999999915 +2.4699999999999913 +2.479999999999991 +2.489999999999991 +2.4999999999999907 +2.5099999999999905 +2.5199999999999902 +2.52999999999999 +2.53999999999999 +2.5499999999999896 +2.5599999999999894 +2.569999999999989 +2.579999999999989 +2.5899999999999888 +2.5999999999999885 +2.6099999999999883 +2.619999999999988 +2.629999999999988 +2.6399999999999877 +2.6499999999999875 +2.6599999999999873 +2.669999999999987 +2.679999999999987 +2.6899999999999866 +2.6999999999999864 +2.709999999999986 +2.719999999999986 +2.7299999999999858 +2.7399999999999856 +2.7499999999999853 +2.759999999999985 +2.769999999999985 +2.7799999999999847 +2.7899999999999845 +2.7999999999999843 +2.809999999999984 +2.819999999999984 +2.8299999999999836 +2.8399999999999834 +2.849999999999983 +2.859999999999983 +2.869999999999983 +2.8799999999999826 +2.8899999999999824 +2.899999999999982 +2.909999999999982 +2.9199999999999817 +2.9299999999999815 +2.9399999999999813 +2.949999999999981 +2.959999999999981 +2.9699999999999807 +2.9799999999999804 +2.9899999999999802 +2.99999999999998 diff --git a/time_spline/v.txt b/time_spline/v.txt new file mode 100644 index 0000000000000000000000000000000000000000..a7273f67bd39047a89cd798fc1f00fd373a99cce --- /dev/null +++ b/time_spline/v.txt @@ -0,0 +1,301 @@ +0 +0.05 +0.0998 +0.1494008 +0.1988031968 +0.2480079840128 +0.2970159520767488 +0.3458278882684418 +0.39444457671536803 +0.44286679840850657 +0.49109533121487253 +0.5391309498900131 +0.586974426090453 +0.6346265283860912 +0.6820880222725468 +0.7293596701834566 +0.7764422315027227 +0.8233364625767119 +0.870043116726405 +0.9165629442594994 +0.9628966924824613 +1.0090451057125316 +1.0550089252896815 +1.1007888895885227 +1.1463857340301686 +1.191800191094048 +1.2370329903296717 +1.282084858368353 +1.3269565189348798 +1.3716486928591403 +1.4161620980877037 +1.460497449695353 +1.5046554598965716 +1.5486368380569853 +1.5924422907047573 +1.6360725215419383 +1.6795282314557705 +1.7228101185299474 +1.7659188780558275 +1.8088552025436042 +1.85161978173343 +1.8942133026064962 +1.9366364493960702 +1.978889903598486 +2.020974343984092 +2.0628904466081557 +2.104638884821723 +2.146220329282436 +2.1876354479653064 +2.228884906173445 +2.269969366548751 +2.310889489082556 +2.351645931126226 +2.392239347401721 +2.4326703900121145 +2.472939708452066 +2.513047949618258 +2.552995757819785 +2.5927837747885056 +2.6324126396893517 +2.6718829891305944 +2.711195457174072 +2.7503506753453757 +2.789349272643994 +2.828191875553418 +2.8668791080512044 +2.9054115916189995 +2.9437899452525236 +2.9820147854715136 +3.0200867263296276 +3.058006379424309 +3.095774353906612 +3.1333912564909854 +3.1708576914650215 +3.2081742606991615 +3.245341563656365 +3.2823601974017396 +3.3192307566121326 +3.355953833585684 +3.392530018251341 +3.4289598981783356 +3.4652440585856223 +3.5013830823512797 +3.5373775500218745 +3.573228039821787 +3.6089351276625 +3.64449938715185 +3.6799213896032423 +3.7152017040448295 +3.75034089722865 +3.7853395336397355 +3.8201981755051766 +3.8549173828031558 +3.8894977132719433 +3.9239397224188557 +3.9582439635291804 +3.9924109876750635 +4.026441343724363 +4.0603355783494655 +4.094094236036067 +4.127717859091923 +4.161206987655555 +4.194562159704932 +4.227783911066113 +4.2608727754218485 +4.293829284320161 +4.32665396718288 +4.359347351314148 +4.391909961908891 +4.424342322061256 +4.456644952773011 +4.488818372961919 +4.520863099470072 +4.5527796470721915 +4.584568528483903 +4.616230254369968 +4.6477653333524875 +4.679174272019077 +4.7104575749310005 +4.741615744631276 +4.772649281652751 +4.80355868452614 +4.834344449788036 +4.865007071988884 +4.895547043700928 +4.925964855526124 +4.95626099610402 +4.986435952119604 +5.016490208311126 +5.046424247477881 +5.076238550487969 +5.105933596286017 +5.135509861900873 +5.16496782245327 +5.194307951163457 +5.223530719358803 +5.252636596481368 +5.281626050095443 +5.310499545895061 +5.3392575477114805 +5.367900517520635 +5.396428915450552 +5.42484319978875 +5.453143826989595 +5.481331251681636 +5.50940592667491 +5.53736830296821 +5.565218829756337 +5.592957954437312 +5.620586122619562 +5.548103778129084 +5.475911363016568 +5.404007717564502 +5.332391686694244 +5.261062119947467 +5.190017871467677 +5.119257799981806 +5.048780768781879 +4.978585645706751 +4.908671303123924 +4.839036617911429 +4.769680471439783 +4.700601749554024 +4.631799342555808 +4.563272145185585 +4.495019056604843 +4.427038980378423 +4.35933082445691 +4.291893501159082 +4.224725927154446 +4.1578270234458286 +4.091195715352045 +4.024830932490637 +3.9587316087606745 +3.892896682325632 +3.827325095596329 +3.762015795213944 +3.6969677320330883 +3.632179861104956 +3.5676511416605363 +3.503380537093894 +3.4393670149455184 +3.3756095468857366 +3.3121071086981937 +3.248858680263401 +3.1858632455423472 +3.123119792560178 +3.0606273133899373 +2.9983848041363776 +2.9363912649198323 +2.874645699860153 +2.8131471170607125 +2.75189452859247 +2.6908869504781 +2.6301234026761877 +2.569602909065483 +2.5093244974292213 +2.4492871994395045 +2.3894900506417462 +2.329932090439179 +2.2706123620774226 +2.211529912629113 +2.1526837929785962 +2.094073057806682 +2.035696765575455 +1.9775539785131533 +1.9196437625991007 +1.8619651875487044 +1.8045173267985095 +1.7472992574913155 +1.6903100604613503 +1.633548820219505 +1.577014624938627 +1.5207065664388724 +1.4646237401731168 +1.4087652452124244 +1.3531301842315746 +1.2977176634946483 +1.2425267928406698 +1.1875566856693072 +1.13280645892663 +1.0782752330909235 +1.02396213215856 +0.9698662836299257 +0.915986818495406 +0.8623228712214244 +0.8088735797365387 +0.7556380854175926 +0.7026155330759222 +0.6498050709436185 +0.597205850659844 +0.5448170272572046 +0.49263775914817576 +0.44066720811158305 +0.3889045392791367 +0.33734892112202014 +0.28599952543753204 +0.2348555273357819 +0.18391610522643878 +0.13318044080553304 +0.08264771904231091 +0.03231712816614167 +-0.017812140346522898 +-0.06774089178513681 +-0.11746992821799626 +-0.1670000485051243 +-0.2163320483111038 +-0.2654667201178594 +-0.3144048532373879 +-0.36314723382443836 +-0.4116946448891406 +-0.46004786630958405 +-0.5082076748443457 +-0.5561748441449683 +-0.6039501447683885 +-0.6515343441893149 +-0.6989282068125576 +-0.7461324939853073 +-0.7931479640093662 +-0.8399753721533287 +-0.8866154706647155 +-0.9330690087820566 +-0.9793367327469283 +-1.0254193858159406 +-1.0713177082726768 +-1.1170324374395861 +-1.1625643076898278 +-1.2079140504590684 +-1.2530823942572322 +-1.2980700646802033 +-1.3428777844214825 +-1.3875062732837966 +-1.4319562481906614 +-1.4762284231978988 +-1.5203235095051073 +-1.564242215467087 +-1.6079852466052187 +-1.6515533056187979 +-1.6949470923963226 +-1.7381673040267374 +-1.7812146348106304 +-1.824089776271388 +-1.8667934171663023 +-1.909326243497637 +-1.9516889385236464 +-1.9938821827695519 +-2.035906654038474 +-2.07776302742232 +-2.119451975312631 +-2.1609741674113803 +-2.2023302707417347 +-2.243520949658768 +-2.2845468658601327 +-2.325408678396692 +-2.366107043683105 +-2.406642615508373 +-2.447016045046339 +-2.487227980866154 +-2.5272790689426894 +-2.5671699526669185 +-2.6069012728562506 diff --git a/time_spline/x.txt b/time_spline/x.txt new file mode 100644 index 0000000000000000000000000000000000000000..a157ace58d3d90e76d47b17e9e5f7148d3de8189 --- /dev/null +++ b/time_spline/x.txt @@ -0,0 +1,301 @@ +0 +0.0005 +0.001498 +0.002992008 +0.004980039968 +0.007460119808128 +0.010430279328895488 +0.013888558211579905 +0.017833003978733587 +0.022261671962818655 +0.02717262527496738 +0.032563934773867514 +0.038433679034772045 +0.044779944318632955 +0.05160082454135843 +0.058894421243192996 +0.06665884355822023 +0.07489220818398734 +0.08359263935125139 +0.09275826879384638 +0.10238723571867099 +0.11247768677579631 +0.12302777602869312 +0.13403566492457836 +0.14549952226488005 +0.15741752417582053 +0.16978785407911726 +0.1826087026628008 +0.1958782678521496 +0.209594754780741 +0.22375637576161803 +0.23836135025857155 +0.2534079048575373 +0.2688942732381071 +0.2848186961451547 +0.3011794213605741 +0.31797470367513175 +0.33520280486043125 +0.3528619936409895 +0.37095054566642555 +0.38946674348375987 +0.4084088765098248 +0.4277752410037855 +0.44756414003977035 +0.4677738834796113 +0.48840278794569286 +0.5094491767939101 +0.5309113800867344 +0.5527877345663875 +0.575076583628122 +0.5977762772936095 +0.6208851721844351 +0.6444016314956973 +0.6683240249697145 +0.6926507288698357 +0.7173801259543564 +0.742510605450539 +0.7680405630287369 +0.793968400776622 +0.8202925271735155 +0.8470113570648214 +0.8741233116365622 +0.901626818390016 +0.9295203111164559 +0.9578022298719902 +0.9864710209525022 +1.0155251368686922 +1.0449630363212175 +1.0747831841759325 +1.1049840514392288 +1.135564115233472 +1.1665218587725381 +1.197855771337448 +1.2295643482520981 +1.2616460908590899 +1.2940995064956535 +1.3269231084696709 +1.3601154160357922 +1.3936749543716491 +1.4276002545541626 +1.461889853535946 +1.496542294121802 +1.531556124945315 +1.5669299004455337 +1.6026621808437516 +1.6387515321203765 +1.675196525991895 +1.7119957398879275 +1.7491477569283758 +1.7866511659006623 +1.8245045612370596 +1.8627065429921115 +1.901255716820143 +1.9401506939528623 +1.9793900911770508 +2.0189725308123427 +2.058896640689093 +2.099161054126337 +2.1397644099098314 +2.1807053522701922 +2.2219825308611116 +2.263594600737667 +2.3055402223347166 +2.347818061445378 +2.3904267891995965 +2.433365082042798 +2.4766316217146267 +2.5202250952277683 +2.564144194846857 +2.6083876180674697 +2.6529540675952 +2.6978422513248193 +2.74305088231952 +2.788578678790242 +2.834424364075081 +2.8805866666187807 +2.9270643199523056 +2.9738560626724966 +3.0209606384218066 +3.068376795868119 +3.1161032886846467 +3.164138875529908 +3.2124823200277883 +3.2611323907476772 +3.3100878611846865 +3.3593475097399477 +3.408910119700988 +3.4587744792221837 +3.508939381305295 +3.559403623780074 +3.6101660092849537 +3.661225345247814 +3.7125804438668224 +3.764230122091355 +3.81617320160299 +3.868408508796578 +3.9209348747613917 +3.9737511352623462 +4.0268561307212964 +4.080248706198411 +4.133927711373618 +4.187892000528123 +4.242140432526011 +4.296671870795906 +4.351485183312723 +4.406579242579472 +4.461952925609154 +4.5176051139067175 +4.573534693451091 +4.629740554677286 +4.685221592458577 +4.739980706088742 +4.794020783264387 +4.8473447001313295 +4.899955321330804 +4.951855500045481 +5.003048078045299 +5.053535885733117 +5.103321742190185 +5.152408455221424 +5.2007988214005385 +5.248495626114936 +5.295501643610477 +5.341819637036035 +5.387452358487891 +5.432402549053939 +5.476672938857723 +5.520266247102292 +5.563185182113883 +5.605432441385427 +5.6470107116198855 +5.687922668773406 +5.728170978098312 +5.767758294185919 +5.806687261009175 +5.844960511965138 +5.882580669917278 +5.9195503472376085 +5.955872145848658 +5.991548657265263 +6.026582462636203 +6.060976132785658 +6.094732228254515 +6.127853299341497 +6.160341886144131 +6.192200518599555 +6.223431716525157 +6.254037989659056 +6.28402183770042 +6.313385750349618 +6.34213220734822 +6.370263678518827 +6.397782623804752 +6.424691493309533 +6.450992727336295 +6.47668875642695 +6.501782001401242 +6.5262748733956375 +6.550169773902055 +6.5734690948064465 +6.596175218427221 +6.618290517553512 +6.639817355483298 +6.660758086061365 +6.681115053717119 +6.70089059350225 +6.720087031128242 +6.738706683003729 +6.7567518562717135 +6.774224848846627 +6.791127949451241 +6.8074634376534355 +6.823233583902822 +6.838440649567211 +6.853086886968942 +6.867174539421066 +6.880705841263382 +6.893683017898329 +6.906108285826736 +6.917983852683429 +6.929311917272695 +6.940094669603605 +6.95033429092519 +6.960032953761489 +6.969192821946443 +6.9778160506586575 +6.985904786456023 +6.9934611673101985 +7.000487322640958 +7.006985373350394 +7.012957431856993 +7.018405602129565 +7.023331979721047 +7.027738651802163 +7.0316276971949545 +7.035001186406174 +7.03786118166055 +7.040209736933908 +7.042048897986172 +7.043380702394227 +7.04420717958465 +7.044530350866312 +7.044352229462847 +7.043674820544996 +7.042500121262815 +7.040830120777764 +7.038666800294654 +7.036012133093475 +7.032868084561102 +7.029236612222857 +7.025119665773966 +7.02051918711087 +7.015437110362426 +7.009875361920977 +7.003835860473293 +6.9973205170314 +6.990331234963275 +6.982869910023422 +6.974938430383328 +6.966538676661795 +6.957672521955148 +6.948341831867327 +6.938548464539858 +6.928294270681699 +6.917581093598971 +6.906410769224576 +6.894785126147678 +6.882705985643087 +6.870175161700514 +6.857194461053712 +6.843765683209497 +6.829890620476659 +6.815571057994752 +6.800808773762774 +6.785605538667722 +6.769963116513051 +6.7538832640469995 +6.737367730990812 +6.7204182600668485 +6.703036587026581 +6.685224440678475 +6.666983542915761 +6.648315608744098 +6.629222346309121 +6.6097054569238844 +6.589766635096189 +6.569407568555804 +6.548629938281581 +6.527435418528455 +6.505825676854341 +6.483802374146924 +6.461367164650336 +6.438521695991735 +6.415267609207768 +6.391606538770937 +6.367540112615853 +6.343069952165389 +6.318197672356727 +6.2929248816673 +6.267253182140631 +6.241184169412068