cuốn sách gpt4 ai đã làm

python - Vấn đề dữ liệu khớp đường cong

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 03:23:01 hai mươi bốn 4
mua khóa gpt4 Nike

nhập numpy dưới dạng np
nhập matplotlib.pyplot dưới dạng plt
từ scipy.optizes nhập Curve_fit

xdata = np.array([177,180,183,187,189,190,196,197,201,202,203,204,206,218,225,231,234,
252,262,266,267,268,277,286,303])

ydata = np.array([0.81,0.74,0.78,0.75,0.77,0.81,0.73,0.76,0.71,0.74,0.81,0.71,0.74,0.71,
0,72,0,69,0,75,0,59,0,61,0,63,0,64,0,63,0,35,0,27,0,26])



định nghĩa f(x, n1, n2, n3, n4, n5):
nếu (n1 > 0,2 và n1 < 0,8 và
n2 > -0,3 và n2 < 0):
return n1 + (n2 * x + n3) * 1./ (1 + np.exp(n4 * (n5 - x)))
trở lại 1e38

hệ số, pcov = Curve_fit(f, xdata, ydata, p0 = (0,29, -0,005, 1,0766, -0,36397, 104))

âm mưu = f(xdata, coeffs[0], coeffs[1], coeffs[2], coeffs[3], coeffs[4])
cho i trong phạm vi (1, len(coeffs) + 1):
in ('n%s = %s' % (i, coeffs[i - 1]))

Không hoạt động đúng với cảnh báo này:

OptimizeWarning: Không thể ước tính hiệp phương sai của các tham số
Category=OptimizeWarning)

Nhưng vâng

làm việc bình thường
xdata = np.array([73.0, 80.0, 88.0, 93.8, 96.3, 98.5, 100.0, 101.0, 102.3, 104.0, 105.3,
107,0, 109,5, 111,5, 114,0, 117,0, 119,5, 121,0, 124,0])
ydata = np.array([0,725, 0,7, 0,66, 0,63, 0,615, 0,61, 0,59, 0,56, 0,53, 0,49, 0,45,
0,41, 0,35, 0,32, 0,3, 0,29, 0,29, 0,29, 0,29])

Lmfit cũng không có tác dụng.

câu trả lời hay nhất

Vì bạn cũng đã sử dụng lmfit Là một nhãn, đây là một nhãn sử dụng lmfit Giải pháp Các giá trị tham số bạn nhận được trông như thế này:

n1: 0,26564921 +/- 0,024765 (9,32%) (init= 0,2)
n2: -0,00195398 +/- 0,000311 (15,93%) (init=-0,005)
n3: 0,87261892 +/- 0,068601 (7,86%) (init= 1,0766)
n4: -1.43507072 +/- 1.223086 (85,23%) (init=-0,36379)
n5: 277,684530 +/- 3,768676 (1,36%) (init= 274)

Kết quả là đầu ra sau: nhập mô tả hình ảnh ở đây

Như bạn có thể thấy, sự phù hợp sẽ tái tạo dữ liệu tốt và các tham số nằm trong phạm vi bắt buộc; chúng không cần thiết trong hàm của bạn; nếu như tuyên bố.

Đây là mã hoàn chỉnh để tái hiện lại cốt truyện, cùng với một số nhận xét bổ sung:

từ thu nhỏ nhập lmfit, Thông số, Thông số, report_fit
nhập numpy dưới dạng np

xdata = np.array([177.,180.,183.,187.,189.,190.,196.,197.,201.,202.,203.,204.,206.,218.,225 .,231.,234.,
252.,262.,266.,267.,268.,277.,286.,303.])

ydata = np.array([0.81,0.74,0.78,0.75,0.77,0.81,0.73,0.76,0.71,0.74,0.81,0.71,0.74,0.71,
0,72,0,69,0,75,0,59,0,61,0,63,0,64,0,63,0,35,0,27,0,26])

def fit_fc(params, x, data):
n1 = params['n1'].value
n2 = params['n2'].value
n3 = params['n3'].value
n4 = params['n4'].value
n5 = params['n5'].value

mô hình = n1 + (n2 * x + n3) * 1./ (1. + np.exp(n4 * (n5 - x)))

mô hình trả về - dữ liệu #đó là những gì bạn muốn giảm thiểu

# tạo một bộ tham số
# 'giá trị' là điều kiện ban đầu
# 'min' và 'max' xác định ranh giới của bạn
params = Tham số()
params.add('n1', value= 0,2, min=0,2, max=0,8)
params.add('n2', value= -0,005, min=-0,3, max=10**(-10))
params.add('n3', value= 1.0766, min=-1000., max=1000.)
params.add('n4', value= -0.36379, min=-1000., max=1000.)
params.add('n5', value= 274.0, min=0., max=1000.)

# phù hợp, ở đây với mô hình lesssq
kết quả = thu nhỏ(fit_fc, params, args=(xdata, ydata))

#viết báo cáo lỗi
report_fit(params)

xplot = np.linspace(min(xdata), max(xdata), 1000)
yplot = result.values['n1'] + (result.values['n2'] * xplot + result.values['n3']) * \
1./ (1. + np.exp(result.values['n4'] * (result.values['n5'] - xplot)))
#kết quả lô đất
thử:
nhập khẩu pylab
pylab.plot(xdata, ydata, 'k+')
pylab.plot(xplot, yplot, 'r')
pylab.show()
ngoại trừ:
vượt qua

biên tập:

Hóa ra tính năng này chỉ hoạt động ở phiên bản 0.8.3. Nếu bạn sử dụng phiên bản 0.9.x, bạn cần điều chỉnh mã của mình cho phù hợp;đâyNhững thay đổi nào đã được thực hiện từ 0.8.3 đến 0.9.x.

Về vấn đề dữ liệu khớp với đường cong python, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/34084635/

hai mươi bốn 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress