JZYGNTR 2022-07-18 20:33 采纳率: 75%
浏览 70
已结题

y=a*exp(b*x)这个式子怎么在python中作为条件编写(使用最小二乘法拟合的参数估计程序)

问题遇到的现象和发生背景

y=aexp(bx)这个式子怎么在python中作为条件编写,这是一个使用最小二乘法拟合的参数估计程序。

问题相关代码,请勿粘贴截图
import numpy as np
import matplotlib.pylab as plt
import statsmodels.api as sm
import math

exp=np.loadtxt('5.dat',delimiter=',')

n=len(exp[:,0])
ave_x=np.average(exp[:,0])
ave_y=np.average(exp[:,1])

Sxx=np.sum((exp[:,0]-ave_x)*(exp[:,0]-ave_x))/n
Syy=np.sum((exp[:,1]-ave_y)*(exp[:,1]-ave_y))/n
Sxy=np.sum((exp[:,0]-ave_x)*(exp[:,1]-ave_y))/n

S=np.cov(exp,rowvar=False, bias=True)

print(Sxx,S[0,0])
print(Syy,S[1,1])
print(Sxy,S[0,1])

b=Sxy/Sxx
a=ave_y-b*ave_x

x=np.sort(exp[:,0])
y=a*exp(b*x) #这里出错了

plt.plot(exp[:,0],exp[:,1],linestyle='None',marker='x')
plt.plot(x,y,color='r')
plt.show()

res_exp=Syy*n
res_model=np.sum((y-ave_y)*(y-ave_y))
R2=res_model/res_exp

sigma_y=np.sqrt(np.sum((exp[:,1]-a-b*exp[:,0])*(exp[:,1]-a-b*exp[:,0]))/(n-2))
sigma_b=sigma_y/np.sqrt(n*Sxx)
sigma_a=sigma_y*np.sqrt((ave_x*ave_x+Sxx)/(n*Sxx))

print(sigma_a,sigma_b)

x_add_const=sm.add_constant(exp[:,0])
result=sm.OLS(exp[:,1],x_add_const).fit()

print(result.summary())

print('Parameters: ',result.params)
print('Standard error: ',result.bse)
print('Coefficient of determination ',result.rsquared)

y=result.params[0]+result.params[1]*x
plt.plot(exp[:,0],exp[:,1],linestyle='None',marker='x')
plt.plot(x,y,color='r')
plt.show()

运行结果及报错内容

Traceback (most recent call last):
File "E:/python practice/555/5-1.py", line 26, in
y=aexp(bx)
TypeError: 'numpy.ndarray' object is not callable

我的解答思路和尝试过的方法

是否要化成这样来写程序?
ln(𝑦) = ln(𝑎exp 𝑏𝑥 )
ln 𝑦 = ln 𝑎 + ln exp 𝑏𝑥 = ln 𝑎 + 𝑏𝑥
𝑦́ = 𝑎́ + 𝑏𝑥
𝑎 ± 𝜎6 = exp 𝑎G± 𝜎6́ = exp 𝑎́ ± exp 𝑎́ 𝜎6

我想要达到的结果

我想要在y=aexp(bx)的条件下完成a、b误差的计算。

  • 写回答

2条回答 默认 最新

  • 广大菜鸟 2022-07-18 20:51
    关注

    需要转化,拟合函数需要是线性的时候才可以使用最小二乘法

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月18日
  • 已采纳回答 7月18日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示