python画对数函数_Python简单Scipy“曲线拟合”非线性回归的基本对数函数

我对编码比较陌生,最近我的研究教授要求我创建一个对数回归脚本,使函数适合实验数据。输入数据总是很小的值(对于x,y,<10),并且每个实验包含的数据点不超过5个。在

我已经设法用scipy的curve_fit函数编写了一个脚本,但是我收到的结果看起来不正确?有人能在这个简单的脚本中指出我的错误吗?在

我对曲线拟合函数的使用进行了自己的研究,但似乎每个人的情况都是非常具体的,我发现的任何解决方案由于某种原因都不适用于我的。。。在

这是我的代码与一点样本数据import numpy as np

import matplotlib.pyplot as plt

from scipy.optimize import curve_fit

from scipy import log as log

def func(x, a, b, c):

return a * log(b * x) + c

x = np.array([0, 1.1029, 1.6148])

y = np.array([-8.5067, -6.8924, -6.713])

popt, pcov = curve_fit (func, x, y)

plt.figure()

plt.plot(x, y, 'k.', label = 'Raw Data')

plt.plot(x, func(x, *popt), 'k-', label = 'Fitted Curve')

plt.xlabel('ln(x)')

plt.ylabel('y')

plt.legend()

plt.show()

这是我得到的图形输出

图形输出

另请注意,在执行第12行(具有曲线拟合功能的直线)后,将出现以下错误:

^{pr2}$

这个错误是什么意思?在

另外,对于一个额外的问题,有人知道将其修改为多参数回归的最佳方法是什么吗?我知道如果你增加更多的变量,你可以相应地调整6,7行的函数?在

感谢提供专业知识的人,非常感谢!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值