python scipy库函数solve用法_对带有额外参数的函数使用scipy solve_ivp

我试图用solve-ivp解决一个初始值问题。问题是我的函数f(x,y)=dy/dx包含额外的参数。我试着用这个:

但它总是给我错误。代码如下:from numpy import arange

import math

import numpy as np

from scipy.integrate import solve_ivp

from numpy import pi

sigmav = 1.0e-9

Mpl = 1.22e19

ms=100.0

gg=100.0

gs=106.75

def Yeq(x):

return 0.145*(gg/gs)*(x)**(3/2)*np.exp(-x)

def ss(x,m_dm):

return (2/45)*((pi)**2)*gs*(m_dm**3/x**3)

def hubb(x,m_dm):

return 1.66*(gg**(1/2))*(m_dm**2/Mpl)*(1/x**2)

def derivada(x,yl,m_dm,σv):

return -(σv*ss(x,m_dm)*((yl**2)-(Yeq(x)**2)))/(x*hubb(x,m_dm))

xx=np.logspace(np.log10(3),3,100)

y00 = Yeq(xx[0])

x00 = xx[0]

sigmav = 1.7475e-9

ms=100.0

solucion1 = solve_ivp(fun=lambda x, y: derivada(x, y, args=(ms,sigmav),[np.min(xx),np.max(xx)],[y00],method='BDF',rtol=1e-10,atol=1e-10))

当我尝试为solucion1运行单元时,它返回以下结果:

^{pr2}$

这一定很简单,但我刚刚开始使用python,所以请帮助我。在

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值