2017-01-20 13 views
2

Я пытаюсь найти пересечение между двумя функциями. P_g на данный момент является константой, но я хочу, чтобы это было гибким, поэтому я могу изменить его, чтобы стать грехом или линейным увеличением.Точка пересечения Python для двух функций

import numpy as np 
import matplotlib.pyplot as plt 


d = 100. # price at 0 catch sales local market 
b1 = 0.05 # slope of price curve for species1 
p = 50. # # price for species1 global 

P_g = p # constant for price species1 global 
P_l = d * np.exp(-b1*x) # price species1 local market 

Наиболее подходящее решение мне показалось:

P_g = ImplicitRegion[{y == p}, {x, y}] 
P_l = ImplicitRegion[{y == d* np.exp(-b1*x)}, {x, y}] 

solve[{k /[Element] P_g, k /[Element] P_l}, {k}] 

Который дает мне: SyntaxError: неверный синтаксис

+0

Ваш вызов 'solve' вызывает ошибку синтаксиса. Не могли бы вы уточнить, что вы пытаетесь решить? –

+0

Разве это не должно быть помечено Mathematica? –

ответ

0

Вы можете найти его scipy.optimize.fsolve(lambda x : d * np.exp(-b1*x) -P_g,0)

или решить analyticalally: x=-np.log(P_g/d)/b1.

в обоих случаях se Вы найдете: x=13.862943611198906