首页 > 解决方案 > 是否可以从 python 中的 x 的隐式函数中获取 x 值的数组?

问题描述

我试图获得 x(y) 而不是 y(x) 的函数,但就 x 而言的函数本身是一个隐式函数。有没有一种方法可以基于 y 范围返回 x 值?或者是否可以在 x 处推断出一组 x,y 值远大于 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')

函数的对数图

跟进:原来 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)

外推结果

标签: pythonimplicit

解决方案


推荐阅读