真实赔率:具有多个方程和变量的 Sympy 求解器

true odds: sympy solver with multiple equations and variables

提问人:Max Mustermann 提问时间:8/19/2022 更新时间:8/20/2022 访问量:63

问:

我正在尝试根据这种方法根据给定的赔率计算 3 种真实赔率:enter image description here

我正在尝试使用以下代码使用 python sympy 模块执行此操作:

x, y, z, p, q, r, n = symbols('x, y, z, p, q, r, n', real=True)
odds = [1.41,5.09,8.4]
x = 1/odds[0]
y = 1/odds[1]
z = 1/odds[2]
nonlinsolve([Eq(p**n, x), Eq(q**n, y), Eq(r**n, z) 
            ,Eq(p**n + q**n + r**n, x + y + z)
            ,Eq(x**(1/n) + y**(1/n) + z**(1/n), p + q + r)
            ,Eq(p + q + r, 1)
             ],[p,q,r,n])

它应该产生略低于 x、y、z 的(数值)概率,但只是返回 我想过指定它,但不确定如何包含这些不等式。然而,我认为还有更多问题,因为回报只能从最后一个给定的方程中得出。关于如何在这里得到我想要的东西的任何想法?{(-q - r + 1, q, r, n)}x>p, y>q, z>r

Python Sympy 求解器 优化 非线性 方程

评论


答:

0赞 smichr 8/20/2022 #1

对于数字系统,您的票证是:nsolve

...
>>> [re(i).n(3) for i in nsolve([Eq(p**n, x), Eq(q**n, y), Eq(r**n, z) 
            ,Eq(p**n + q**n + r**n, x + y + z)
            ,Eq(x**(1/n) + y**(1/n) + z**(1/n), p + q + r)
            ,Eq(p + q + r, 1)
             ],[p,q,r,n],[.1]*4)]
[0.702, 0.187, 0.111, 0.970]