首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fsolve浮点对象不可迭代

fsolve浮点对象不可迭代
EN

Stack Overflow用户
提问于 2017-09-25 00:35:07
回答 1查看 300关注 0票数 1

我想使用fsolve和beta (来自Beta发行版)

代码语言:javascript
复制
import numpy as np
from scipy.optimize import fsolve


def mean_and_var(mu,sigma):
     a, b = mu,*sigma
     return (a/(a+b), a*b/(((a+b)**2)*(a+b+1)))


args = (.5,.05)  #mean and variance
alpha,beta  = fsolve( mean_and_var, 0, args )

#print (mean_and_var((a, b)))

这使我犯了错误。

TypeError:“浮点”对象不可迭代

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-25 01:21:31

在使用form时,必须将原始方程修改为具有f(x)=0格式的另一个方程,在您的情况下:

代码语言:javascript
复制
mu=a/(a+b)
sigma=(ab)/((a+b)^2(a+b+1))

它变成:

代码语言:javascript
复制
mu - a/(a+b) = 0
sigma - a*b/(((a+b)**2)*(a+b+1)) = 0

我们传递给第一个参数的函数是一个想要找到(a,b)的变量,第二个是其他的参数(mu,sigma)。

代码语言:javascript
复制
def mean_and_var(x, *args):
    a, b = x
    mu, sigma = args 
    eq1 = mu - a/(a+b)
    eq2 = sigma - a*b/(((a+b)**2)*(a+b+1))
    return eq1, eq2

args = (.5,.05)
a, b = fsolve(mean_and_var, (.1, .1), args=args)
print("solution: {}, {}".format(a, b))
print("eval in function: {}".format(mean_and_var((a, b), *args)))

产出:

代码语言:javascript
复制
solution: 1.9999999999999376, 2.000000000000059
eval in function: (1.5154544286133387e-14, -4.163336342344337e-17)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46396133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档