如何使用broyden1算法计算指数值

时间:2018-10-30 02:45:43

标签: python variables optimization scipy exponential

我必须在方程式中找到温度:

u = 1.2*e^(-.025*T)
u = viscosity in N*s/m^2

T = degree C

使用

scipy.optimize.broyden1()

当u = .001时,如何使用它来找到T?

1 个答案:

答案 0 :(得分:0)

要使用broyden1函数,只需为其提供要查找根的函数以及一个初始值即可。如果只对求解u = .001感兴趣,则可以定义一个以T作为输入的函数。如果您想更改u的值,partial可能是一个方便的工具。

import scipy.optimize
import numpy as np
from functools import partial

def findtemp(T, u):
    return u - 1.2 * np.exp(-.025*T)

sol = scipy.optimize.broyden1(partial(findtemp, u=.001), 0)
print(sol)

给我一​​个283.4828690696808的值,它接近理论值。