python二元多次函数拟合_对分段函数进行多次曲线拟合迭代

本文介绍了三种提高Python二元多次函数拟合速度的方法,包括子集预估计、M Newville的对数估计和使用较少数据的策略。通过实验展示了不同方法在不同数据规模下的执行时间,为优化曲线拟合提供了有效方案。
摘要由CSDN通过智能技术生成

这里有三种加快速度的方法。你没有给出期望的速度或精度,甚至矢量大小,所以买家要小心。在

TL;DR

时间安排:len 1 2 3 4

1000 0.045 0.033 0.025 0.022

10000 0.290 0.097 0.029 0.023

100000 3.429 0.767 0.083 0.030

1000000 0.546 0.046

1) Original Method

2) Pre-estimate with Subset

3) M Newville [linear log-log estimate](https://stackoverflow.com/a/44975066/7311767)

4) Subset Estimate (Use Less Data)

子集预估计(方法2):

只需运行curve_fit两次,第一次使用数据的一小部分来获得快速估计,就可以获得相当好的加速。然后使用该估计值为curve_fit与整个数据集种子。在

^{pr2}$

使用M Newville提出的对数估计,速度也快得多。由于OP关注Newville提出的初始估计方法,该方法使用带有子集的{}来估计曲线中的断点。在x, y = current_data

stride = int(max(1, len(x) / 200))

c0 = curve_fit(power_law, x[0:len(x):stride], y[0:len(y):stride])[0]

index_max = np.where(x > c0[1])[0][0]

log_x = np.log(x[:index_max])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值