gpt4 book ai didi

python - 使用python通过点拟合曲线

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:34 26 4
gpt4 key购买 nike

大家好,我正在尝试使用 python 通过点拟合曲线,但是我没有成功,我是使用 python 的初学者,我发现它对我没有帮助。

我有一组数据,我想分析哪条线最能描述它(不同阶的多项式)。

numpy 中,对于多项式拟合,有 polyfit()polyval()。但是我收到这个错误,我不知道这是什么意思:

File "plantilla.py", line 28, in <module>
polinomio=np.polyfit(x,y,5)
File "/usr/lib/python2.7/dist-packages/numpy/lib/polynomial.py", line 581, in polyfit
c, resids, rank, s = lstsq(lhs, rhs, rcond)
File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 1867, in lstsq
0, work, lwork, iwork, 0)
ValueError: On entry to DLASCL parameter number 4 had an illegal value

import pandas as pd
from matplotlib import pyplot as plt
from scipy.optimize import curve_fit
import numpy as np
import sympy as sym

#----------------------------------------------------
data=pd.read_csv('radiacion.dat',header=None,delim_whitespace=True)
x=data.ix[:,0]
y=data.ix[:,1]
"""
x=np.array(x,dtype=float)
y=np.array(y,dtype=float)
"""
#----------------------------------------------------
plt.plot(x,y,'r',label="Original Data")
plt.title('Radiacion')
plt.xlabel('t(s)' ,fontsize=14,fontweight='bold')
plt.ylabel('G(w/m)',fontsize=14,fontweight='bold')
plt.xticks(fontsize=10,fontweight='bold')
plt.yticks(fontsize=10,fontweight='bold')
plt.show ()
#plt.hold (True)
#----------------------------------------------------
polinomio=np.polyfit(x,y,5)
print (polinomio)
yP=np.polyval(poli,x)
plt.plot(x,yp,'b+',label="fitted cuerve")

我期待这样的事情,以计算特定 x 值的多项式。

p[0]*x**(N-1) + p[1]*x**(N-2) + ... + p[N-2]*x + p[N-1]

我的输入数据:

25200   17
25800 38
26400 58
27000 93
27600 129
28200 163
28800 192
29400 234
30000 329
30600 387
31200 411
31800 460
32400 513
33000 569
33600 576
34200 635
34800 645
35400 683
36000 715
36600 747
37200 780
37800 810
38400 833
39000 862
39600 885
40200 910
40800 929
41400 945
42000 955
42600 974
43200 986
43800 985
44400 999
45000 1001
45600 993
46200 993
46800 999
47400 992
48000 985
48600 980
49200 978
49800 963
50400 959
51000 939
51600 917
52200 884
52800 881
53400 860
54000 845
54600 820
55200 812
55800 767
56400 720
57000 650
57600 619
58200 595
58800 541
59400 533
60000 504
60600 456
61200 389
61800 320
62400 285
63000 243
63600 279
64200 231
64800 192
65400 137
66000 91
66600 58
67200 38
67800 22
68400 9

最佳答案

我使用的数据与您保存在 txt 文件中的问题上的数据完全一样。我没有收到任何错误!我认为您的原始文件有问题。

这是输出。

enter image description here

关于python - 使用python通过点拟合曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56280948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com