我试图用python来解lambdaλ的这个方程
其中,对于索引列中的i,数据框中给出了p_0、c、t、D、F,如下所示:
给定r = constant = 0.6
,Excel解算器可以轻松求解lambda方程。但我对python还不熟悉,我一直在与python Symphy进行斗争,以找到解决它的方法。请帮忙!非常感谢
编辑:这是我的数据帧 dataframe
这是我的python代码。它需要永远运行,而Excel解算器只花了不到1秒的时间,所以我认为它一定出了问题
import sympy as sy
x = sy.Symbol('x', real =True)
coupon = max(cal_lambda['c'])
r = 0.6
F = 100
P = max(cal_lambda['P_O'])
component1 = 0
component2 = 0
for i1, i2 in zip(cal_lambda['T'],cal_lambda['D']):
component1 += coupon*np.e**(-x*i1*1/100*i2)
component2 += r*np.e**(-x*0.5*1/100*i2)
component3 = F*np.e**(-x*cal_lambda['T'].tail(1)*cal_lambda['D'].tail(1))
Equation = sy.Eq(component1 + component2 + component3,P)
sol = sy.solve(Equation)
print(sol)
下面是一个简单的循环版本,它为i1和i2的每个值求解方程
您需要为方程定义函数,然后定义符号变量。然后从数据帧中读取常量,然后求解函数
相关问题 更多 >
编程相关推荐