Я пытаюсь получить функцию от x (y) вместо y (x), но сама функция в терминах x является неявной функцией. Есть ли способ, которым я могу вернуть базу значений x в диапазоне y? Или же можно экстраполировать набор значений x, y при x, значительно превышающем 10 ^ 7?
edit1: изменил x и y, чтобы сделать его более разумным
import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate
df = .1
a = 300
y = np.arange(1, a,df)
def x (y):
try:
x = y*(a-1)**(3/2)/(a-y)**(3/2)
return x
except ZeroDivisionError:
return 0
plt.loglog(x(y),y,'b')
![Loglog plot of the function](https://i.stack.imgur.com/mHcfG.png)
Последующие действия: получается, что interp1d также может использоваться для экстраполяции
from scipy import interpolate
inte = interpolate.interp1d(x(y),y, fill_value='extrapolate')
ynew = np.arange(299,300,1e-5)
xnew = f(ynew)
plt.loglog(x(y),y,xnew,ynew)
![extrapolation result](https://i.stack.imgur.com/vho9m.png)