как использовать алгоритм broyden1 для вычисления экспоненциального значения - PullRequest
0 голосов
/ 30 октября 2018

Я должен найти температуру в уравнении:

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

T = degree C

с помощью

scipy.optimize.broyden1()

как бы вы использовали это, чтобы найти T, когда u = .001?

1 Ответ

0 голосов
/ 30 октября 2018

Чтобы использовать функцию broyden1, просто дайте ей функцию, в которой вы хотите найти корень, а также начальное значение. Если вас интересует только решение для u = .001, вы можете просто определить функцию, которая принимает T в качестве входных данных. Если вы захотите изменить значение u, частичный может быть удобным инструментом.

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, которое близко к теоретическому значению.

...