微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

复函数曲线拟合 (Python)

如何解决复函数曲线拟合 (Python)

我目前正在尝试将数据拟合到此函数提取“e/lambda”:

Formula

为此,我尝试(第一次)使用 python 拟合数据,并重新排列了拟合函数

import matplotlib.pyplot as plt
import scipy.optimize as optimize
import numpy as np

# data

Io = np.array([0.3,0.5,1.4,2.9,3.8])
Is = np.array([2.7,2.7,2.7])
R = Io/Is

T = np.array([0.,50,70,80,85])
F = R/R[0]

plt.plot(T,F,'ro',label="original data")

# curvefit
## a = np.exp(e/lambda)

def func(T,a):
    return a * (((np.exp ((np.cos(T)-1)/(np.cos(T)))) - \
                 (np.exp ((1-np.cos(T))/((np.cos(T))**2)))) \
                / ((np.exp ((np.cos(T)-1)/(np.cos(T)))) - \
                   (np.exp ((1-np.cos(T))/((np.cos(T)))))))

popt,pcov = optimize.curve_fit(func,T,maxfev=100000)

t = np.linspace(0,85)
plt.plot(t,func(t,*popt),label="Fitted Curve")

plt.legend(loc='upper left')
plt.show()

但是,我收到此消息:“未找到最佳参数:函数调用次数已达到 maxfev = 100000”

这可能更像是一个数学问题,因为我已经成功地使用另一个函数尝试了这段代码

def func(T,a,b,c):
    return a + np.exp(b*T-c)

Fit obtained

有谁知道是否可以使用它的“真实”形式来拟合这个函数

谢谢!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。