python三角函数拟合_使用python进行数据拟合最小化函数

这是我对这个问题的理解。

首先,我通过以下代码生成一些数据import numpy as np

from scipy.integrate import quad

from random import random

def boxmuller(x0,sigma):

u1=random()

u2=random()

ll=np.sqrt(-2*np.log(u1))

z0=ll*np.cos(2*np.pi*u2)

z1=ll*np.cos(2*np.pi*u2)

return sigma*z0+x0, sigma*z1+x0

def q_func(z, oM, oD):

den= np.sqrt( (1.0 + z)**2 * (1+0.01 * oM * z) - z * (2+z) * (1-oD) )

return 1.0/den

def h_func(z,q):

out = 5 * np.log10( (1.0 + z) * q ) + .25#43.1601

return out

def q_Int(z1,z2,oM,oD):

out=quad(q_func, z1,z2,args=(oM,oD))

return out

ooMM=0.3

ooDD=1.0-ooMM

dataList=[]

for z in np.linspace(.3,20,60):

z1=.1+.1*z*.01*z**2

z2=z1+3.0+.08+z**2

q=q_Int(z1,z2,ooMM,ooDD)[0]

h=h_func(z,q)

sigma=np.fabs(.01*h)

h=boxmuller(h,sigma)[0]

dataList+=[[z,z1,z2,h,sigma]]

dataList=np.array(dataList)

np.savetxt("data.txt",dataList)

这样我就可以用下面的方法了

^{pr2}$

输出>>[ 0.31703574 0.69572673]

>>[[ 1.38135263e-03 -2.06088258e-04]

>> [ -2.06088258e-04 7.33485166e-05]]

图表呢

注意,对于leastsq,协方差矩阵是简化形式,需要重新缩放。在

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值