Lmfit 问题,最佳拟合曲线与试验曲线相差几个数量级

Lmfit issue, the best fit curve is orders of magnitude away from the trial curve

提问人:Remos 提问时间:7/26/2023 最后编辑:Remos 更新时间:7/26/2023 访问量:26

问:

我正在尝试使用 Lmfit 将测量数据拟合到 RC 低通滤波器方程中。代码运行,我提供的 R 和 C 的试验值给出了一个接近数据的图,但最佳拟合是出路。我无法弄清楚为什么?

下面是绘图和代码。

[![Curve fitting trial and best fit]

(https://i.stack.imgur.com/0Xono.jpg)](https://i.stack.imgur.com/0Xono.jpg)

from numpy import loadtxt
from lmfit import Model
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt(fname='C:/model.txt)
x= data[:, 0]
y = data[:, 1]
#x *= 1e9
def alpha_model(x, C, R):
    s = 2j*np.pi*x*1e9

    return 1 / (1 + s * C * R)

rf_model=Model(alpha_model)

print(f'parameter names: {rf_model.param_names}')
print(f'independent variables: {rf_model.independent_vars}')

params=rf_model.make_params(R=200, C=0.5e-13)

result=rf_model.fit(y, params, x=x)

print(result.fit_report())
fig, ax = plt.subplots()
plt.plot(x, y, 'o')
plt.plot(x, 20*np.log10(np.abs(result.init_fit)), '--', label='initial fit')
plt.plot(x, 20*np.log(np.abs(result.best_fit)), '--', label='best fit')

plt.legend()
plt.show()

以下是数据

0   0
0.1 -0.48013828
0.2 -0.732800599
0.3 -0.815386052
0.4 -0.904235955
0.5 -1.07427276
0.6 -1.007658354
0.7 -1.103477556
0.8 -1.225818899
0.9 -1.182528394
1   -1.284168883
1.1 -1.330105079
1.2 -1.342248197
1.3 -1.534566035
1.4 -1.57152242
1.5 -1.540308548
1.6 -1.478151114
1.7 -1.507890836
1.8 -1.54151029
1.9 -1.585137492
2   -1.649625475
2.1 -1.67978167
2.2 -1.668881596
2.3 -1.642681563
2.4 -1.71737638
2.5 -1.751526536
2.6 -1.771118997
2.7 -1.787827784
2.8 -1.852761961
2.9 -1.83310067
3   -1.832522511
3.1 -2.00013182
3.2 -2.036332089
3.3 -2.008415801
3.4 -1.956157111
3.5 -2.013422461
3.6 -1.985952915
3.7 -1.996329564
3.8 -2.096287984
3.9 -2.106377659
4   -2.187017033
4.1 -2.274855746
4.2 -2.281824559
4.3 -2.263896174
4.4 -2.276768162
4.5 -2.303929494
4.6 -2.245844255
4.7 -2.247080463
4.8 -2.291421338
4.9 -2.37059307
5   -2.302075294
5.1 -2.303719959
5.2 -2.345746522
5.3 -2.396864516
5.4 -2.343909927
5.5 -2.368378902
5.6 -2.442194129
5.7 -2.355818334
5.8 -2.385716334
5.9 -2.437858011
6   -2.471306066
6.1 -2.403912412
6.2 -2.412698532
6.3 -2.458348853
6.4 -2.49608506
6.5 -2.5561304
6.6 -2.577888054
6.7 -2.565783908
6.8 -2.565726121
6.9 -2.563518517
7   -2.571234541
7.1 -2.593327218
7.2 -2.583829624
7.3 -2.598859021
7.4 -2.612620283
7.5 -2.590380362
7.6 -2.63037769
7.7 -2.64090044
7.8 -2.632367731
7.9 -2.691508551
8   -2.719358264
8.1 -2.752775329
8.2 -2.803774244
8.3 -2.752316135
8.4 -2.798161267
8.5 -2.872380383
8.6 -2.888586051
8.7 -2.819098131
8.8 -2.80500239
8.9 -2.841113363
9   -2.847309638
9.1 -2.828125056
9.2 -2.781298851
9.3 -2.711045905
9.4 -2.815312994
9.5 -2.97352178
9.6 -3.061838082
9.7 -2.899422942
9.8 -2.919902803
9.9 -2.928810747
10  -2.924487792
10.1    -2.987883832
10.2    -3.033465792
10.3    -3.080047639
10.4    -3.131385654
10.5    -3.073825555
10.6    -2.992012913
10.7    -2.969585777
10.8    -3.128027826
10.9    -3.077152122
11  -3.087304394
11.1    -3.161964955
11.2    -3.201050499
11.3    -3.208929643
11.4    -3.228855916
11.5    -3.274208521
11.6    -3.201879089
11.7    -3.179542969
11.8    -3.171015953
11.9    -3.133471576
12  -3.187115381
12.1    -3.260274169
12.2    -3.32160498
12.3    -3.272362192
12.4    -3.304605367
12.5    -3.313991949
12.6    -3.266635788
12.7    -3.421490938
12.8    -3.472322614
12.9    -3.416282207
13  -3.231716507
13.1    -3.377371029
13.2    -3.433882939
13.3    -3.411154197
13.4    -3.5280148
13.5    -3.482623349
13.6    -3.427954497
13.7    -3.423080194
13.8    -3.447374787
13.9    -3.403962145
14  -3.389279415
14.1    -3.531254691
14.2    -3.73421227
14.3    -3.784344575
14.4    -3.697583717
14.5    -3.619210695
14.6    -3.545324311
14.7    -3.505840974
14.8    -3.522583174
14.9    -3.781450655
15  -3.881782346
15.1    -3.899628774
15.2    -3.918678295
15.3    -3.743649935
15.4    -3.731943106
15.5    -3.833259569
15.6    -3.725036414
15.7    -3.749204312
15.8    -3.808444356
15.9    -3.866379258
16  -3.896684803
16.1    -3.94719857
16.2    -3.981561243
16.3    -3.950833593
16.4    -3.96643763
16.5    -3.910082819
16.6    -3.820197457
16.7    -3.883578906
16.8    -4.030977237
16.9    -4.126957778
17  -4.114664963
17.1    -4.067766373
17.2    -4.115206403
17.3    -4.158093764
17.4    -4.073399939
17.5    -4.249549624
17.6    -4.272886379
17.7    -4.153053973
17.8    -4.074264669
17.9    -4.208523988
18  -4.302873377
18.1    -4.262179319
18.2    -4.297647725
18.3    -4.206342304
18.4    -4.12377637
18.5    -4.212310732
18.6    -4.378159748
18.7    -4.396708123
18.8    -4.301868935
18.9    -4.296257953
19  -4.469989016
19.1    -4.527620036
19.2    -4.357789688
19.3    -4.259336742
19.4    -4.379530399
19.5    -4.535091587
19.6    -4.504124109
19.7    -4.37213987
19.8    -4.391780262
19.9    -4.517479423
20  -4.496461965
20.1    -4.516192265
20.2    -4.516235541
20.3    -4.477019496
20.4    -4.499014668
20.5    -4.554538642
20.6    -4.634336161
20.7    -4.732302133
20.8    -4.691464728
20.9    -4.570291486
21  -4.461495524
21.1    -4.685515156
21.2    -4.811473052
21.3    -4.843957158
21.4    -4.785436778
21.5    -4.78601175
21.6    -4.847169519
21.7    -4.930462664
21.8    -4.993958737
21.9    -5.016095248
22  -5.002989358
22.1    -4.945976472
22.2    -4.804435189
22.3    -4.79810536
22.4    -4.834606728
22.5    -4.887935286
22.6    -5.050560876
22.7    -4.980700676
22.8    -4.85830124
22.9    -4.878563322
23  -4.904218338
23.1    -4.998673104
23.2    -5.116235367
23.3    -5.062221924
23.4    -5.08583224
23.5    -5.118431228
23.6    -5.135298414
23.7    -5.137389979
23.8    -5.16194037
23.9    -5.185572147
24  -5.180798407
24.1    -5.092537152
24.2    -5.072927383
24.3    -5.115348936
24.4    -5.156932365
24.5    -5.105855721
24.6    -5.107421186
24.7    -5.212627622
24.8    -5.301932877
24.9    -5.290323696
25  -5.292269824
25.1    -5.443589937
25.2    -5.363513128
25.3    -5.223668437
25.4    -5.147535499
25.5    -5.53615062
25.6    -5.492511452
25.7    -5.411865615
25.8    -5.422188034
25.9    -5.270370558
26  -5.410973377
26.1    -5.592912786
26.2    -5.526873336
26.3    -5.789610217
26.4    -5.877880122
26.5    -5.755724381
26.6    -5.450621693
26.7    -5.566195594
26.8    -5.692399279
26.9    -5.701324681
27  -5.993722448
27.1    -5.820682705
27.2    -5.542984486
27.3    -5.523597314
27.4    -5.491038603
27.5    -5.396225402
27.6    -5.303644967
27.7    -5.451226619
27.8    -5.716062127
27.9    -5.818257706
28  -5.656598899
28.1    -5.533173604
28.2    -5.333707782
28.3    -5.24248042
28.4    -5.482979808
28.5    -5.582668522
28.6    -5.913659894
28.7    -6.396481047
28.8    -6.560372384
28.9    -6.013527204
29  -5.74929536
29.1    -6.047465357
29.2    -6.170638551
29.3    -6.22571217
29.4    -6.134405412
29.5    -5.790121811
29.6    -6.202680264
29.7    -6.639040086
29.8    -6.905363112
29.9    -6.534233094
30  -6.259686798
30.1    -6.177015405
30.2    -6.303699976
30.3    -6.184476809
30.4    -5.853333007
30.5    -5.730126509
30.6    -6.310014046
30.7    -6.104564707
30.8    -6.010593325
30.9    -6.059413686
31  -6.138728921
31.1    -6.658478769
31.2    -6.885400893
31.3    -6.535512442
31.4    -6.050151904
31.5    -6.263666792
31.6    -6.578659546
31.7    -6.337123571
31.8    -6.557047196
31.9    -6.458730176
32  -6.142316105
32.1    -6.095868682
32.2    -6.054398439
32.3    -6.186907892
32.4    -6.54053497
32.5    -6.565934291
32.6    -6.506617934
32.7    -6.292126017
32.8    -5.829704807
32.9    -6.657819922
33  -6.863282674
33.1    -6.527116594
33.2    -6.547614854
33.3    -6.411316583
33.4    -6.176805985
33.5    -5.911679324
33.6    -6.418714038
33.7    -7.035693747
33.8    -7.232652239
33.9    -6.359285792
34  -6.649393493
34.1    -6.994304528
34.2    -7.197375719
34.3    -6.87274599
34.4    -6.483105156
34.5    -6.256136482
34.6    -6.242464293
34.7    -6.111823953
34.8    -6.131313566
34.9    -6.282264863
35  -6.57819646
35.1    -7.644059601
35.2    -7.696178691
35.3    -6.978390372
35.4    -6.75189104
35.5    -6.371301111
35.6    -6.170007884
35.7    -6.259828671
35.8    -6.753594979
35.9    -7.216640527
36  -7.250557439
36.1    -6.394494332
36.2    -6.970925378
36.3    -6.923324159
36.4    -6.465195678
36.5    -6.728880176
36.6    -7.605974593
36.7    -7.826543005
36.8    -7.019861931
36.9    -7.362022278
37  -7.476411351
37.1    -7.791292642
37.2    -8.884124377
37.3    -7.21893541
37.4    -6.481666719
37.5    -6.432713267
37.6    -6.343300622
37.7    -7.025439368
37.8    -7.560059015
37.9    -7.538900867
38  -6.832987675
38.1    -7.191383098
38.2    -7.648955925
38.3    -7.160945266
38.4    -7.517592141
38.5    -7.667810925
38.6    -7.450398325
38.7    -6.623793911
38.8    -7.297638496
38.9    -7.800966533
39  -7.547670305
39.1    -7.51598606
39.2    -7.586500444
39.3    -7.832963591
39.4    -8.385494121
39.5    -7.320686264
39.6    -7.303231516
39.7    -7.751746975
39.8    -6.492268182
39.9    -6.914238485
40  -7.610544606
40.1    -8.13063873
40.2    -8.503745955
40.3    -7.996972164
40.4    -7.521193606
40.5    -7.884189267
40.6    -7.7484067
40.7    -7.669697775
40.8    -7.56208496
40.9    -7.046874912
41  -7.218644951
41.1    -7.450289804
41.2    -7.570208356
41.3    -8.006064051
41.4    -8.082513849
41.5    -7.900025658
41.6    -7.531070644
41.7    -7.697008317
41.8    -8.006675942
41.9    -8.199624055
42  -7.514558527
42.1    -7.458260021
42.2    -7.801735643
42.3    -8.4655362
42.4    -8.332985713
42.5    -8.28829025
42.6    -8.087428136
42.7    -7.487960787
42.8    -7.527136706
42.9    -7.329257364
43  -7.184131902
43.1    -8.195164338
43.2    -8.443293316
43.3    -8.418548403
43.4    -8.284925617
43.5    -8.081376108
43.6    -7.698352566
43.7    -7.638624649
43.8    -8.475376765
43.9    -8.187390227
44  -8.14855985
44.1    -8.394990195
44.2    -8.826733342
44.3    -8.084499851
44.4    -7.817941573
44.5    -8.328583731
44.6    -7.448428258
44.7    -7.612279742
44.8    -8.113399793
44.9    -8.323195213
45  -8.272998252
45.1    -7.853723675
45.2    -7.49220081
45.3    -8.425627639
45.4    -8.206902087
45.5    -7.634718874
45.6    -7.063222532
45.7    -7.775039416
45.8    -8.348837929
45.9    -8.490243058
46  -7.858626904
46.1    -7.39448696
46.2    -7.975066445
46.3    -9.165948515
46.4    -8.957929763
46.5    -8.31801689
46.6    -7.851949855
46.7    -7.754773236
46.8    -8.772946908
46.9    -8.360476481
47  -8.21740659
47.1    -10.16610269
47.2    -9.050860791
47.3    -8.476606865
47.4    -8.222083066
47.5    -7.393238856
47.6    -8.819576779
47.7    -9.703180819
47.8    -8.999706133
47.9    -9.442138054
48  -8.933156923
48.1    -8.46070875
48.2    -8.851198972
48.3    -8.648501389
48.4    -9.214653364
48.5    -9.995463399
48.6    -8.763880846
48.7    -8.307136226
48.8    -8.768144962
48.9    -10.15856009
49  -8.940150781
49.1    -8.36653855
49.2    -8.60233817
49.3    -10.21407969
49.4    -8.735740687
49.5    -8.180196453
49.6    -8.174744239
49.7    -7.609110607
49.8    -8.195080157
49.9    -8.753818041
50  -8.860032002
50.1    -8.458973671
50.2    -8.507983418
50.3    -8.799356793
50.4    -9.199943213
50.5    -8.191163082
50.6    -8.257733592
50.7    -9.098825434
50.8    -9.57488347
50.9    -9.334250737
51  -9.300046652
51.1    -9.5859252
51.2    -8.279697399
51.3    -8.251686502
51.4    -8.674253539
51.5    -8.94864253
51.6    -8.856340294
51.7    -8.494059208
51.8    -8.27514115
51.9    -9.389415505
52  -10.31722102
52.1    -9.737501091
52.2    -7.920368172
52.3    -9.249088577
52.4    -9.536685942
52.5    -9.784498463
52.6    -11.1477201
52.7    -8.48928754
52.8    -8.414841626
52.9    -9.845932083
53  -9.595629109
53.1    -9.406653126
53.2    -9.313046442
53.3    -9.372217588
53.4    -10.14104343
53.5    -10.89391573
53.6    -11.23922707
53.7    -10.71896714
53.8    -10.1705671
53.9    -9.916972896
54  -9.62125104
54.1    -8.440745633
54.2    -9.19487874
54.3    -9.96891366
54.4    -10.10115184
54.5    -9.653959554
54.6    -9.316055148
54.7    -9.16461217
54.8    -9.303399804
54.9    -9.460451181
55  -9.556338525
55.1    -9.319413759
55.2    -8.058941927
55.3    -9.708932017
55.4    -10.82465979
55.5    -10.01251012
55.6    -9.023189295
55.7    -9.833293461
55.8    -10.9082587
55.9    -10.56340744
56  -10.23414987
56.1    -10.11356623
56.2    -10.00045121
56.3    -9.362073749
56.4    -10.28117327
56.5    -10.7859065
56.6    -10.30767686
56.7    -10.44635321
56.8    -10.01842782
56.9    -9.780775701
57  -10.39004269
57.1    -10.10065385
57.2    -10.49267432
57.3    -11.25135182
57.4    -11.09331053
57.5    -10.56929359
57.6    -10.03694713
57.7    -9.678219672
57.8    -10.63784263
57.9    -10.36994425
58  -9.771824716
58.1    -9.52729146
58.2    -10.08305344
58.3    -10.54461825
58.4    -10.76408121
58.5    -10.46845274
58.6    -10.15013166
58.7    -9.722431723
58.8    -9.379252274
58.9    -11.6030324
59  -11.61817519
59.1    -10.79731012
59.2    -10.37098699
59.3    -10.75207615
59.4    -10.37765375
59.5    -9.689217499
59.6    -9.802997375
59.7    -10.75738033
59.8    -10.84381479
59.9    -9.700550279
60  -8.960767219
60.1    -9.270074431
60.2    -9.88438159
60.3    -10.17320335
60.4    -10.86896256
60.5    -10.47444246
60.6    -9.748531246
60.7    -10.59584883
60.8    -12.0566253
60.9    -12.79825515
61  -12.34010377
61.1    -12.36969919
61.2    -10.60622227
61.3    -9.361636309
61.4    -9.851229772
61.5    -9.35929796
61.6    -9.197115032
61.7    -9.571920369
61.8    -11.19909276
61.9    -10.53619221
62  -10.29611623
62.1    -11.04241659
62.2    -11.27766859
62.3    -11.4250542
62.4    -11.19637905
62.5    -10.34452794
62.6    -9.414141995
62.7    -10.01102587
62.8    -11.29343516
62.9    -10.28387173
63  -10.78693128
63.1    -11.39252504
63.2    -11.62957652
63.3    -10.90258708
63.4    -11.82113273
63.5    -13.15300876
63.6    -13.53934253
63.7    -11.71839449
63.8    -11.04303449
63.9    -11.3994746
64  -13.20689161
64.1    -13.2502077
64.2    -12.56770913
64.3    -11.70224385
64.4    -12.26243051
64.5    -12.31919157
64.6    -11.8244551
64.7    -10.75280608
64.8    -10.82997368
64.9    -10.65702663
65  -10.68119923
65.1    -12.39570921
65.2    -12.51093189
65.3    -12.43842418
65.4    -12.35098339
65.5    -10.25428475
65.6    -11.38454162
65.7    -13.21549336
65.8    -13.00566044
65.9    -13.25955684
66  -12.8836375
66.1    -12.19292553
66.2    -11.87544599
66.3    -11.30466883
66.4    -11.24732983
66.5    -11.77085138
66.6    -11.5142317
66.7    -11.05313535
66.8    -11.4449109
66.9    -14.11412852
67  -12.69433507
67.1    -12.75963579
67.2    -13.58076163
67.3    -12.92867174
67.4    -11.64702292
67.5    -11.27074171
67.6    -11.6411018
67.7    -9.015539207
67.8    -9.965411302
67.9    -11.50823982
68  -10.82462547
68.1    -12.09780452
68.2    -11.98049934
68.3    -11.12764716
68.4    -11.36933547
68.5    -12.1709769
68.6    -12.62032685
68.7    -12.56271824
68.8    -13.69985141
68.9    -12.59338572
69  -11.40487855
69.1    -11.34560233
69.2    -10.527747
69.3    -10.90216509
69.4    -12.09281891
69.5    -12.85497212
69.6    -11.03904798
69.7    -11.48644783
69.8    -15.12523725
69.9    -11.76264792
70  -11.60220385
70.1    -11.56697995
70.2    -9.927686428
70.3    -10.26164762
70.4    -11.12427997
70.5    -12.08827716
70.6    -11.83923856
70.7    -11.79416816
70.8    -12.16971632
70.9    -12.99391021
71  -13.32681691
71.1    -13.30434214
71.2    -12.88525624
71.3    -12.03294906
71.4    -12.45688534
71.5    -13.23669798
71.6    -13.38892988
71.7    -10.76683225
71.8    -11.04282844
71.9    -11.42053636
72  -11.40733593
72.1    -12.34246202
72.2    -12.02782107
72.3    -11.46792715
72.4    -11.34650148
72.5    -12.61649731
72.6    -11.01403217
72.7    -9.264633028
72.8    -12.11647515
72.9    -11.85593167
73  -11.64086764
73.1    -12.22805874
73.2    -12.78822539
73.3    -12.98620404
73.4    -12.72819406
73.5    -11.93695743
73.6    -12.15268254
73.7    -12.00192355
73.8    -11.93857432
73.9    -13.25763344
74  -13.11506953
74.1    -13.48242841
74.2    -14.67964836
74.3    -13.81220613
74.4    -13.22181242
74.5    -12.6901802
74.6    -12.09389491
74.7    -12.42946732
74.8    -14.27789201
74.9    -14.90239003
75  -8.636216312
75.1    -8.035088515
75.2    -8.546407298
75.3    -9.707577998
75.4    -11.92811129
75.5    -14.22823386
75.6    -15.57509809
75.7    -14.58249883
75.8    -18.39375813
75.9    -15.042301
76  -10.7007393
76.1    -10.24149188
76.2    -14.5201494
76.3    -16.71711224
76.4    -12.83382984
76.5    -8.171856338
76.6    -10.96554563
76.7    -16.34849169
76.8    -15.06352682
76.9    -10.15327801
77  -9.862376964
77.1    -12.11057565
77.2    -14.71465482
77.3    -10.75172111
77.4    -9.66371842
77.5    -11.76870407
77.6    -13.85447734
77.7    -15.30960197
77.8    -15.8598867
77.9    -15.27073735
78  -12.81800744
78.1    -11.5896495
78.2    -11.28587358
78.3    -12.13411047
78.4    -10.82839533
78.5    -9.712103603
78.6    -9.233494131
78.7    -10.44805203
78.8    -11.53809832
78.9    -13.02819516
79  -15.78608946
79.1    -9.817607986
79.2    -9.210445105
79.3    -10.75100786
79.4    -10.6392557
79.5    -13.19291347
79.6    -13.67161998
79.7    -11.10830561
79.8    -9.94185244
79.9    -11.13519368
80  -12.24994938


我期望拟合值比试验值更好

过滤器 lmfit rc

评论

0赞 M Newville 7/29/2023
Y 数据从 0 下降到负数,如图所示。模型不能有负值。奇怪的是,您正在为数据绘制 (x, y),但为拟合绘制了 (x, 20*np.log10(np.abs(result.best_fit)) )。您是否打算安装 log10(abs(y))?这20个从何而来?基本上,我认为“为什么”的答案是因为你没有将数据与数据的拟合进行比较。但是,该模型也无法适合您的数据。
0赞 Remos 8/4/2023
@Newville,好渔获。谢谢!刚刚修复了它,它正在工作。正如你所说,我试图将一个带有 20*log 的复数与一个没有任何对数的复数拟合。def def alpha_model(x, C, R): s = 2jnp.pix*1e9 return 20*np.log(abs(1 / (1 + s * C * R))) ,并修复绘图,删除 20*log 等。最好

答: 暂无答案