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

how to use broyden1 algorithm to calculate an exponential value

我必须在等式中找到温度:

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

T = degree C

使用

scipy.optimize.broyden1()

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

要使用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。