Exact function that generated the data
I have "data" points as given below (e.g., for x-value = 1, the corresponding value of y is -23.110606616537147. (I apologize, it is rather large data array.) I need to find out the exact function that generated these values. I tried to guess by assuming some functional forms like below in Nonlinearfit, but no matter what I do, I do not get a perfect match between the actual data points and the fitted model. For some similar looking data, earlier I successfully guessed a simple functional form like c0*x^c1, and it was indeed a correct one. But this one gives me a headache. Any hints would be appreciated.
data = {{1, -23.110606616537147`}, {2, -22.634559807032698`}, {3,
-22.169391395259122`}, {4, -21.714928417099323`}, {5,
-21.27099702070698`}, {6, -20.837422557417913`}, {7,
-20.414029677397547`}, {8, -20.00064242987733`}, {9,
-19.59708436779354`}, {10, -19.20317865660647`}, {11,
-18.818748187036604`}, {12, -18.44361569142125`}, {13,
-18.077603863354696`}, {14, -17.72053548024153`}, {15,
-17.37223352835917`}, {16, -17.03252132999208`}, {17,
-16.701222672174307`}, {18, -16.37816193655099`}, {19,
-16.06316422984783`}, {20, -15.756055514421238`}, {21,
-15.45666273835037`}, {22, -15.164813964524406`}, {23,
-14.880338498176549`}, {24, -14.603067012321297`}, {25,
-14.332831670558821`}, {26, -14.069466246725915`}, {27,
-13.81280624089262`}, {28, -13.562688991228022`}, {29,
-13.318953781288066`}, {30, -13.081441942312981`}, {31,
-12.849996950157491`}, {32, -12.62446451651955`}, {33,
-12.40469267417549`}, {34, -12.190531855974797`}, {35,
-11.9818349673951`}, {36, -11.77845745250421`}, {37,
-11.580257353223834`}, {38, -11.387095361836874`}, {39,
-11.198834866724152`}, {40, -11.015341991362185`}, {41,
-10.83648562665372`}, {42, -10.662137456702512`}, {43,
-10.492171978179679`}, {44, -10.326466513462087`}, {45,
-10.164901217751611`}, {46, -10.00735908041173`}, {47,
-9.853725920778135`}, {48, -9.703890378719906`}, {49,
-9.557743900241988`}, {50, -9.415180718431747`}, {51,
-9.27609783005945`}, {52, -9.140394968148861`}, {53,
-9.00797457083459`}, {54, -8.878741746823117`}, {55,
-8.752604237770383`}, {56, -8.629472377884344`}, {57,
-8.509259051052561`}, {58, -8.391879645785975`}, {59,
-8.277252008260307`}, {60, -8.165296393723994`}, {61,
-8.05593541652889`}, {62, -7.949093999027778`}, {63,
-7.844699319567687`}, {64, -7.742680759794512`}, {65,
-7.642969851469594`}, {66, -7.545500222986023`}, {67,
-7.450207545755878`}, {68, -7.357029480628`}, {69,
-7.26590562448199`}, {70, -7.176777457127898`}, {71,
-7.089588288633837`}, {72, -7.00428320718695`}, {73,
-6.920809027583852`}, {74, -6.839114240434034`}, {75,
-6.759148962153092`}, {76, -6.680864885807705`}, {77,
-6.604215232869001`}, {78, -6.529154705921911`}, {79,
-6.455639442369452`}, {80, -6.383626969162678`}, {81,
-6.31307615858577`}, {82, -6.243947185110054`}, {83,
-6.176201483335542`}, {84, -6.109801707026194`}, {85,
-6.04471168924599`}, {86, -5.980896403591716`}, {87,
-5.918321926523271`}, {88, -5.856955400784149`}, {89,
-5.796764999899467`}, {90, -5.737719893744034`}, {91,
-5.67979021516316`}, {92, -5.622947027629922`}, {93,
-5.567162293924735`}, {94, -5.51240884581518`}, {95,
-5.4586603547111325`}, {96, -5.405891303287587`}, {97,
-5.354076958038671`}, {98, -5.303193342744227`}, {99,
-5.253217212836056`}, {100, -5.204126030621797`}, {101,
-5.155897941359824`}, {102, -5.108511750155478`}, {103,
-5.061946899645364`}, {104, -5.016183448466045`}, {105,
-4.971202050471683`}, {106, -4.926983934661999`}, {107,
-4.883510885836728`}, {108, -4.84076522592182`}, {109,
-4.798729795945647`}, {110, -4.757387938669721`}, {111,
-4.716723481825754`}, {112, -4.67672072193916`}, {113,
-4.637364408757703`}, {114, -4.59863973019463`}, {115,
-4.560532297842467`}, {116, -4.523028132982823`}, {117,
-4.486113653103491`}, {118, -4.449775658895453`}, {119,
-4.41400132171649`}, {120, -4.378778171492242`}, {121,
-4.344094085051662`}, {122, -4.309937274899812`}, {123,
-4.276296278348539`}, {124, -4.243159947070432`}, {125,
-4.210517437006852`}, {126, -4.178358198625626`}, {127,
-4.146671967559926`}, {128, -4.1154487555198624`}, {129,
-4.0846788415867845`}, {130, -4.054352763762313`}, {131,
-4.0244613108513585`}, {132, -3.9949955146174574`}, {133,
-3.96594664218276`}, {134, -3.9373061887660405`}, {135,
-3.909065870596173`}, {136, -3.8812176180973057`}, {137,
-3.8537535693628917`}, {138, -3.8266660637358667`}, {139,
-3.7999476358072934`}, {140, -3.7735910093074665`}, {141,
-3.74758909160381`}, {142, -3.7219349680465865`}, {143,
-3.6966218966629736`}, {144, -3.6716433030615776`}, {145,
-3.6469927753955544`}, {146, -3.6226640595680135`}, {147,
-3.5986510546565684`}, {148, -3.574947808325067`}, {149,
-3.5515485125124444`}, {150, -3.5284474993200767`}, {151,
-3.5056392368240044`}, {152, -3.483118325276561`}, {153,
-3.460879493260421`}, {154, -3.438917593975345`}, {155,
-3.4172276017590093`}, {156, -3.3958046086882554`}, {157,
-3.374643821160908`}, {158, -3.353740556736291`}, {159,
-3.3330902410178322`}, {160, -3.312688404715038`}, {161,
-3.2925306805915473`}, {162, -3.272612800745575`}, {163,
-3.2529305938873545`}, {164, -3.233479982647259`}, {165,
-3.214256981045697`}, {166, -3.1952576919922233`}, {167,
-3.1764783049446503`}, {168, -3.1579150935109284`}, {169,
-3.139564413239762`}, {170, -3.121422699346016`}, {171,
-3.103486464815515`}, {172, -3.085752298105903`}, {173,
-3.06821686127576`}, {174, -3.050876888100025`}, {175,
-3.0337291820666468`}, {176, -3.0167706147250413`}, {177,
-2.9999981237621083`}, {178, -2.983408711517164`}, {179,
-2.966999443043029`}, {180, -2.950767444701468`}, {181,
-2.934709902599512`}, {182, -2.9188240610407234`}, {183,
-2.9031072210435833`}, {184, -2.887556738792709`}, {185,
-2.872170024766015`}, {186, -2.8569445415004098`}, {187,
-2.8418778032806804`}, {188, -2.826967374155622`}, {189,
-2.812210867058904`}, {190, -2.7976059425004576`}, {191,
-2.7831503072851684`}, {192, -2.7688417138905446`}, {193,
-2.754677958553913`}, {194, -2.7406568810289835`}, {195,
-2.726776362987283`}, {196, -2.713034327288908`}, {197,
-2.6994287369175294`}, {198, -2.685957594145642`}, {199,
-2.6726189392571844`}, {200, -2.659410850234966`}, {201,
-2.6463314412821766`}, {202, -2.6333788625233256`}, {203,
-2.620551298593924`}, {204, -2.607846968355005`}, {205,
-2.5952641239009546`}, {206, -2.582801049737661`}, {207,
-2.5704560622673993`}, {208, -2.558227508614336`}, {209,
-2.5461137664044258`}, {210, -2.534113242995652`}, {211,
-2.522224374603854`}, {212, -2.5104456257717658`}, {213,
-2.498775488706279`}, {214, -2.4872124825245163`}, {215,
-2.4757551535422944`}, {216, -2.464402073172508`}, {217,
-2.453151838443181`}, {218, -2.442003071243755`}, {219,
-2.4309544177318334`}, {220, -2.4200045476642322`}, {221,
-2.409152153992214`}, {222, -2.3983959524956675`}, {223,
-2.387734681289511`}, {224, -2.377167099889028`}, {225,
-2.366691989346202`}, {226, -2.3563081515904245`}, {227,
-2.3460144087642822`}, {228, -2.3358096032830167`}, {229,
-2.325692596783091`}, {230, -2.315662270438909`}, {231,
-2.3057175233907956`}, {232, -2.29585727442902`}, {233,
-2.286080459414958`}, {234, -2.2763860317434053`}, {235,
-2.266772962762401`}, {236, -2.2572402399963534`}, {237,
-2.247786868076797`}, {238, -2.2384118676807003`}, {239,
-2.229114275276284`}, {240, -2.219893143305838`}, {241,
-2.2107475390725484`}, {242, -2.201676544892208`}, {243,
-2.1926792581970433`}, {244, -2.1837547901839267`}, {245,
-2.174902266691395`}, {246, -2.1661208267976306`}, {247,
-2.157409624059163`}, {248, -2.1487678244320083`}, {249,
-2.140194607212623`}, {250, -2.1316891648369265`}, {251,
-2.1232507019591473`}, {252, -2.1148784350248993`}, {253,
-2.106571593566107`}, {254, -2.098329418416463`}, {255,
-2.090151161998165`}, {256, -2.0820360882444153`}, {257,
-2.073983472006926`}, {258, -2.065992599822153`}, {259,
-2.058062768049216`}, {260, -2.050193284216243`}, {261,
-2.0423834658368696`}, {262, -2.0346326410997926`}, {263,
-2.0269401485288645`}, {264, -2.0193053338702636`}, {265,
-2.0117275563473562`}, {266, -2.004206182315287`}, {267,
-1.9967405874795818`}, {268, -1.9893301568484185`}, {269,
-1.9819742855282303`}, {270, -1.9746723747402435`}, {271,
-1.9674238375778639`}, {272, -1.9602280932974574`}, {273,
-1.9530845707790225`}, {274, -1.9459927058478763`}, {275,
-1.9389519432101352`}, {276, -1.931961735476371`}, {277,
-1.925021542799568`}, {278, -1.9181308327120814`}, {279,
-1.9112890808085006`}, {280, -1.9044957695265645`}, {281,
-1.8977503886127203`}, {282, -1.891052435105641`}, {283,
-1.884401412885268`}, {284, -1.8777968326794983`}, {285,
-1.8712382123452354`}, {286, -1.8647250755056284`}, {287,
-1.8582569532551345`}, {288, -1.8518333819478199`}, {289,
-1.8454539057598962`}, {290, -1.8391180735418549`}, {291,
-1.832825441675692`}, {292, -1.8265755709541789`}, {293,
-1.820368029301432`}, {294, -1.814202389691782`}, {295,
-1.8080782314221209`}, {296, -1.8019951386958164`}, {297,
-1.795952701852902`}, {298, -1.789950516054215`}, {299,
-1.7839881824124155`}, {300, -1.7780653067123846`}}
NonlinearModelFit[data,
c0 + c1*x^c2 + c3*x^c4, {c0, c1, c2, c3, c4}, x]
fitting
add a comment |
I have "data" points as given below (e.g., for x-value = 1, the corresponding value of y is -23.110606616537147. (I apologize, it is rather large data array.) I need to find out the exact function that generated these values. I tried to guess by assuming some functional forms like below in Nonlinearfit, but no matter what I do, I do not get a perfect match between the actual data points and the fitted model. For some similar looking data, earlier I successfully guessed a simple functional form like c0*x^c1, and it was indeed a correct one. But this one gives me a headache. Any hints would be appreciated.
data = {{1, -23.110606616537147`}, {2, -22.634559807032698`}, {3,
-22.169391395259122`}, {4, -21.714928417099323`}, {5,
-21.27099702070698`}, {6, -20.837422557417913`}, {7,
-20.414029677397547`}, {8, -20.00064242987733`}, {9,
-19.59708436779354`}, {10, -19.20317865660647`}, {11,
-18.818748187036604`}, {12, -18.44361569142125`}, {13,
-18.077603863354696`}, {14, -17.72053548024153`}, {15,
-17.37223352835917`}, {16, -17.03252132999208`}, {17,
-16.701222672174307`}, {18, -16.37816193655099`}, {19,
-16.06316422984783`}, {20, -15.756055514421238`}, {21,
-15.45666273835037`}, {22, -15.164813964524406`}, {23,
-14.880338498176549`}, {24, -14.603067012321297`}, {25,
-14.332831670558821`}, {26, -14.069466246725915`}, {27,
-13.81280624089262`}, {28, -13.562688991228022`}, {29,
-13.318953781288066`}, {30, -13.081441942312981`}, {31,
-12.849996950157491`}, {32, -12.62446451651955`}, {33,
-12.40469267417549`}, {34, -12.190531855974797`}, {35,
-11.9818349673951`}, {36, -11.77845745250421`}, {37,
-11.580257353223834`}, {38, -11.387095361836874`}, {39,
-11.198834866724152`}, {40, -11.015341991362185`}, {41,
-10.83648562665372`}, {42, -10.662137456702512`}, {43,
-10.492171978179679`}, {44, -10.326466513462087`}, {45,
-10.164901217751611`}, {46, -10.00735908041173`}, {47,
-9.853725920778135`}, {48, -9.703890378719906`}, {49,
-9.557743900241988`}, {50, -9.415180718431747`}, {51,
-9.27609783005945`}, {52, -9.140394968148861`}, {53,
-9.00797457083459`}, {54, -8.878741746823117`}, {55,
-8.752604237770383`}, {56, -8.629472377884344`}, {57,
-8.509259051052561`}, {58, -8.391879645785975`}, {59,
-8.277252008260307`}, {60, -8.165296393723994`}, {61,
-8.05593541652889`}, {62, -7.949093999027778`}, {63,
-7.844699319567687`}, {64, -7.742680759794512`}, {65,
-7.642969851469594`}, {66, -7.545500222986023`}, {67,
-7.450207545755878`}, {68, -7.357029480628`}, {69,
-7.26590562448199`}, {70, -7.176777457127898`}, {71,
-7.089588288633837`}, {72, -7.00428320718695`}, {73,
-6.920809027583852`}, {74, -6.839114240434034`}, {75,
-6.759148962153092`}, {76, -6.680864885807705`}, {77,
-6.604215232869001`}, {78, -6.529154705921911`}, {79,
-6.455639442369452`}, {80, -6.383626969162678`}, {81,
-6.31307615858577`}, {82, -6.243947185110054`}, {83,
-6.176201483335542`}, {84, -6.109801707026194`}, {85,
-6.04471168924599`}, {86, -5.980896403591716`}, {87,
-5.918321926523271`}, {88, -5.856955400784149`}, {89,
-5.796764999899467`}, {90, -5.737719893744034`}, {91,
-5.67979021516316`}, {92, -5.622947027629922`}, {93,
-5.567162293924735`}, {94, -5.51240884581518`}, {95,
-5.4586603547111325`}, {96, -5.405891303287587`}, {97,
-5.354076958038671`}, {98, -5.303193342744227`}, {99,
-5.253217212836056`}, {100, -5.204126030621797`}, {101,
-5.155897941359824`}, {102, -5.108511750155478`}, {103,
-5.061946899645364`}, {104, -5.016183448466045`}, {105,
-4.971202050471683`}, {106, -4.926983934661999`}, {107,
-4.883510885836728`}, {108, -4.84076522592182`}, {109,
-4.798729795945647`}, {110, -4.757387938669721`}, {111,
-4.716723481825754`}, {112, -4.67672072193916`}, {113,
-4.637364408757703`}, {114, -4.59863973019463`}, {115,
-4.560532297842467`}, {116, -4.523028132982823`}, {117,
-4.486113653103491`}, {118, -4.449775658895453`}, {119,
-4.41400132171649`}, {120, -4.378778171492242`}, {121,
-4.344094085051662`}, {122, -4.309937274899812`}, {123,
-4.276296278348539`}, {124, -4.243159947070432`}, {125,
-4.210517437006852`}, {126, -4.178358198625626`}, {127,
-4.146671967559926`}, {128, -4.1154487555198624`}, {129,
-4.0846788415867845`}, {130, -4.054352763762313`}, {131,
-4.0244613108513585`}, {132, -3.9949955146174574`}, {133,
-3.96594664218276`}, {134, -3.9373061887660405`}, {135,
-3.909065870596173`}, {136, -3.8812176180973057`}, {137,
-3.8537535693628917`}, {138, -3.8266660637358667`}, {139,
-3.7999476358072934`}, {140, -3.7735910093074665`}, {141,
-3.74758909160381`}, {142, -3.7219349680465865`}, {143,
-3.6966218966629736`}, {144, -3.6716433030615776`}, {145,
-3.6469927753955544`}, {146, -3.6226640595680135`}, {147,
-3.5986510546565684`}, {148, -3.574947808325067`}, {149,
-3.5515485125124444`}, {150, -3.5284474993200767`}, {151,
-3.5056392368240044`}, {152, -3.483118325276561`}, {153,
-3.460879493260421`}, {154, -3.438917593975345`}, {155,
-3.4172276017590093`}, {156, -3.3958046086882554`}, {157,
-3.374643821160908`}, {158, -3.353740556736291`}, {159,
-3.3330902410178322`}, {160, -3.312688404715038`}, {161,
-3.2925306805915473`}, {162, -3.272612800745575`}, {163,
-3.2529305938873545`}, {164, -3.233479982647259`}, {165,
-3.214256981045697`}, {166, -3.1952576919922233`}, {167,
-3.1764783049446503`}, {168, -3.1579150935109284`}, {169,
-3.139564413239762`}, {170, -3.121422699346016`}, {171,
-3.103486464815515`}, {172, -3.085752298105903`}, {173,
-3.06821686127576`}, {174, -3.050876888100025`}, {175,
-3.0337291820666468`}, {176, -3.0167706147250413`}, {177,
-2.9999981237621083`}, {178, -2.983408711517164`}, {179,
-2.966999443043029`}, {180, -2.950767444701468`}, {181,
-2.934709902599512`}, {182, -2.9188240610407234`}, {183,
-2.9031072210435833`}, {184, -2.887556738792709`}, {185,
-2.872170024766015`}, {186, -2.8569445415004098`}, {187,
-2.8418778032806804`}, {188, -2.826967374155622`}, {189,
-2.812210867058904`}, {190, -2.7976059425004576`}, {191,
-2.7831503072851684`}, {192, -2.7688417138905446`}, {193,
-2.754677958553913`}, {194, -2.7406568810289835`}, {195,
-2.726776362987283`}, {196, -2.713034327288908`}, {197,
-2.6994287369175294`}, {198, -2.685957594145642`}, {199,
-2.6726189392571844`}, {200, -2.659410850234966`}, {201,
-2.6463314412821766`}, {202, -2.6333788625233256`}, {203,
-2.620551298593924`}, {204, -2.607846968355005`}, {205,
-2.5952641239009546`}, {206, -2.582801049737661`}, {207,
-2.5704560622673993`}, {208, -2.558227508614336`}, {209,
-2.5461137664044258`}, {210, -2.534113242995652`}, {211,
-2.522224374603854`}, {212, -2.5104456257717658`}, {213,
-2.498775488706279`}, {214, -2.4872124825245163`}, {215,
-2.4757551535422944`}, {216, -2.464402073172508`}, {217,
-2.453151838443181`}, {218, -2.442003071243755`}, {219,
-2.4309544177318334`}, {220, -2.4200045476642322`}, {221,
-2.409152153992214`}, {222, -2.3983959524956675`}, {223,
-2.387734681289511`}, {224, -2.377167099889028`}, {225,
-2.366691989346202`}, {226, -2.3563081515904245`}, {227,
-2.3460144087642822`}, {228, -2.3358096032830167`}, {229,
-2.325692596783091`}, {230, -2.315662270438909`}, {231,
-2.3057175233907956`}, {232, -2.29585727442902`}, {233,
-2.286080459414958`}, {234, -2.2763860317434053`}, {235,
-2.266772962762401`}, {236, -2.2572402399963534`}, {237,
-2.247786868076797`}, {238, -2.2384118676807003`}, {239,
-2.229114275276284`}, {240, -2.219893143305838`}, {241,
-2.2107475390725484`}, {242, -2.201676544892208`}, {243,
-2.1926792581970433`}, {244, -2.1837547901839267`}, {245,
-2.174902266691395`}, {246, -2.1661208267976306`}, {247,
-2.157409624059163`}, {248, -2.1487678244320083`}, {249,
-2.140194607212623`}, {250, -2.1316891648369265`}, {251,
-2.1232507019591473`}, {252, -2.1148784350248993`}, {253,
-2.106571593566107`}, {254, -2.098329418416463`}, {255,
-2.090151161998165`}, {256, -2.0820360882444153`}, {257,
-2.073983472006926`}, {258, -2.065992599822153`}, {259,
-2.058062768049216`}, {260, -2.050193284216243`}, {261,
-2.0423834658368696`}, {262, -2.0346326410997926`}, {263,
-2.0269401485288645`}, {264, -2.0193053338702636`}, {265,
-2.0117275563473562`}, {266, -2.004206182315287`}, {267,
-1.9967405874795818`}, {268, -1.9893301568484185`}, {269,
-1.9819742855282303`}, {270, -1.9746723747402435`}, {271,
-1.9674238375778639`}, {272, -1.9602280932974574`}, {273,
-1.9530845707790225`}, {274, -1.9459927058478763`}, {275,
-1.9389519432101352`}, {276, -1.931961735476371`}, {277,
-1.925021542799568`}, {278, -1.9181308327120814`}, {279,
-1.9112890808085006`}, {280, -1.9044957695265645`}, {281,
-1.8977503886127203`}, {282, -1.891052435105641`}, {283,
-1.884401412885268`}, {284, -1.8777968326794983`}, {285,
-1.8712382123452354`}, {286, -1.8647250755056284`}, {287,
-1.8582569532551345`}, {288, -1.8518333819478199`}, {289,
-1.8454539057598962`}, {290, -1.8391180735418549`}, {291,
-1.832825441675692`}, {292, -1.8265755709541789`}, {293,
-1.820368029301432`}, {294, -1.814202389691782`}, {295,
-1.8080782314221209`}, {296, -1.8019951386958164`}, {297,
-1.795952701852902`}, {298, -1.789950516054215`}, {299,
-1.7839881824124155`}, {300, -1.7780653067123846`}}
NonlinearModelFit[data,
c0 + c1*x^c2 + c3*x^c4, {c0, c1, c2, c3, c4}, x]
fitting
2
Where did you get this list of 300 numbers? Why do you need "the exact function"? Given any finite collection of numbers there is an exact polynomial interpolation function. What form do you expect for the function? There is nothing specific to Mathematica here that I can see.
– Somos
4 hours ago
3
ff = FindFormula[data, x]; Show[ListPlot[data], Plot[ff, {x, 0, 300}, PlotStyle -> Red], ImageSize -> Large]
will reproduce the data pretty well but I find it hard to believe that you'll be successful to find the "exact" formula used to generate the data.
– JimB
4 hours ago
1
@JimB I think you should turn your comment into an answer.
– Anton Antonov
23 mins ago
@AntonAntonov But I already feel dirty enough even usingFindFormula
in a comment. Plus, @MikeY's formula uses far fewer parameters and results in a much better fit.
– JimB
19 mins ago
Yeah, but I learned something from your method! Thanks for posting it. I'd have made it an answer.
– MikeY
7 mins ago
add a comment |
I have "data" points as given below (e.g., for x-value = 1, the corresponding value of y is -23.110606616537147. (I apologize, it is rather large data array.) I need to find out the exact function that generated these values. I tried to guess by assuming some functional forms like below in Nonlinearfit, but no matter what I do, I do not get a perfect match between the actual data points and the fitted model. For some similar looking data, earlier I successfully guessed a simple functional form like c0*x^c1, and it was indeed a correct one. But this one gives me a headache. Any hints would be appreciated.
data = {{1, -23.110606616537147`}, {2, -22.634559807032698`}, {3,
-22.169391395259122`}, {4, -21.714928417099323`}, {5,
-21.27099702070698`}, {6, -20.837422557417913`}, {7,
-20.414029677397547`}, {8, -20.00064242987733`}, {9,
-19.59708436779354`}, {10, -19.20317865660647`}, {11,
-18.818748187036604`}, {12, -18.44361569142125`}, {13,
-18.077603863354696`}, {14, -17.72053548024153`}, {15,
-17.37223352835917`}, {16, -17.03252132999208`}, {17,
-16.701222672174307`}, {18, -16.37816193655099`}, {19,
-16.06316422984783`}, {20, -15.756055514421238`}, {21,
-15.45666273835037`}, {22, -15.164813964524406`}, {23,
-14.880338498176549`}, {24, -14.603067012321297`}, {25,
-14.332831670558821`}, {26, -14.069466246725915`}, {27,
-13.81280624089262`}, {28, -13.562688991228022`}, {29,
-13.318953781288066`}, {30, -13.081441942312981`}, {31,
-12.849996950157491`}, {32, -12.62446451651955`}, {33,
-12.40469267417549`}, {34, -12.190531855974797`}, {35,
-11.9818349673951`}, {36, -11.77845745250421`}, {37,
-11.580257353223834`}, {38, -11.387095361836874`}, {39,
-11.198834866724152`}, {40, -11.015341991362185`}, {41,
-10.83648562665372`}, {42, -10.662137456702512`}, {43,
-10.492171978179679`}, {44, -10.326466513462087`}, {45,
-10.164901217751611`}, {46, -10.00735908041173`}, {47,
-9.853725920778135`}, {48, -9.703890378719906`}, {49,
-9.557743900241988`}, {50, -9.415180718431747`}, {51,
-9.27609783005945`}, {52, -9.140394968148861`}, {53,
-9.00797457083459`}, {54, -8.878741746823117`}, {55,
-8.752604237770383`}, {56, -8.629472377884344`}, {57,
-8.509259051052561`}, {58, -8.391879645785975`}, {59,
-8.277252008260307`}, {60, -8.165296393723994`}, {61,
-8.05593541652889`}, {62, -7.949093999027778`}, {63,
-7.844699319567687`}, {64, -7.742680759794512`}, {65,
-7.642969851469594`}, {66, -7.545500222986023`}, {67,
-7.450207545755878`}, {68, -7.357029480628`}, {69,
-7.26590562448199`}, {70, -7.176777457127898`}, {71,
-7.089588288633837`}, {72, -7.00428320718695`}, {73,
-6.920809027583852`}, {74, -6.839114240434034`}, {75,
-6.759148962153092`}, {76, -6.680864885807705`}, {77,
-6.604215232869001`}, {78, -6.529154705921911`}, {79,
-6.455639442369452`}, {80, -6.383626969162678`}, {81,
-6.31307615858577`}, {82, -6.243947185110054`}, {83,
-6.176201483335542`}, {84, -6.109801707026194`}, {85,
-6.04471168924599`}, {86, -5.980896403591716`}, {87,
-5.918321926523271`}, {88, -5.856955400784149`}, {89,
-5.796764999899467`}, {90, -5.737719893744034`}, {91,
-5.67979021516316`}, {92, -5.622947027629922`}, {93,
-5.567162293924735`}, {94, -5.51240884581518`}, {95,
-5.4586603547111325`}, {96, -5.405891303287587`}, {97,
-5.354076958038671`}, {98, -5.303193342744227`}, {99,
-5.253217212836056`}, {100, -5.204126030621797`}, {101,
-5.155897941359824`}, {102, -5.108511750155478`}, {103,
-5.061946899645364`}, {104, -5.016183448466045`}, {105,
-4.971202050471683`}, {106, -4.926983934661999`}, {107,
-4.883510885836728`}, {108, -4.84076522592182`}, {109,
-4.798729795945647`}, {110, -4.757387938669721`}, {111,
-4.716723481825754`}, {112, -4.67672072193916`}, {113,
-4.637364408757703`}, {114, -4.59863973019463`}, {115,
-4.560532297842467`}, {116, -4.523028132982823`}, {117,
-4.486113653103491`}, {118, -4.449775658895453`}, {119,
-4.41400132171649`}, {120, -4.378778171492242`}, {121,
-4.344094085051662`}, {122, -4.309937274899812`}, {123,
-4.276296278348539`}, {124, -4.243159947070432`}, {125,
-4.210517437006852`}, {126, -4.178358198625626`}, {127,
-4.146671967559926`}, {128, -4.1154487555198624`}, {129,
-4.0846788415867845`}, {130, -4.054352763762313`}, {131,
-4.0244613108513585`}, {132, -3.9949955146174574`}, {133,
-3.96594664218276`}, {134, -3.9373061887660405`}, {135,
-3.909065870596173`}, {136, -3.8812176180973057`}, {137,
-3.8537535693628917`}, {138, -3.8266660637358667`}, {139,
-3.7999476358072934`}, {140, -3.7735910093074665`}, {141,
-3.74758909160381`}, {142, -3.7219349680465865`}, {143,
-3.6966218966629736`}, {144, -3.6716433030615776`}, {145,
-3.6469927753955544`}, {146, -3.6226640595680135`}, {147,
-3.5986510546565684`}, {148, -3.574947808325067`}, {149,
-3.5515485125124444`}, {150, -3.5284474993200767`}, {151,
-3.5056392368240044`}, {152, -3.483118325276561`}, {153,
-3.460879493260421`}, {154, -3.438917593975345`}, {155,
-3.4172276017590093`}, {156, -3.3958046086882554`}, {157,
-3.374643821160908`}, {158, -3.353740556736291`}, {159,
-3.3330902410178322`}, {160, -3.312688404715038`}, {161,
-3.2925306805915473`}, {162, -3.272612800745575`}, {163,
-3.2529305938873545`}, {164, -3.233479982647259`}, {165,
-3.214256981045697`}, {166, -3.1952576919922233`}, {167,
-3.1764783049446503`}, {168, -3.1579150935109284`}, {169,
-3.139564413239762`}, {170, -3.121422699346016`}, {171,
-3.103486464815515`}, {172, -3.085752298105903`}, {173,
-3.06821686127576`}, {174, -3.050876888100025`}, {175,
-3.0337291820666468`}, {176, -3.0167706147250413`}, {177,
-2.9999981237621083`}, {178, -2.983408711517164`}, {179,
-2.966999443043029`}, {180, -2.950767444701468`}, {181,
-2.934709902599512`}, {182, -2.9188240610407234`}, {183,
-2.9031072210435833`}, {184, -2.887556738792709`}, {185,
-2.872170024766015`}, {186, -2.8569445415004098`}, {187,
-2.8418778032806804`}, {188, -2.826967374155622`}, {189,
-2.812210867058904`}, {190, -2.7976059425004576`}, {191,
-2.7831503072851684`}, {192, -2.7688417138905446`}, {193,
-2.754677958553913`}, {194, -2.7406568810289835`}, {195,
-2.726776362987283`}, {196, -2.713034327288908`}, {197,
-2.6994287369175294`}, {198, -2.685957594145642`}, {199,
-2.6726189392571844`}, {200, -2.659410850234966`}, {201,
-2.6463314412821766`}, {202, -2.6333788625233256`}, {203,
-2.620551298593924`}, {204, -2.607846968355005`}, {205,
-2.5952641239009546`}, {206, -2.582801049737661`}, {207,
-2.5704560622673993`}, {208, -2.558227508614336`}, {209,
-2.5461137664044258`}, {210, -2.534113242995652`}, {211,
-2.522224374603854`}, {212, -2.5104456257717658`}, {213,
-2.498775488706279`}, {214, -2.4872124825245163`}, {215,
-2.4757551535422944`}, {216, -2.464402073172508`}, {217,
-2.453151838443181`}, {218, -2.442003071243755`}, {219,
-2.4309544177318334`}, {220, -2.4200045476642322`}, {221,
-2.409152153992214`}, {222, -2.3983959524956675`}, {223,
-2.387734681289511`}, {224, -2.377167099889028`}, {225,
-2.366691989346202`}, {226, -2.3563081515904245`}, {227,
-2.3460144087642822`}, {228, -2.3358096032830167`}, {229,
-2.325692596783091`}, {230, -2.315662270438909`}, {231,
-2.3057175233907956`}, {232, -2.29585727442902`}, {233,
-2.286080459414958`}, {234, -2.2763860317434053`}, {235,
-2.266772962762401`}, {236, -2.2572402399963534`}, {237,
-2.247786868076797`}, {238, -2.2384118676807003`}, {239,
-2.229114275276284`}, {240, -2.219893143305838`}, {241,
-2.2107475390725484`}, {242, -2.201676544892208`}, {243,
-2.1926792581970433`}, {244, -2.1837547901839267`}, {245,
-2.174902266691395`}, {246, -2.1661208267976306`}, {247,
-2.157409624059163`}, {248, -2.1487678244320083`}, {249,
-2.140194607212623`}, {250, -2.1316891648369265`}, {251,
-2.1232507019591473`}, {252, -2.1148784350248993`}, {253,
-2.106571593566107`}, {254, -2.098329418416463`}, {255,
-2.090151161998165`}, {256, -2.0820360882444153`}, {257,
-2.073983472006926`}, {258, -2.065992599822153`}, {259,
-2.058062768049216`}, {260, -2.050193284216243`}, {261,
-2.0423834658368696`}, {262, -2.0346326410997926`}, {263,
-2.0269401485288645`}, {264, -2.0193053338702636`}, {265,
-2.0117275563473562`}, {266, -2.004206182315287`}, {267,
-1.9967405874795818`}, {268, -1.9893301568484185`}, {269,
-1.9819742855282303`}, {270, -1.9746723747402435`}, {271,
-1.9674238375778639`}, {272, -1.9602280932974574`}, {273,
-1.9530845707790225`}, {274, -1.9459927058478763`}, {275,
-1.9389519432101352`}, {276, -1.931961735476371`}, {277,
-1.925021542799568`}, {278, -1.9181308327120814`}, {279,
-1.9112890808085006`}, {280, -1.9044957695265645`}, {281,
-1.8977503886127203`}, {282, -1.891052435105641`}, {283,
-1.884401412885268`}, {284, -1.8777968326794983`}, {285,
-1.8712382123452354`}, {286, -1.8647250755056284`}, {287,
-1.8582569532551345`}, {288, -1.8518333819478199`}, {289,
-1.8454539057598962`}, {290, -1.8391180735418549`}, {291,
-1.832825441675692`}, {292, -1.8265755709541789`}, {293,
-1.820368029301432`}, {294, -1.814202389691782`}, {295,
-1.8080782314221209`}, {296, -1.8019951386958164`}, {297,
-1.795952701852902`}, {298, -1.789950516054215`}, {299,
-1.7839881824124155`}, {300, -1.7780653067123846`}}
NonlinearModelFit[data,
c0 + c1*x^c2 + c3*x^c4, {c0, c1, c2, c3, c4}, x]
fitting
I have "data" points as given below (e.g., for x-value = 1, the corresponding value of y is -23.110606616537147. (I apologize, it is rather large data array.) I need to find out the exact function that generated these values. I tried to guess by assuming some functional forms like below in Nonlinearfit, but no matter what I do, I do not get a perfect match between the actual data points and the fitted model. For some similar looking data, earlier I successfully guessed a simple functional form like c0*x^c1, and it was indeed a correct one. But this one gives me a headache. Any hints would be appreciated.
data = {{1, -23.110606616537147`}, {2, -22.634559807032698`}, {3,
-22.169391395259122`}, {4, -21.714928417099323`}, {5,
-21.27099702070698`}, {6, -20.837422557417913`}, {7,
-20.414029677397547`}, {8, -20.00064242987733`}, {9,
-19.59708436779354`}, {10, -19.20317865660647`}, {11,
-18.818748187036604`}, {12, -18.44361569142125`}, {13,
-18.077603863354696`}, {14, -17.72053548024153`}, {15,
-17.37223352835917`}, {16, -17.03252132999208`}, {17,
-16.701222672174307`}, {18, -16.37816193655099`}, {19,
-16.06316422984783`}, {20, -15.756055514421238`}, {21,
-15.45666273835037`}, {22, -15.164813964524406`}, {23,
-14.880338498176549`}, {24, -14.603067012321297`}, {25,
-14.332831670558821`}, {26, -14.069466246725915`}, {27,
-13.81280624089262`}, {28, -13.562688991228022`}, {29,
-13.318953781288066`}, {30, -13.081441942312981`}, {31,
-12.849996950157491`}, {32, -12.62446451651955`}, {33,
-12.40469267417549`}, {34, -12.190531855974797`}, {35,
-11.9818349673951`}, {36, -11.77845745250421`}, {37,
-11.580257353223834`}, {38, -11.387095361836874`}, {39,
-11.198834866724152`}, {40, -11.015341991362185`}, {41,
-10.83648562665372`}, {42, -10.662137456702512`}, {43,
-10.492171978179679`}, {44, -10.326466513462087`}, {45,
-10.164901217751611`}, {46, -10.00735908041173`}, {47,
-9.853725920778135`}, {48, -9.703890378719906`}, {49,
-9.557743900241988`}, {50, -9.415180718431747`}, {51,
-9.27609783005945`}, {52, -9.140394968148861`}, {53,
-9.00797457083459`}, {54, -8.878741746823117`}, {55,
-8.752604237770383`}, {56, -8.629472377884344`}, {57,
-8.509259051052561`}, {58, -8.391879645785975`}, {59,
-8.277252008260307`}, {60, -8.165296393723994`}, {61,
-8.05593541652889`}, {62, -7.949093999027778`}, {63,
-7.844699319567687`}, {64, -7.742680759794512`}, {65,
-7.642969851469594`}, {66, -7.545500222986023`}, {67,
-7.450207545755878`}, {68, -7.357029480628`}, {69,
-7.26590562448199`}, {70, -7.176777457127898`}, {71,
-7.089588288633837`}, {72, -7.00428320718695`}, {73,
-6.920809027583852`}, {74, -6.839114240434034`}, {75,
-6.759148962153092`}, {76, -6.680864885807705`}, {77,
-6.604215232869001`}, {78, -6.529154705921911`}, {79,
-6.455639442369452`}, {80, -6.383626969162678`}, {81,
-6.31307615858577`}, {82, -6.243947185110054`}, {83,
-6.176201483335542`}, {84, -6.109801707026194`}, {85,
-6.04471168924599`}, {86, -5.980896403591716`}, {87,
-5.918321926523271`}, {88, -5.856955400784149`}, {89,
-5.796764999899467`}, {90, -5.737719893744034`}, {91,
-5.67979021516316`}, {92, -5.622947027629922`}, {93,
-5.567162293924735`}, {94, -5.51240884581518`}, {95,
-5.4586603547111325`}, {96, -5.405891303287587`}, {97,
-5.354076958038671`}, {98, -5.303193342744227`}, {99,
-5.253217212836056`}, {100, -5.204126030621797`}, {101,
-5.155897941359824`}, {102, -5.108511750155478`}, {103,
-5.061946899645364`}, {104, -5.016183448466045`}, {105,
-4.971202050471683`}, {106, -4.926983934661999`}, {107,
-4.883510885836728`}, {108, -4.84076522592182`}, {109,
-4.798729795945647`}, {110, -4.757387938669721`}, {111,
-4.716723481825754`}, {112, -4.67672072193916`}, {113,
-4.637364408757703`}, {114, -4.59863973019463`}, {115,
-4.560532297842467`}, {116, -4.523028132982823`}, {117,
-4.486113653103491`}, {118, -4.449775658895453`}, {119,
-4.41400132171649`}, {120, -4.378778171492242`}, {121,
-4.344094085051662`}, {122, -4.309937274899812`}, {123,
-4.276296278348539`}, {124, -4.243159947070432`}, {125,
-4.210517437006852`}, {126, -4.178358198625626`}, {127,
-4.146671967559926`}, {128, -4.1154487555198624`}, {129,
-4.0846788415867845`}, {130, -4.054352763762313`}, {131,
-4.0244613108513585`}, {132, -3.9949955146174574`}, {133,
-3.96594664218276`}, {134, -3.9373061887660405`}, {135,
-3.909065870596173`}, {136, -3.8812176180973057`}, {137,
-3.8537535693628917`}, {138, -3.8266660637358667`}, {139,
-3.7999476358072934`}, {140, -3.7735910093074665`}, {141,
-3.74758909160381`}, {142, -3.7219349680465865`}, {143,
-3.6966218966629736`}, {144, -3.6716433030615776`}, {145,
-3.6469927753955544`}, {146, -3.6226640595680135`}, {147,
-3.5986510546565684`}, {148, -3.574947808325067`}, {149,
-3.5515485125124444`}, {150, -3.5284474993200767`}, {151,
-3.5056392368240044`}, {152, -3.483118325276561`}, {153,
-3.460879493260421`}, {154, -3.438917593975345`}, {155,
-3.4172276017590093`}, {156, -3.3958046086882554`}, {157,
-3.374643821160908`}, {158, -3.353740556736291`}, {159,
-3.3330902410178322`}, {160, -3.312688404715038`}, {161,
-3.2925306805915473`}, {162, -3.272612800745575`}, {163,
-3.2529305938873545`}, {164, -3.233479982647259`}, {165,
-3.214256981045697`}, {166, -3.1952576919922233`}, {167,
-3.1764783049446503`}, {168, -3.1579150935109284`}, {169,
-3.139564413239762`}, {170, -3.121422699346016`}, {171,
-3.103486464815515`}, {172, -3.085752298105903`}, {173,
-3.06821686127576`}, {174, -3.050876888100025`}, {175,
-3.0337291820666468`}, {176, -3.0167706147250413`}, {177,
-2.9999981237621083`}, {178, -2.983408711517164`}, {179,
-2.966999443043029`}, {180, -2.950767444701468`}, {181,
-2.934709902599512`}, {182, -2.9188240610407234`}, {183,
-2.9031072210435833`}, {184, -2.887556738792709`}, {185,
-2.872170024766015`}, {186, -2.8569445415004098`}, {187,
-2.8418778032806804`}, {188, -2.826967374155622`}, {189,
-2.812210867058904`}, {190, -2.7976059425004576`}, {191,
-2.7831503072851684`}, {192, -2.7688417138905446`}, {193,
-2.754677958553913`}, {194, -2.7406568810289835`}, {195,
-2.726776362987283`}, {196, -2.713034327288908`}, {197,
-2.6994287369175294`}, {198, -2.685957594145642`}, {199,
-2.6726189392571844`}, {200, -2.659410850234966`}, {201,
-2.6463314412821766`}, {202, -2.6333788625233256`}, {203,
-2.620551298593924`}, {204, -2.607846968355005`}, {205,
-2.5952641239009546`}, {206, -2.582801049737661`}, {207,
-2.5704560622673993`}, {208, -2.558227508614336`}, {209,
-2.5461137664044258`}, {210, -2.534113242995652`}, {211,
-2.522224374603854`}, {212, -2.5104456257717658`}, {213,
-2.498775488706279`}, {214, -2.4872124825245163`}, {215,
-2.4757551535422944`}, {216, -2.464402073172508`}, {217,
-2.453151838443181`}, {218, -2.442003071243755`}, {219,
-2.4309544177318334`}, {220, -2.4200045476642322`}, {221,
-2.409152153992214`}, {222, -2.3983959524956675`}, {223,
-2.387734681289511`}, {224, -2.377167099889028`}, {225,
-2.366691989346202`}, {226, -2.3563081515904245`}, {227,
-2.3460144087642822`}, {228, -2.3358096032830167`}, {229,
-2.325692596783091`}, {230, -2.315662270438909`}, {231,
-2.3057175233907956`}, {232, -2.29585727442902`}, {233,
-2.286080459414958`}, {234, -2.2763860317434053`}, {235,
-2.266772962762401`}, {236, -2.2572402399963534`}, {237,
-2.247786868076797`}, {238, -2.2384118676807003`}, {239,
-2.229114275276284`}, {240, -2.219893143305838`}, {241,
-2.2107475390725484`}, {242, -2.201676544892208`}, {243,
-2.1926792581970433`}, {244, -2.1837547901839267`}, {245,
-2.174902266691395`}, {246, -2.1661208267976306`}, {247,
-2.157409624059163`}, {248, -2.1487678244320083`}, {249,
-2.140194607212623`}, {250, -2.1316891648369265`}, {251,
-2.1232507019591473`}, {252, -2.1148784350248993`}, {253,
-2.106571593566107`}, {254, -2.098329418416463`}, {255,
-2.090151161998165`}, {256, -2.0820360882444153`}, {257,
-2.073983472006926`}, {258, -2.065992599822153`}, {259,
-2.058062768049216`}, {260, -2.050193284216243`}, {261,
-2.0423834658368696`}, {262, -2.0346326410997926`}, {263,
-2.0269401485288645`}, {264, -2.0193053338702636`}, {265,
-2.0117275563473562`}, {266, -2.004206182315287`}, {267,
-1.9967405874795818`}, {268, -1.9893301568484185`}, {269,
-1.9819742855282303`}, {270, -1.9746723747402435`}, {271,
-1.9674238375778639`}, {272, -1.9602280932974574`}, {273,
-1.9530845707790225`}, {274, -1.9459927058478763`}, {275,
-1.9389519432101352`}, {276, -1.931961735476371`}, {277,
-1.925021542799568`}, {278, -1.9181308327120814`}, {279,
-1.9112890808085006`}, {280, -1.9044957695265645`}, {281,
-1.8977503886127203`}, {282, -1.891052435105641`}, {283,
-1.884401412885268`}, {284, -1.8777968326794983`}, {285,
-1.8712382123452354`}, {286, -1.8647250755056284`}, {287,
-1.8582569532551345`}, {288, -1.8518333819478199`}, {289,
-1.8454539057598962`}, {290, -1.8391180735418549`}, {291,
-1.832825441675692`}, {292, -1.8265755709541789`}, {293,
-1.820368029301432`}, {294, -1.814202389691782`}, {295,
-1.8080782314221209`}, {296, -1.8019951386958164`}, {297,
-1.795952701852902`}, {298, -1.789950516054215`}, {299,
-1.7839881824124155`}, {300, -1.7780653067123846`}}
NonlinearModelFit[data,
c0 + c1*x^c2 + c3*x^c4, {c0, c1, c2, c3, c4}, x]
fitting
fitting
asked 5 hours ago
Alex
132
132
2
Where did you get this list of 300 numbers? Why do you need "the exact function"? Given any finite collection of numbers there is an exact polynomial interpolation function. What form do you expect for the function? There is nothing specific to Mathematica here that I can see.
– Somos
4 hours ago
3
ff = FindFormula[data, x]; Show[ListPlot[data], Plot[ff, {x, 0, 300}, PlotStyle -> Red], ImageSize -> Large]
will reproduce the data pretty well but I find it hard to believe that you'll be successful to find the "exact" formula used to generate the data.
– JimB
4 hours ago
1
@JimB I think you should turn your comment into an answer.
– Anton Antonov
23 mins ago
@AntonAntonov But I already feel dirty enough even usingFindFormula
in a comment. Plus, @MikeY's formula uses far fewer parameters and results in a much better fit.
– JimB
19 mins ago
Yeah, but I learned something from your method! Thanks for posting it. I'd have made it an answer.
– MikeY
7 mins ago
add a comment |
2
Where did you get this list of 300 numbers? Why do you need "the exact function"? Given any finite collection of numbers there is an exact polynomial interpolation function. What form do you expect for the function? There is nothing specific to Mathematica here that I can see.
– Somos
4 hours ago
3
ff = FindFormula[data, x]; Show[ListPlot[data], Plot[ff, {x, 0, 300}, PlotStyle -> Red], ImageSize -> Large]
will reproduce the data pretty well but I find it hard to believe that you'll be successful to find the "exact" formula used to generate the data.
– JimB
4 hours ago
1
@JimB I think you should turn your comment into an answer.
– Anton Antonov
23 mins ago
@AntonAntonov But I already feel dirty enough even usingFindFormula
in a comment. Plus, @MikeY's formula uses far fewer parameters and results in a much better fit.
– JimB
19 mins ago
Yeah, but I learned something from your method! Thanks for posting it. I'd have made it an answer.
– MikeY
7 mins ago
2
2
Where did you get this list of 300 numbers? Why do you need "the exact function"? Given any finite collection of numbers there is an exact polynomial interpolation function. What form do you expect for the function? There is nothing specific to Mathematica here that I can see.
– Somos
4 hours ago
Where did you get this list of 300 numbers? Why do you need "the exact function"? Given any finite collection of numbers there is an exact polynomial interpolation function. What form do you expect for the function? There is nothing specific to Mathematica here that I can see.
– Somos
4 hours ago
3
3
ff = FindFormula[data, x]; Show[ListPlot[data], Plot[ff, {x, 0, 300}, PlotStyle -> Red], ImageSize -> Large]
will reproduce the data pretty well but I find it hard to believe that you'll be successful to find the "exact" formula used to generate the data.– JimB
4 hours ago
ff = FindFormula[data, x]; Show[ListPlot[data], Plot[ff, {x, 0, 300}, PlotStyle -> Red], ImageSize -> Large]
will reproduce the data pretty well but I find it hard to believe that you'll be successful to find the "exact" formula used to generate the data.– JimB
4 hours ago
1
1
@JimB I think you should turn your comment into an answer.
– Anton Antonov
23 mins ago
@JimB I think you should turn your comment into an answer.
– Anton Antonov
23 mins ago
@AntonAntonov But I already feel dirty enough even using
FindFormula
in a comment. Plus, @MikeY's formula uses far fewer parameters and results in a much better fit.– JimB
19 mins ago
@AntonAntonov But I already feel dirty enough even using
FindFormula
in a comment. Plus, @MikeY's formula uses far fewer parameters and results in a much better fit.– JimB
19 mins ago
Yeah, but I learned something from your method! Thanks for posting it. I'd have made it an answer.
– MikeY
7 mins ago
Yeah, but I learned something from your method! Thanks for posting it. I'd have made it an answer.
– MikeY
7 mins ago
add a comment |
2 Answers
2
active
oldest
votes
In the absence of additional information about the form, and just eyeballing the shape makes it look like a rational polynomial-ish thing, I vote for...
nlf = NonlinearModelFit[data, (c0 + c1 x + c2 x^2)/(c3 + c4 x + x^c5), {c0, c1, c2, c3, c4, c5}, x];
(-43612.1 - 1735.16 x - 2.10241 x^2)/(1843.92 + 116.08 x + x^2.25431)
nlf["AdjustedRSquared"]
nlf["FitResiduals"] // MinMax
0.999999
{-0.0134303, 0.014954}
Plot[nlf[x], {x, 1, 300}, Epilog -> Point[data]]
add a comment |
It also resembles the error function:
fit = NonlinearModelFit[data, a Erf[(x - x0)/(Sqrt[2] s)] + y0, {a, x0, y0, s}, x]
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188958%2fexact-function-that-generated-the-data%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
In the absence of additional information about the form, and just eyeballing the shape makes it look like a rational polynomial-ish thing, I vote for...
nlf = NonlinearModelFit[data, (c0 + c1 x + c2 x^2)/(c3 + c4 x + x^c5), {c0, c1, c2, c3, c4, c5}, x];
(-43612.1 - 1735.16 x - 2.10241 x^2)/(1843.92 + 116.08 x + x^2.25431)
nlf["AdjustedRSquared"]
nlf["FitResiduals"] // MinMax
0.999999
{-0.0134303, 0.014954}
Plot[nlf[x], {x, 1, 300}, Epilog -> Point[data]]
add a comment |
In the absence of additional information about the form, and just eyeballing the shape makes it look like a rational polynomial-ish thing, I vote for...
nlf = NonlinearModelFit[data, (c0 + c1 x + c2 x^2)/(c3 + c4 x + x^c5), {c0, c1, c2, c3, c4, c5}, x];
(-43612.1 - 1735.16 x - 2.10241 x^2)/(1843.92 + 116.08 x + x^2.25431)
nlf["AdjustedRSquared"]
nlf["FitResiduals"] // MinMax
0.999999
{-0.0134303, 0.014954}
Plot[nlf[x], {x, 1, 300}, Epilog -> Point[data]]
add a comment |
In the absence of additional information about the form, and just eyeballing the shape makes it look like a rational polynomial-ish thing, I vote for...
nlf = NonlinearModelFit[data, (c0 + c1 x + c2 x^2)/(c3 + c4 x + x^c5), {c0, c1, c2, c3, c4, c5}, x];
(-43612.1 - 1735.16 x - 2.10241 x^2)/(1843.92 + 116.08 x + x^2.25431)
nlf["AdjustedRSquared"]
nlf["FitResiduals"] // MinMax
0.999999
{-0.0134303, 0.014954}
Plot[nlf[x], {x, 1, 300}, Epilog -> Point[data]]
In the absence of additional information about the form, and just eyeballing the shape makes it look like a rational polynomial-ish thing, I vote for...
nlf = NonlinearModelFit[data, (c0 + c1 x + c2 x^2)/(c3 + c4 x + x^c5), {c0, c1, c2, c3, c4, c5}, x];
(-43612.1 - 1735.16 x - 2.10241 x^2)/(1843.92 + 116.08 x + x^2.25431)
nlf["AdjustedRSquared"]
nlf["FitResiduals"] // MinMax
0.999999
{-0.0134303, 0.014954}
Plot[nlf[x], {x, 1, 300}, Epilog -> Point[data]]
answered 1 hour ago
MikeY
2,317411
2,317411
add a comment |
add a comment |
It also resembles the error function:
fit = NonlinearModelFit[data, a Erf[(x - x0)/(Sqrt[2] s)] + y0, {a, x0, y0, s}, x]
add a comment |
It also resembles the error function:
fit = NonlinearModelFit[data, a Erf[(x - x0)/(Sqrt[2] s)] + y0, {a, x0, y0, s}, x]
add a comment |
It also resembles the error function:
fit = NonlinearModelFit[data, a Erf[(x - x0)/(Sqrt[2] s)] + y0, {a, x0, y0, s}, x]
It also resembles the error function:
fit = NonlinearModelFit[data, a Erf[(x - x0)/(Sqrt[2] s)] + y0, {a, x0, y0, s}, x]
answered 26 mins ago
David Keith
946213
946213
add a comment |
add a comment |
Thanks for contributing an answer to Mathematica Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f188958%2fexact-function-that-generated-the-data%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Where did you get this list of 300 numbers? Why do you need "the exact function"? Given any finite collection of numbers there is an exact polynomial interpolation function. What form do you expect for the function? There is nothing specific to Mathematica here that I can see.
– Somos
4 hours ago
3
ff = FindFormula[data, x]; Show[ListPlot[data], Plot[ff, {x, 0, 300}, PlotStyle -> Red], ImageSize -> Large]
will reproduce the data pretty well but I find it hard to believe that you'll be successful to find the "exact" formula used to generate the data.– JimB
4 hours ago
1
@JimB I think you should turn your comment into an answer.
– Anton Antonov
23 mins ago
@AntonAntonov But I already feel dirty enough even using
FindFormula
in a comment. Plus, @MikeY's formula uses far fewer parameters and results in a much better fit.– JimB
19 mins ago
Yeah, but I learned something from your method! Thanks for posting it. I'd have made it an answer.
– MikeY
7 mins ago