Plotting using fitnlm- custom function

11 Ansichten (letzte 30 Tage)
sparsh agarwal
sparsh agarwal am 11 Mär. 2021
Kommentiert: Star Strider am 12 Mär. 2021
Hello,
I am trying to fit the model- y = exp(-kx) to my data using fitnlm. I get the alogrithm to converge and the p value also seems to be pretty good but however when I plot my data against the fitted value, it gives me a negative linear fit. Can someone please assist me with this? Following is my code:
clc
clear
close all
ydata = [1,0.997236949247573,0.993216252587368,0.990582467367220,0.987935216987460,0.986050094641751,0.985182938362725,0.981795104204292,0.981910904576958,0.979112844409541,0.978527109966411,0.978116422598238,0.976826460307388,0.974431008412376,0.975117731552599,0.972595707157232,0.971631601728998,0.971754134681468,0.971864548990289,0.967534153659002,0.967923296771795,0.966797609428214,0.968006780761392,0.966978042567018,0.965560161259852,0.966723551050347,0.963551159445711,0.964820923997143,0.965389153732777,0.966883786449734,0.965231611365315,0.965336639610290,0.964132854340959,0.963501338355146,0.964194794075175,0.964038598223673,0.966930914508376,0.964819577481181,0.965562854291775,0.964613560539114,0.964520650937790,0.967340255360587,0.967373918259617,0.965183136790711,0.966190330729704,0.964132854340959,0.965906215861887,0.965662496472906,0.965313748838949,0.964350989926676,0.964707816656400,0.964101884473850,0.962709586969948,0.963155283753112,0.962682656650723,0.964567778996433,0.961581206594445,0.963135086013694,0.961289012630860,0.962367571915798,0.962258504122940,0.961375189652379,0.961258042763753,0.961649878908467,0.961317289466046,0.961408852551409,0.960680387416388,0.961617562525398,0.959607214195296,0.959955961829252,0.959389078609577,0.960471677442399,0.960174097414970,0.958077572063348,0.958412854537692,0.960094652973257,0.959394464673421,0.959191140763278,0.960054257494420,0.958280895973493,0.959473909115135,0.957825773578599,0.959515651109932,0.957715359269781,0.959012054140435,0.957025943097635,0.957673617274982,0.957234653071624,0.957420472274273,0.958621564511682,0.958337449643864,0.958126046637952,0.957841931770134,0.959113042837527,0.956850896022676,0.956118391339772,0.957327562672949,0.955154285911538,0.954839201176612,0.956111658759966,0.956845509958831,0.956069916765169,0.952655152287512,0.953304172980820,0.955477449742231,0.954025905536034,0.955653843333151,0.956178984558027,0.954934803809859,0.954879596655449,0.955485528837998,0.954269624925016,0.953370152262921,0.955511112641261,0.954790726602009,0.954440632452091,0.955226997773444,0.954167289711964,0.954351762398650,0.954468909287277,0.953775453567247,0.954758410218939,0.955360302853605,0.954591442239747,0.956150707722842,0.954353108914611,0.953298786916976,0.954786687054125,0.953833353753580,0.953775453567248,0.953547892369802,0.954183447903497,0.955618833918159,0.953554624949608,0.955130048624235,0.954332911175194,0.954296555244240,0.954953655033316,0.954011093860461,0.954349069366727,0.954502572186307,0.955492261417805,0.953861630588765,0.953868363168572,0.952803269043246,0.953298786916975,0.955042525086756,0.954161903648118,0.954102656945824,0.953401122130029,0.952123278482830,0.953652920614777,0.953857591040882,0.953857591040881,0.953283975241402,0.953911451679330,0.951960350051522,0.952095001647644,0.953413240773679,0.953248965826411,0.953108928166444,0.952727864149418,0.952900218192455,0.952671310479048,0.953259737954100,0.953737751120334,0.953775453567247,0.951864747418275,0.953170867900660,0.954468909287276,0.952828852846509,0.951925340636530,0.951994012950553,0.952962157926670,0.952764220080370,0.952152901833977,0.953938381998556,0.952664577899241,0.951913221992879,0.953438824576943,0.953328410268122,0.953177600480466,0.954062261466988,0.955027713411183,0.954050142823336,0.953209916863535,0.951187449889782,0.952797882979401,0.953613871651902,0.954783994022201,0.954590095723786,0.952536658882924,0.953308212528704,0.953581555268832,0.952811348139014,0.953134511969706,0.953195105187961,0.951463485661831,0.952951385798981,0.952614756808675,0.952006131594203,0.953772760535325,0.952186564733007,0.951670849119859,0.952042487525156,0.951957657019599,0.952353532712198,0.952338721036625,0.951289785102835,0.950599022414727,0.952202722924542,0.951406931991461,0.950111583636766,0.949805924513568,0.950763297361996,0.951872826514042,0.952166366993589,0.951009709782900,0.949644342598222,0.951183410341897,0.950050990418511,0.950993551591366,0.951060877389427,0.951225152336695,0.950057722998317,0.950413203212079,0.951273626911300,0.950426668371692,0.951703165502929,0.951735481885998,0.948926649590891,0.950643457441448,0.950970660820025,0.948946847330311,0.951621028029295,0.952143476222247,0.949486800230759,0.950244888716926,0.950460331270721,0.949906913210660,0.952131357578597,0.948917223979163,0.949387158049629,0.948285707993350,0.948121433046081,0.950864286059089,0.948695048845562,0.949546046933053,0.949477374619030,0.947730943417327,0.949031677835866,0.948428438685240,0.949313099671762,0.948117393498198,0.948459408552347,0.948269549801815,0.948633109111346,0.948769107223429,0.946797807856202,0.948855284244946,0.947415858682401,0.947145208974196,0.947332374692805,0.947386235331255,0.946994399186539,0.947739022513095,0.947231385995713,0.947456254161238,0.948284361477390,0.947600331369089,0.947123664718816,0.947749794640784,0.946943231580013,0.947702666582141,0.947780764507893,0.949415434884815,0.946901489585216,0.946407318227447,0.947448175065471,0.947106160011321,0.947992167513804,0.948147016849345,0.946482723121276,0.946496188280888,0.946004709955042,0.946906875649060,0.947883099720945,0.947219267352064,0.947300058309736,0.946424822934943,0.949380425469823,0.949092271054121,0.947959851130735,0.948831046957645,0.948179333232414,0.946995745702501,0.946910915196944,0.947360651527992,0.946743947217753,0.947374116687604,0.948342261663722,0.944837280616664,0.946342685461309,0.946707591286800,0.946299596950548,0.947378156235488,0.945624992453977,0.946971508415198,0.944889794739152,0.945401470804415,0.945334145006353,0.946913608228866,0.946665849292000,0.945320679846742,0.944038796651659,0.945740792826643,0.945300482107324,0.944743024499378,0.946006056471002,0.945343570618082,0.945463410538632,0.946304983014395,0.944802271201672,0.945055416202380,0.946201301285381,0.945072920909876,0.946520425568190,0.945894295646222,0.945914493385640,0.947102120463437,0.946752026313520,0.945906414289873,0.944501998142320,0.942880792925009,0.946012789050810,0.946334606365541,0.944265011333145,0.944262318301222,0.945962967960244,0.945491687373817,0.947515500863532,0.947799615731349,0.948736790840359,0.948392082754287,0.949177101559678,0.949241734325817,0.949041103447595,0.948204917035677,0.948520001770603,0.948961659005883,0.949546046933053,0.949323871799451,0.947896564880558,0.949240387809856,0.948604832276160,0.949671272917447,0.948727365228630,0.948538852994060,0.948522694802525,0.948642534723073,0.948509229642913,0.948917223979162,0.948439210812929,0.946799154372162,0.948680237169988,0.947578787113710,0.948036602540524,0.946430208998788,0.949655114725912,0.945579210911296,0.947386235331254,0.947069804080367,0.946329220301696,0.947283900118201,0.946979587510966,0.945416282479989,0.947897911396519,0.946843589398883,0.948832393473605,0.949186527171407,0.946758758893326,0.948054107248020,0.948932035654736,0.948510576158873,0.950236809621159,0.948758335095739,0.948452675972541,0.948638495175190,0.947441442485664,0.947962544162658,0.948091809694935,0.947425284294131,0.946388467003990,0.947114239107088,0.948063532859749,0.948781225867079,0.948532120414254,0.947034794665376,0.946430208998788,0.948559050733479,0.947673043230994,0.945497073437662,0.949229615682166,0.947635340784080,0.947090001819786,0.946986320090772,0.944079192130496,0.947363344559913];
xdata = [15.4149999618530,33.1199998855591,50.7449998855591,68.3190000057221,86.0669999122620,103.736999988556,121.440000057220,139.190999984741,156.878999948502,174.553999900818,192.220000028610,209.914000034332,227.637000083923,245.506999969482,263.266999959946,281.039999961853,298.882999897003,316.533999919891,334.249000072479,352.088999986649,369.869999885559,387.470999956131,405.052999973297,422.776999950409,440.328000068665,458.059999942780,475.711999893189,493.420000076294,511.114000082016,528.819000005722,546.431999921799,564.240000009537,581.898000001907,599.667000055313,617.407000064850,635.055999994278,652.782000064850,670.559999942780,688.154000043869,705.759999990463,723.497999906540,741.266000032425,758.967999935150,776.647000074387,794.427000045776,812.029999971390,829.740999937058,847.542999982834,865.196000099182,882.786000013351,900.529000043869,918.333999872208,936.116999864578,953.729000091553,971.394999980927,989.089999914169,1006.84699988365,1024.39499998093,1042.15400004387,1059.85699987412,1077.51799988747,1095.24099993706,1113.09999990463,1130.88100004196,1148.83599996567,1166.59400010109,1184.46900010109,1202.23799991608,1219.85599994659,1237.51099991798,1255.09999990463,1272.86400008202,1290.50799989700,1308.24699997902,1325.86999988556,1343.61100006104,1361.21300005913,1378.83500003815,1396.58999991417,1414.23000001907,1432.12500000000,1449.89199995995,1467.70499992371,1485.23600006104,1502.83800005913,1520.62400007248,1538.24799990654,1556.00099992752,1573.53799986839,1591.32299995422,1609.04299998283,1626.75300002098,1644.49900007248,1662.19099998474,1679.99600005150,1697.83500003815,1715.55900001526,1733.28399991989,1751.10599994659,1768.72399997711,1786.38400006294,1804.05200004578,1821.72900009155,1839.44600009918,1856.94700002670,1874.85500001907,1892.49300003052,1910.12400007248,1927.79500007629,1945.58899998665,1963.34400010109,1980.99399995804,1998.77200007439,2016.40400004387,2034.09899997711,2051.70600008965,2069.27399992943,2087.07699990273,2104.80999994278,2122.48000001907,2140.20799994469,2157.99199986458,2175.67700004578,2193.47199988365,2211.18000006676,2229.06599998474,2246.86199998856,2264.43000006676,2282.13599991798,2299.92499995232,2317.62500000000,2335.34500002861,2353.02099990845,2370.67100000381,2388.32399988174,2405.95899987221,2423.70600008965,2441.50399994850,2459.18300008774,2476.83500003815,2494.65400004387,2512.45499992371,2530.01399993897,2547.66000008583,2565.35400009155,2583.05500006676,2600.72099995613,2618.36999988556,2636.05200004578,2653.72300004959,2671.41199994087,2689.12599992752,2706.69400000572,2724.51499986649,2742.22300004959,2760.06099987030,2777.40000009537,2794.50399994850,2811.64499998093,2829.11899995804,2846.39700007439,2863.47499990463,2880.57599997520,2897.80900001526,2914.52200007439,2932.16199994087,2949.92100000381,2967.61400008202,2985.20700001717,3002.29399991035,3019.60699987412,3036.96499991417,3054.08999991417,3071.38700008392,3088.65899991989,3105.84400010109,3122.50999999046,3139.17100000381,3155.84999990463,3172.64800000191,3189.89400005341,3207.48499989510,3224.94499993324,3242.34899997711,3259.82999992371,3277.17799997330,3294.67300009728,3312.17799997330,3329.65799999237,3346.84299993515,3363.82699990273,3381.47699999809,3399.20899987221,3416.82299995422,3434.50099992752,3452.31099987030,3470.05999994278,3487.75799989700,3505.50399994850,3523.26099991798,3540.93700003624,3558.78500008583,3576.35400009155,3593.64800000191,3611.03299999237,3628.37899994850,3646.08999991417,3663.88999986649,3681.49199986458,3699.16000008583,3716.65899991989,3734.41299986839,3751.91400003433,3769.46600008011,3787.25799989700,3804.68099999428,3822.33800005913,3839.82999992371,3857.31399989128,3874.81900000572,3892.29900002480,3909.99900007248,3927.65499997139,3945.42199993134,3963.16000008583,3980.90899991989,3998.53999996185,4016.25900006294,4033.87299990654,4051.54099988937,4069.23799991608,4086.96000003815,4104.65700006485,4122.42000007629,4140.07500004768,4157.88299989700,4175.66499996185,4193.32200002670,4210.91199994087,4228.58500003815,4246.30999994278,4263.87500000000,4281.60100007057,4299.31200003624,4316.93000006676,4334.56599998474,4352.44600009918,4370.23000001907,4387.89899992943,4405.48900008202,4423.34400010109,4441.11599993706,4458.86800003052,4476.49499988556,4494.19600009918,4511.81099987030,4529.32599997520,4547.14499998093,4564.84299993515,4582.60400009155,4600.30200004578,4617.95799994469,4635.66499996185,4653.36400008202,4671.13400006294,4688.95899987221,4706.64299988747,4724.39800000191,4742.26499986649,4759.83500003815,4777.21099996567,4794.63899993897,4812.30900001526,4829.85500001907,4847.52900004387,4865.38599991798,4883.18099999428,4900.98900008202,4918.61599993706,4936.21199989319,4953.85500001907,4971.70700001717,4989.39299988747,5007.17899990082,5025.05399990082,5042.70700001717,5060.30200004578,5077.90899991989,5095.51399993897,5113.33800005913,5130.98399996758,5148.58599996567,5166.21099996567,5183.85800004005,5201.57299995422,5219.18899989128,5236.74199986458,5254.45499992371,5272.16599988937,5289.92899990082,5307.54500007629,5325.17300009728,5342.89800000191,5360.52600002289,5378.21199989319,5396.01999998093,5413.79099988937,5431.38599991798,5449.13499999046,5466.95300006867,5484.54600000382,5502.11699986458,5519.89599990845,5537.55800008774,5555.19400000572,5572.92700004578,5590.49699997902,5608.04600000382,5625.61800003052,5643.32899999619,5661.11699986458,5678.78900003433,5696.46399998665,5714.10199999809,5731.70799994469,5749.43599987030,5767.16400003433,5784.84699988365,5802.51799988747,5820.29699993134,5838.02699995041,5855.67100000382,5873.48900008202,5891.12700009346,5908.84899997711,5926.50200009346,5944.40499997139,5962.07999992371,5979.74699997902,5997.46499991417,6015.32200002670,6033.06500005722,6050.82299995422,6068.71300005913,6086.49199986458,6104.14599990845,6121.81399989128,6139.56299996376,6157.19499993324,6174.74900007248,6192.45099997520,6210.12599992752,6227.84100008011,6245.52900004387,6263.02799987793,6280.55599999428,6298.29399991036,6315.95000004768,6333.73000001907,6351.39599990845,6369.09800004959,6386.83899998665,6404.72600007057,6422.49099993706,6440.24000000954,6458.05500006676,6475.68799996376,6493.48000001907,6511.21799993515,6528.80099987984,6546.67599987984,6564.33399987221,6582.04600000382,6599.74199986458,6617.59699988365,6635.39800000191,6653.13599991798,6670.80500006676,6688.45899987221,6706.25600004196,6723.86699986458,6741.45600008965,6759.21000003815,6776.74300003052,6794.45000004768,6812.08699989319,6829.79999995232,6847.62800002098,6865.36899995804,6883.05599999428,6900.68400001526,6918.27699995041,6935.81099987030,6953.17000007629,6970.88299989700,6988.48099994659,7005.82899999619,7023.33500003815,7041.16000008583,7058.77600002289,7076.43400001526,7094.17899990082,7111.57200002670,7129.17000007629,7146.50000000000,7164.36899995804,7181.72900009155,7199.10199999809];
% f0 = fit(transpose(x),transpose(y),'exp2');
% plot(f0,x,y)
%
modelfun = @(k,x)exp(-k(1)*x);
beta0 = 10;
mdl = fitnlm(xdata,ydata,modelfun,rand(1,1)/10000) ;
parms = mdl.Coefficients.Estimate;
plot(xdata, ydata)
hold on
plot(xdata, modelfun(parms,xdata))
This is the fit I am getting:

Antworten (1)

Star Strider
Star Strider am 11 Mär. 2021
I added a scaling term and an offset term:
modelfun = @(k,x)k(1).*exp(-k(2).*x)+k(3);
beta0 = 10;
mdl = fitnlm(xdata,ydata,modelfun, [1 1E-3 min(ydata)]) ;
parms = mdl.Coefficients.Estimate;
plot(xdata, ydata)
hold on
plot(xdata, modelfun(parms,xdata))
text(2000, 0.98, sprintf('$y(x) = %.4f e^{-%.6f}+%.4f$', parms), 'Interpreter','latex', 'FontSize',14)
producing:
.
  4 Kommentare
sparsh agarwal
sparsh agarwal am 12 Mär. 2021
Yeah I just tried that as well and the two term exponetial is a great fit to the my data. I will have to think of a way to justify it. Do you know of any systems which use two term exponential model.
Thank you once again for all the help.
Star Strider
Star Strider am 12 Mär. 2021
I am not certain what you are modeling.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Linear and Nonlinear Regression finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by