python函数拟合不规则曲线_更复杂函数的Python曲线拟合

这里有一个你可能会发现有用的方法。这使用了lmfit(http://lmfit.github.io/lmfit-py/),它提供了一种高级的曲线拟合方法:import numpy as np

import matplotlib.pyplot as plt

from lmfit import Model

def decay_cosine(t, amp, beta, omega, phi):

"""model data as decaying cosine wave"""

return amp * np.exp(-beta*t)* np.cos(omega*t + phi)

# create fake data to be fitted

t = np.linspace(0, 5, 101)

y = decay_cosine(t, 1.4, 0.9, 7.2, 0.23) + np.random.normal(size=len(t), scale=0.05)

# build model from decay_cosine

mod = Model(decay_cosine)

# create parameters, giving initial values

params = mod.make_params(amp=2.0, beta=0.5, omega=5, phi=0)

# you can place bounds on parameters:

params['phi'].max = np.pi/2

params['phi'].min = -np.pi/2

params['amp'].min = 0

# fit data to model

result = mod.fit(y, params, t=t)

# print out fit results

print(result.fit_report())

# plot data with best fit

plt.plot(t, y, 'bo', label='data')

plt.plot(t, result.best_fit, 'r')

plt.show()

这将打印出这样的报告:

^{pr2}$

制作一个这样的情节:

hXab3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值