指数拟合在某些情况下会失败

问题描述 投票:0回答:1

以下源代码应该对多个点执行指数拟合。

public class ExponentialFit
{
    public static (double A0, double b)? GetExponentialFit(List<double> x, List<double> y)
    {
        try
        {
            if (x.Count != y.Count)
                throw new ArgumentException("The count of x and y values must be the same.");

            if (!(x.Count > 1 && y.Count > 1))
                throw new ArgumentException("The count of x and y values must have more than two items.");

            // Check for non-positive values in y and adjust if necessary
            double minPositiveValue = y.FindAll(val => val > 0).DefaultIfEmpty(0).Min();
            double offset = (minPositiveValue <= 0) ? (1.0 - minPositiveValue) : 0;

            // Transform the y values with the natural logarithm, applying offset to avoid log(0)
            List<double> lnY = y.ConvertAll(val => Math.Log(val + offset));

            // Perform a linear regression fit to the transformed data
            var p = Fit.LinearCombination(x.ToArray(), lnY.ToArray(), t => 1.0, t => -t);

            // p[0] represents the intercept, which is the logarithm of A0
            // p[1] represents the slope, which is negative b
            double A0 = Math.Exp(p[0]) - offset; // Adjust back A0 if an offset was applied
            double b = p[1]; // Note the minus sign to ensure b is positive

            return (A0, b);
        }
        catch (Exception ex)
        {
            // Handle or log the exception as appropriate
            Console.WriteLine($"An error occurred: {ex.Message}");
        }

        return null;
    }
}

.

但是,此源代码无法拟合以下数据的曲线:

#x  #y
1 0.175137226463113
2 0.0499124811528676
3 0.0150798301633031
4 0.00425043824025153
5 0.000339094788465303
8 0.000832654166918471
15 0.00114438444169415
16 0.000664688484963336
17 0.00233094657561531
18 0.000531434636400301
22 0.000366115503846693
23 0.00118645258568415
26 0.000689457021714399
29 0.000282201559855841
30 0.00114119392105177
31 0.00042055441193457
32 0.000570898019601525
33 0.000209026163768316
34 0.00161323504801428
35 0.000960886266299364
36 0.000702432427156806
37 0.00154789156852539
38 0.00137044714471973
39 0.00119497504000941
40 0.000764199511830908
43 0.000879814338019771
44 0.000303051774153548
45 0.000441922647535488
46 0.000159897857956999
54 0.000786247882832768
57 0.001658776547693
59 0.00055671350883483
60 0.00132885638775539
61 0.000395226184834059
67 0.000259356176027131
68 0.00218815323291563
69 0.0013360830427298
71 0.00177091088907764
72 0.00112999552938455
75 0.000387053723423356
78 0.00135199344752952
79 0.00104327715178807
80 0.00117584437811563
81 0.00148126058019829
82 0.000985181083472811
85 0.000159266935723403
87 0.000363118174111117
88 0.000445538453593801
91 0.00116051301655151
94 0.000204874534371136
95 0.000509040224204922
103 0.000586889949524127
105 0.000301304708625423
107 0.00106706734872192
108 0.00192000811958724
114 0.000430479993287721
116 0.000199768887961949
118 0.000553661111893657
121 0.000776101716673659
122 0.000512561193576028
127 0.001006538076853
129 0.000401659530389188
130 0.000464129254026423
131 0.000525191162045531
137 0.000752661947712201
138 0.00166646427049258
139 0.000849711824238009
140 0.00136516955211207
143 0.000560867844983335
144 0.00214423731461782
145 0.00107556050879771
154 0.000270106245280213
155 0.00153471683249798
158 0.00126270054803854
163 0.00012578499415226
168 0.000821170899577065
175 0.000246471187496803
177 0.000219938407142516
180 0.0014638823143967
181 0.000463742425001762
182 0.000695418721873979
183 0.00145225792396901
184 0.000518206564798967
185 0.000535289321296449
186 0.000269349854507441
189 0.00115528897362835
194 0.000389483828014306
195 0.00121370211876932
201 0.000888318984334216
202 0.000444955393412311
204 0.000599054646089821
208 0.000146125935207628
209 0.000840566051838512
214 0.00112043246237977
215 0.0012348171828539
216 0.000566115094251604
217 0.00114626795205649
218 0.000500163705796137
223 0.000603769601416058
228 0.000416966783617222
239 0.000582224296827836
240 0.000815294718158425
241 0.000734630243322632
242 0.00249689392186825
243 0.000447185235181463
244 0.00153033249393355
245 0.000832148777824458
246 0.00170654275085212
249 0.0018260944873558
250 0.000640995491982391
252 0.00100719653201916
254 0.000498094410690856
255 0.000815634138695576
256 0.00101061370147501
257 0.00240707058360571
258 0.000130536161633184
260 0.0012298900670031
264 0.000220736492426472
265 0.000495912601514573
266 0.00147800258447338
267 0.00251763125311088
271 0.000688935982394506
272 0.000384043891148076
273 0.000147336418290218
275 0.00104673470036181
276 0.000498167605215708
277 0.000183273196123604
278 0.00196523193780342
281 0.000979228468680747
284 0.000540510804045218
286 0.000138364223469062
287 0.000179352788658874
289 0.00168216845650207
296 0.000524622992293962
304 0.000514591237910217
306 0.00062013212552046
309 0.000208275244500556
316 0.0001558748650031
319 0.000728084240880925
320 0.000300795368702654
321 0.000779626139035097
322 0.000286155542983322
323 0.000651130305272255
332 0.000256316092312043
335 0.00058187078736726
337 0.0014148724174449
338 0.000509244146298902
339 0.00110334456205739
340 0.00244093241971528
344 0.000131946934796687
346 0.000338384392579092
348 0.000535571071382353
349 0.00113224113059468
350 0.00227651822472752
351 0.00321340928059847
352 0.000933763597518307
353 0.000919178653084694
354 0.00162935766589726
355 0.000542934947926751
357 0.000819599347961604
361 0.000407543756281429
364 0.000947676226379864
368 0.00170819096904311
369 0.00134831820560701
371 0.000496160261579959
372 0.000703816859708546
374 0.000865515502175031
378 0.00206802251421994
380 0.000279268368651344
381 0.000465274574675564
382 0.000395537125628891
383 0.00105051792680865
384 0.000480424648270415
387 0.000798207651505005
388 0.00123791076868703
394 0.000891024022147048
395 0.000916773460388331
396 0.00170248945190089
397 0.00232873060230243
398 0.000816636899858203
401 0.00222698003677863
402 0.000505476771697316
403 0.000958120595966631
407 0.00111550087834369
408 0.000247492901982684
414 0.000117053004384132
415 0.00117283497280093
416 0.000169723947034902
417 0.00102066797055856
418 0.00071853376618337
419 0.00179240455519163
420 0.00135694997673003
421 0.000293191791821407
422 0.00212372375711674
423 0.00115686560526316
424 0.00139541047427283
425 0.00112835511758338
429 0.00018051594963241
431 0.000159749564678629
432 0.00122010760347565
433 0.00110213648343829
434 0.000664750411440351
435 0.000375795162241287
436 0.000579120813127789
442 0.000880029377454221
443 0.00030419768369732
444 0.00273319176048115
445 0.00122453195850202
446 0.00210530901854835
447 0.00168519163786624
448 0.000830644584876254
449 0.0011885620032053
451 0.000465555566581525
453 0.000755065953165485
454 0.000730611512857774
456 0.000137467425892917
458 0.00118360707269747
461 0.0015675331215414
462 0.00192009938498273
463 0.0015208497635245
464 0.00269901201911792
465 0.00247020018407935
466 0.000683827445440142
467 0.000145041045849562
471 0.000970653790135773
473 0.00016968531827427
476 0.000370855830094181
478 0.00118759889263813
479 0.000117614367691904
480 0.000955232253154741
482 0.00060366649394256
484 0.00120861537203356
485 0.000839606974712191
487 0.000302932829138006
488 0.00167587085308371
493 0.0009789676449538
495 0.000122381398325923
496 0.00116111962501758
506 0.000371164782798727
507 0.00251062665451048
508 0.000115932832970761
511 0.000543327117998701
512 0.000439594369349768
513 0.000457524985185114
517 0.000459234449366285
518 0.000702516713565512
519 0.00129296090876089
522 0.000706959623322008
523 0.00157026982553208
524 0.000375109656665473
526 0.000462151681298778
528 0.00112313094915901
529 0.00240277617947842
530 0.000666238964397907
531 0.00237775487125499
532 0.00145640239751064
535 0.000170838894912176
536 0.000111856119558406
538 0.00021521391879286
539 0.00221861399305966
541 0.000777136614458301
547 0.000665076652496122
548 0.00116711682874837
549 0.00159082239976154
550 0.00169218448715052
551 0.00151835410013809
552 0.000335059946684008
553 0.000273736448426467
554 0.000408559611942705
558 0.00210181882052977
559 0.000368643407767189
560 0.000896240379481974
561 0.000549274239066823
562 0.000105704389940556
572 0.00135903940401455
574 0.000217258940556688
575 0.00131502777102227
583 0.00120239961937021
584 0.000290183330413177
586 0.00176138596728987
587 0.000591097115439107
593 0.00038885025313369
599 0.000152458736883568
605 0.000463271151803383
606 0.000396222305573053
607 0.00146743641620999
608 0.000554167872070106
609 0.00029424490860553
611 0.000255976757451367
612 0.000602542321242497
613 0.0003410842275174
614 0.000906228564695098
615 0.000620027550445359
616 0.00120616022391417
617 0.00116980149336083
618 0.000941642817679934
620 0.000496385383219216
621 0.000905004649390216
622 0.000230710957255452
624 0.000433097007245851
626 0.000636498235857744
627 0.00125355990989548
628 0.00166355137479409
629 0.000786006027361442
630 0.000908395313212751
642 0.000398656538450987
643 0.00169689711866848
644 0.00256565749419472
645 0.00023757812804928
646 0.00199090711626143
647 0.0014595524893729
649 0.000298121515225637
650 0.000630687396930639
651 0.00095512996862706
655 0.00154480136783107
657 0.000890225140867211
658 0.0016749853824813
659 0.000937796712648599
660 0.000700561403684514
662 0.00144721606748426
664 0.00128895775260467
666 0.000712970278562898
668 0.000601899480555349
669 0.000722971767889615
671 0.00041373460204492
673 0.00059704365150578
674 0.00104875361538848
675 0.000357241115200129
676 0.00134811688943881
679 0.00138112435400478
680 0.000544002279724348
681 0.00062775778932987
682 0.00168919767816643
683 0.00107626243484848
684 0.00060198693747852
688 0.000329140279976795
690 0.00098433087369159
695 0.000857430148611286
697 0.000542226502256275
698 0.00150206967763144
699 0.000620427284027314
701 0.000854047320093652
703 0.000811418447067925
705 0.000646698983224761
706 0.00086965777720378
707 0.000510892997584683
708 0.000651231791895061
709 0.00100074384837951
715 0.00169392173781087
716 0.00147684238071189
717 0.00049644407472672
718 0.000751395706787581
719 0.000546834299212617
720 0.000660010835675379
723 0.000251110969920133
724 0.0014474131275423
729 0.000347643881098183
730 0.00122126473970536
733 0.000544302471707336
735 0.00080165646653105
736 0.00144670063473604
754 0.000415425852126439
759 0.000769284403273581
760 0.000356697322141542
761 0.00154365684439478
762 0.000770475077331124
765 0.000354696030385863
766 0.00131272631318165
768 0.000919013432117194
769 0.00105959590950633
770 0.000747606426087732
772 0.000736815900800389
773 0.00159170452984475
775 0.000122780254925364
791 0.000994914261625821
793 0.00127076180897387
794 0.000722010817560914
796 0.00148267883265299
797 0.000692715840781916
800 0.000388382154109773
801 0.000863960768437794
803 0.000939275876995835
804 0.000652784790966622
813 0.000635443752945558
814 0.000938762888204878
817 0.000416330688667313
823 0.000340058210173285
825 0.00137887843234726
826 0.00131129298535209
827 0.00169755225714564
829 0.00062015829752276
831 0.000592838007211572
833 0.000111727614345537
834 0.000242399969870415
838 0.000148566126679498
840 0.00153657220882017
841 0.000866457561970455
843 0.00204084040419273
844 0.000562136517356822
846 0.000266088657487807
849 0.000654350219346058
850 0.000545921112087113
851 0.000252256218992088
852 0.00163164920309015
853 0.00146236422157567
854 0.00142867801016616
855 0.000142680734870265
857 0.000294796294813105
860 0.000112962683833743
863 0.000931257668428627
867 0.00065354828405521
870 0.00157879513677304
871 0.000928855190338709
872 0.000636144496091034
873 0.000374637483755013
874 0.00102962489184255
875 0.00184369475690916
877 0.000237978183825045
878 0.000268781103521619
882 0.000323256764684435
888 0.000262535965821811
890 0.000374105964269512
891 0.000448073175560885
895 0.00150653969251265
896 0.000470463330603455
897 0.0010199195745947
898 0.001988441980524
899 0.000188599735707438
901 0.000773712047424449
903 0.0012997545450722
904 0.000898414979728718
905 0.000997989376841908
906 0.00111848263289702
907 0.000487432357473362
910 0.000641555920369817
911 0.000583147463607206
912 0.000638892762560676
913 0.0019369283650389
921 0.00111421482184508
923 0.00113489073088918
924 0.0013118663991183
928 0.000319016934052163
929 0.000326447027876885
941 0.00126635763700337
942 0.000928573920116012
944 0.000393417407798842
945 0.0011741239060366
946 0.00040055115922542
947 0.000824409271485864
948 0.00026549500652884
953 0.00115228564151154
954 0.000843957264590687
956 0.000411763826686749
957 0.000525650742138908
959 0.000862860867583185
960 0.00100678073102224
964 0.000243212258197806
965 0.000356528821336742
969 0.00106330661307905
972 0.000195420723511524
973 0.000248114513435413
977 0.000926065788379442
979 0.000572162731449116
980 0.00174977668010224
981 0.00193108780601428
982 0.000961188395431852
987 0.000383801890134186
988 0.00108231713300999
995 0.000997418312777521
996 0.000250197538164931
997 0.00135340682747122
998 0.000442324693200419

1 0.866656742703216
2 0.793504438516429
3 0.733944193779819
4 0.682748276046356
5 0.63750908148168
6 0.596932992265978
7 0.559443167557429
8 0.525311886803216
9 0.493633083592892
10 0.464747472723122
11 0.437468718524744
12 0.4124950336936
13 0.388796803838326
14 0.366916990591593
15 0.345842223251366
16 0.325995920765457
17 0.30762954588891
18 0.290209813249665
19 0.274393062820338
20 0.259311175037313
21 0.245037169518783
22 0.231378665944242
23 0.218339597761596
24 0.206086324769179
25 0.194337746786273
26 0.183342673361332
27 0.172965086977943
28 0.163007302239566
29 0.153767697107994
30 0.144525144242291
31 0.136238842509445
32 0.12852581161901
33 0.12107988557426
34 0.114480487961888
35 0.107949975524377
36 0.102149850204906
37 0.0964546639792822
38 0.0914223865169132
39 0.0866171717503949
40 0.0822451128106496
41 0.0780255513275429
42 0.0740747183294567
43 0.0700559320712018
44 0.0660505559503888
45 0.0628076442246787
46 0.0596107396717811
47 0.0565739451874187
48 0.0535693454300031
49 0.0510900061892651
50 0.0486148782159439
51 0.0461486132664971
52 0.0438934288408924
53 0.0415018070543214
54 0.0391138563003405
55 0.0371089434522298
56 0.0348053651341156
57 0.0327956361827255
58 0.0308657696267883
59 0.0288471379119248
60 0.0275843258061087
61 0.026255097706209
62 0.0250954969836859
63 0.0239385812137967
64 0.0230039386332495
65 0.0223699795660951
66 0.0213327206485255
67 0.0206836591060665
68 0.0202478385718119
69 0.0196910395882501
70 0.0192180676545499
71 0.0186595934024019
72 0.018134046755665
73 0.0173815677000099
74 0.0165634970692678
75 0.0160344860078936
76 0.0157018159768905
77 0.0147033852450645
78 0.0139625394527792
79 0.0129471097427206
80 0.0120138802534907
81 0.0113023930693385
82 0.0109802498903699
83 0.010039405904405
84 0.0092076178565744
85 0.00822295531286119
86 0.00733426475749453
87 0.00680725552785116
88 0.00600921592026868
89 0.00580491590039054
90 0.00527936228250076
91 0.00445605998313871
92 0.00357545430755136
93 0.00295801209553696
94 0.00218241978914631
95 0.00169773421993513
96 0.0014666518833268
97 0.000980751835984954
98 0.000606788955076783
99 0.000211022272883692
103 0.000461704981306102
104 0.00100929682146253
105 0.00179367398419212
106 0.00228197502620665
107 0.0028944194562157
108 0.0030987961593359
109 0.0035959215847165
110 0.00369276168541621
111 0.00372670999005786
112 0.0037604243081659
113 0.00366057246873174
114 0.00364200765317002
115 0.00367669528955281
116 0.00384486426233719
117 0.00382507254270304
118 0.00380929028926086
119 0.00387312107307528
120 0.00395469223623785
121 0.003579543514139
122 0.00366277606619614
123 0.00361315889364132
124 0.0033518873375877
125 0.00330104273348085
126 0.00309003354883553
127 0.00300091639356291
128 0.0032118805897042
129 0.0029382301561388
130 0.00279105839742857
131 0.00255074722793437
132 0.00203008395980659
133 0.00183793095949485
134 0.00144316807889043
135 0.00104559957189913
136 0.000546199643133396
137 0.000177869554510767
151 0.000144334493905744
152 0.000375906672387101
153 0.000759739207616997
154 0.00112501741882616
155 0.00108884557561283
156 0.000965738246615747
157 0.000838480172810179
158 0.000637211977240259
159 0.000422275407379201
306 0.000282902113540393
307 0.00106748842380125
308 0.00159441807287365
309 0.002188852889145
310 0.00262260150899691
311 0.00292686046633259
312 0.0031774336003919
313 0.00380424525574649
314 0.00456877900835183
315 0.00532252463440059
316 0.00609212814134752
317 0.00665006937808128
318 0.007277378490489
319 0.00753982457903922
320 0.00794212535757693
321 0.00806224512310389
322 0.00821434337132407
323 0.00875332883886628
324 0.00879411020004977
325 0.00894259335255636
326 0.00938874344130757
327 0.00971744114437965
328 0.00969884988921336
329 0.00974714624210258
330 0.00941496096706338
331 0.0096734789123792
332 0.0096375694762863
333 0.00950952993726732
334 0.00900590313308164
335 0.00889818186416187
336 0.00862936382643368
337 0.00851321016520834
338 0.00864781052946372
339 0.00832682141261665
340 0.00793666121991565
341 0.00749697365411182
342 0.00750610121013547
343 0.00724828421379167
344 0.00715958273835027
345 0.00679984225695484
346 0.00648273884728256
347 0.00625335221458668
348 0.00546385734793528
349 0.00506166740248927
350 0.00477209167016338
351 0.00486907244580664
352 0.00478155541997251
353 0.00516488795895019
354 0.00525883803806114
355 0.00520839056205594
356 0.00488366411638956
357 0.00493802621134135
358 0.00498245952316294
359 0.005283318433904
360 0.00486818314568307
361 0.00470629398704728
362 0.00437704541488982
363 0.00398335593164398
364 0.00375552820417726
365 0.00396694918110808
366 0.0037110449163901
367 0.0037956670444433
368 0.00349689127748938
369 0.00338044309143333
370 0.00288729126308337
371 0.00254407602203718
372 0.00244047761621737
373 0.00296691978694473
374 0.00310152244731374
375 0.00319655879055017
376 0.00321889219836996
377 0.00347514632660311
378 0.00365467893379743
379 0.00346541846270525
380 0.00372220862822438
381 0.0037963905344623
382 0.00413792433823791
383 0.00446939191078333
384 0.00497289697832821
385 0.0048438344477878
386 0.00459418505872015
387 0.00468667765991026
388 0.00414836219248269
389 0.00441100725516353
390 0.00436675931080464
391 0.00418281420285276
392 0.00393246296710844
393 0.00393816084165569
394 0.0039980478675977
395 0.00404986104657371
396 0.00411839468234528
397 0.00385342034394862
398 0.0038964389774704
399 0.00396719969132728
400 0.00391922381109116
401 0.00411473043610751
402 0.00417281987063905
403 0.00376977295093386
404 0.00345750240962116
405 0.00343738564940124
406 0.00308702816521252
407 0.00325540002848958
408 0.00342907855713552
409 0.00335900323201907
410 0.00292397179410481
411 0.00279644834576736
412 0.00263367071410528
413 0.00223277723921697
414 0.00163756652916759
415 0.00160220423595716
416 0.00165102292377932
417 0.00181563743552678
418 0.0020930562587376
419 0.00214674822770211
420 0.00232117087424095
421 0.00193275656384299
422 0.0016126079555114
423 0.00165901631503183
424 0.00161649394953425
425 0.00152016965375809
426 0.00112245904582002
427 0.000808971436760706
428 0.00090716445629656
429 0.000499291585547359
430 0.00043566673700631
431 0.000293543720651314
432 0.000172077607702019
434 0.000353670771497873
435 0.000423874315590024
436 0.000586996989150711
437 0.00121365557580033
438 0.00177756756621251
439 0.00188146771447975
440 0.00191666802338336
441 0.00210430792153799
442 0.00198782008907955
443 0.00220903501644398
444 0.00211269124959179
445 0.00237128322037707
446 0.00299885710673236
447 0.00315029152999077
448 0.0035212170244567
449 0.00358853363140646
450 0.00380581109777004
451 0.00447649892135205
452 0.00509938921087672
453 0.00545743403694816
454 0.00594391943491631
455 0.00617483622842095
456 0.00645654495495501
457 0.00562687128860307
458 0.00532452185858519
459 0.00566630360428354
460 0.0056940585789071
461 0.00551251438720154
462 0.00544679957547155
463 0.00535549613263037
464 0.0053620693622586
465 0.0056330446121521
466 0.00550360435812556
467 0.0054384172459757
468 0.00546921531130351
469 0.00552097712993138
470 0.0054617076021809
471 0.00549906006282914
472 0.00534134665264477
473 0.00478335279876859
474 0.00450958311204265
475 0.00403347451342958
476 0.00413355592326785
477 0.00422472171908589
478 0.00421526482000795
479 0.00426850574026761
480 0.00409405165632666
481 0.00382787857417949
482 0.00332759223372001
483 0.00337334523791417
484 0.00349285488027537
485 0.00379401407123117
486 0.00372145821636245
487 0.00354945581329662
488 0.00367590164601358
489 0.00339313774555133
490 0.00302385516850771
491 0.00299346732399809
492 0.00285655548227575
493 0.00294516818067757
494 0.00302089434059706
495 0.00256483235698753
496 0.00231408808525433
497 0.00220403710636553
498 0.00207156508946083
499 0.00230198303957158
500 0.00217136563081089
501 0.00225657172777735
502 0.00236021656748633
503 0.00178401863291227
504 0.00144810596746741
505 0.00136317331828494
506 0.00133156683334968
507 0.000746142323476477
508 0.000888855732449103
509 0.000410142376765184
510 0.000300426976548577
511 0.000222605779398553
512 0.000404101156954216
513 0.00054501613215557
514 0.000774929707304693
515 0.000803392267904104
516 0.000781699316835612
517 0.000604649960245543
518 0.00043064000982999
519 0.000349616066493863
520 0.000432790375847803
521 0.000586264836591014
522 0.000439258338199295
523 0.000545793278141101
524 0.000380521077751037
525 0.000351525434605936
526 0.000185231448939206
527 0.000259451091017682
528 0.000764739727224888
529 0.000892835560386807
530 0.000857920970961717
531 0.000596942717347561
532 0.000791999722605703
533 0.000854367805747762
534 0.000782867685419665
535 0.000608863150112615
536 0.000512535655887675
537 0.000253839384600223
538 0.000229302063819859
566 0.000273930952541806
567 0.000954637905829707
568 0.00149230128503513
569 0.00151429146338723
570 0.00186788196151022
571 0.00214459418882752
572 0.00247500789848668
573 0.00249358293591437
574 0.00272239971345726
575 0.00261014776988484
576 0.00219074235174814
577 0.00220615634467633
578 0.00198182482510696
579 0.00175731386214541
580 0.00142169410686292
581 0.00137776877228486
582 0.00134009846447537
583 0.00150227864488548
584 0.00142954923034318
585 0.00128213481143251
586 0.00124934129124709
587 0.00133832574259045
588 0.00142595786173782
589 0.00137108283404294
590 0.00137063322744152
591 0.00109987320490233
592 0.001188434313724
593 0.001012389619641
594 0.00106203109310351
595 0.00120225889431967
596 0.00113554760958685
597 0.00106756712171726
598 0.00108505106862722
599 0.00100867761191463
600 0.000788470576444099
601 0.00111441605747649
602 0.000834726264311225
603 0.000595798398676862
604 0.000165120892313853
721 0.000248345662713212
722 0.000285188501789708
723 0.000596559162070927
724 0.000672984898309813
725 0.000519076151591838
726 0.00108689226334105
727 0.00123238319479423
728 0.000916633016001369
729 0.000836864972509732
730 0.00110044038894853
731 0.00126699627275435
732 0.000911877229037124
733 0.00114378529544978
734 0.000910831335387851
735 0.00125410800335158
736 0.00203642998592414
737 0.00238272650990093
738 0.00283955362518303
739 0.00328647229068397
740 0.00357880581047668
741 0.00400359083243469
742 0.00448348611057906
743 0.00461898358673022
744 0.0045897362356166
745 0.0049550548536417
746 0.00508554265338022
747 0.0050018981804586
748 0.00501582517077321
749 0.00488528007812446
750 0.00476599791149569
751 0.00449248877590601
752 0.00468923059828102
753 0.00480473250394601
754 0.00453033943229654
755 0.00438323244524052
756 0.00447017779691551
757 0.00396418787601833
758 0.00370133593470804
759 0.00378247497663438
760 0.0039692021724066
761 0.00368851747026138
762 0.00341383013794197
763 0.00328500336334873
764 0.00282710301236505
765 0.00256361927134563
766 0.00241499581870349
767 0.00223927723745571
768 0.00159334051269152
769 0.0014234024984417
770 0.00131316134725226
771 0.00105184087070923
772 0.000524760428320434
773 0.000363743448802087
774 0.000254517973865595
775 0.000689197109635708
776 0.00112912012755373
777 0.0013827151284375
778 0.0020609050218523
779 0.00236319578367202
780 0.0026118349889014
781 0.00229422259414257
782 0.00233604643766707
783 0.00209614528339774
784 0.0019422960398649
785 0.00190951772060668
786 0.00210234393203559
787 0.00210591846925355
788 0.0022409233110434
789 0.00224280273912675
790 0.00198832806746705
791 0.001533688716032
792 0.00115824820272858
793 0.00105403558393062
794 0.000918925764472437
795 0.000465495926955792
796 0.000268989067922323
799 0.000612746993929052
800 0.000980847578628382
801 0.00111141758256375
802 0.00126820615838924
803 0.00119438243906852
804 0.00115787884423193
805 0.00111417020299334
806 0.000824638292677043
807 0.000289655790543548
852 0.000411064525726597
853 0.000938444850848076
854 0.00113675417583437
855 0.00127308889437224
856 0.000980466599825093
857 0.000801928601508369
858 0.000786350032552136
859 0.00088722358464534
860 0.00115780392196172
861 0.000905459613140791
862 0.000759182927573888
863 0.000519064935248368
864 0.000397307617793847
865 0.000451697292981379
866 0.000638312666896634
867 0.0011538359342742
868 0.00123231001344763
869 0.00178448085469728
870 0.00189175429263245
871 0.00247397617436959
872 0.00296706913841549
873 0.00347085097584296
874 0.00384448173435877
875 0.00424510290027341
876 0.00453242840260212
877 0.00453773303514347
878 0.00479339508836628
879 0.00475229169825018
880 0.00482645646547226
881 0.00525374789846558
882 0.00530348329584989
883 0.00551725257376298
884 0.00560781069883412
885 0.00592970766370721
886 0.00628315640536481
887 0.00660582831286948
888 0.00714425096237464
889 0.00737942318686923
890 0.00747813118655532
891 0.0079136134443729
892 0.0078571682400858
893 0.00759157200645855
894 0.00773045335433266
895 0.00758260478981481
896 0.00719747993140769
897 0.00638834906661989
898 0.00581577225079993
899 0.00522440619684362
900 0.0048739105032339
901 0.00433538163692542
902 0.00427319275793446
903 0.00388933263652678
904 0.00359151304704348
905 0.00327245898007813
906 0.00268596447260724
907 0.00244113574616675
908 0.00253598711500927
909 0.00261174454605012
910 0.00269564505902699
911 0.00259034241746847
912 0.0026690369346669
913 0.00284735121410579
914 0.00306393526389674
915 0.00318846411299567
916 0.00295575881769167
917 0.00284651689159554
918 0.00288403669394492
919 0.00341522927175728
920 0.00348794232811184
921 0.00350767526931897
922 0.0037228859841806
923 0.00356196791222926
924 0.0035860039699254
925 0.00372124116622734
926 0.00371604493156051
927 0.00387105627759241
928 0.0039231429291302
929 0.00341803844955145
930 0.00301205579653473
931 0.00257465399230654
932 0.00230583729502473
933 0.0024853473414604
934 0.00278420113278252
935 0.00290403695212877
936 0.00309769609782364
937 0.00343921362324169
938 0.00370228952700986
939 0.00393629515332884
940 0.00409439421996211
941 0.0042892557903025
942 0.0039709868243752
943 0.00375794652030889
944 0.00344606930041613
945 0.0030979687349551
946 0.00308241306474918
947 0.00339852896606516
948 0.00335577238370401
949 0.00342785497192209
950 0.00337019997061744
951 0.00314878712542406
952 0.00279993313476124
953 0.00271206892884405
954 0.00272748925583305
955 0.00242942652801277
956 0.00223051878631572
957 0.00215736794766585
958 0.00189711591976269
959 0.00168620346347029
960 0.00162818213814737
961 0.00134521884097759
962 0.00113389322988184
963 0.000923014317269392
964 0.000594554012854844
965 0.000303296066476635
973 0.000691125051635687
974 0.000845754528301006
975 0.000933818789642348
976 0.00173332365666434
977 0.00254138802691498
978 0.00315676807801437
979 0.00350384326359019
980 0.00366128916306666
981 0.003856610976277
982 0.00397166447413596
983 0.00402591784067616
984 0.00426575342967725
985 0.00449554273642543
986 0.00409075856738876
987 0.00429635938730545
988 0.00389577900092219
989 0.00417814503937353
990 0.00461315488157919
991 0.00492407381370129
992 0.00481224975321928
993 0.00440632168493724
994 0.00438910609182075
995 0.00443647558332836
996 0.00450081209041514
997 0.00414647661016853
998 0.00416533832615127
999 0.00416623273449434

如何修改源代码,使其可以通过给定点拟合曲线?

c# curve-fitting exponential mathnet-numerics
1个回答
0
投票

在拟合明显“失败”的情况下,必须绘制曲线的左侧才能查看发生了什么。

下图中,红叉代表数据点。蓝线代表拟合的指数函数。

观察到左侧第一点的拟合效果还不错。在右侧,蓝色曲线非常水平(正如渐近线所预期的那样)。如此分散并不奇怪。

作为结论,我认为理论上不存在拟合问题。它们是用方便的大小和方便的绘图范围来表示结果的一些问题。此外,回归标准的规范也存在一些缺失(正如评论中已经明智地提到的那样)。

此外,通常的回归迭代方法需要初始值来启动过程,由于难以将参数的初始值设置得与未知的正确值不相距太远,因此可能会出现一些问题。

事实上,指数函数的拟合(垂直位移 = a 非常低)对于整个函数来说是可以接受的。

为了检查上述考虑因素,微积分和上面的绘图是使用不同的软件使用非常不同的方法制作的,该方法不是迭代的,也不需要“猜测”初始值。一般原理在 https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales 中进行了解释。算法是:

© www.soinside.com 2019 - 2024. All rights reserved.