저는 파이썬에서 다른 함수의 변수를 다시 계산하는 함수를 작성하려고합니다. Excel 해석기와 비슷합니다.파이썬을 사용하여 변수를 다시 푸시합니다.
예를 단순화하기 위해 함수에 여러 변수를 사용하여 가격을 계산했습니다. 이 함수에 실제 값 (a, b, c, d, x)을 전달하여 숫자 값을 반환합니다.
def calc_price(a,b,c,d,x):
value = a+b*c-d + x
return value
이제 목표 가격이 주어졌고, a, b, c, d가되었습니다. 오직 변수 x는 알려지지 않으므로 변수 x를 푸시하고 싶습니다. calc_price와 동일한 변수에 target_price라는 추가 변수를 사용하는 함수로 작성하려고합니다.
def solve(target_price, a,b,c,d):
#this function takes in values for target_price, a,b,c,d
#and should do something like this:
target_price = calc_price(a,b,c,d,x)
solve for x <---------this is the part I'm not sure how to do
return x
나는 루프로 값 x를 해결 백업하려면 다음과 같은 기능을 생성하지만, 대규모 데이터 세트를 계산에서 비효율적이다, 그래서 더 효율적인 솔루션을 찾고 있어요.
def solve(target_price,a,b,c,d):
x = 0.01
while x < 1:
if abs(target_price - calc_price(a,b,c,d,x)) < 0.001:
return x
x += 0.001
고마워요!
[scipy.optimize.minimize_scalar (https://docs.scipy.org/doc/scipy-0.19.1/reference/generated /scipy.optimize.minimize_scalar.html). 그것은 골드 표준이 될 것입니다 (수치 적 방법에서, 다른 세계에 대한 컴퓨터 대수학 시스템을 반드시 찾아 볼 필요는 없습니다). 너무 무거운 코드/lib 의존성이라면 : root-finding과 co. – sascha
@sascha, '황금'표준을 의미하지는 마세요 :-) https://docs.scipy.org/doc/scipy-0.19.1/reference/optimize.minimize_scalar-golden.html –
아주 좋은 스튜어트. 하지만 브렌트 (적어도 누군가가 이미 나를 구현했을 때) :-) – sascha