【发布时间】:2015-06-01 11:10:39
【问题描述】:
我有一个项目,其中一个步骤是求解 R(k,d,a), 其中 k 表示第 k 步。
我的朋友建议我在 sympy 中这样做,但我不知道该怎么做。
from sympy import *
k= symbols('k')
d= symbols('d')
a= symbols('a')
R= function('R')(k,d,a)
print R`
其实我不知道怎么用类方法在sympy中定义一个函数... 这个表达式是失败的。
def R(k,d,a):
k:第 n 个进程的#
d:用于初始化的参数
应该给出R(0,d,a)
if k==0:
return 100*d
r=d*(1-(1-(d/R(k-1,d,a))**2)**0.5)**0.5
B=-3/2*d
D=(R(k-1,d,a))**3*(3*a*d/R(k-1,d,a)-2)+r**2*(r-3/2*d)
这里我用R(k-1,d,a)定义R(k,d,a),合适吗?
x^3+Bx^2+Cx+D=0 ,其中c=0
这里x代表R(k,d,a)。
x=symbols('x')
y=solve (x**3+x**2*B+D,x)
return max(y)
这里我想要一个 y 的列表,并询问 y 的实数。
稍后返回最大的。
但我不知道如何实现。
最后,对于每个 k ,我需要另一个函数给出一个值,R(k,d,a) 将是其中的一个参数。我想我可以自己用 for 循环来做,它是对我来说并不难。
最难的是如何得到R(k,d,a)。
我不需要复杂的根。但是如果我想要,我怎样才能得到它们? 谢谢收看!
【问题讨论】:
-
我不知道如何用 sympy 来做,但我创建了一个三次方程求解函数,名为 solve_3。