首页 > 解决方案 > 如何获得反向查找的近似方程

问题描述

是否有任何方法或方法可以获得从 Y 到 X 进行反向查找的近似方程(x = g(y))。以下是简单的 y = f(x) 及其图。

import numpy as np
import matplotlib.pyplot as plt  
formula = "2*x**6 + x**5 -3*x**4 + 7*x**3 + 9*x**2 + x + 6"
x = np.arange(1, 10)
y = eval(formula)
plt.plot(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

在此处输入图像描述

您能否建议在 R 或 Python 中以最小误差获得反向查找函数(从 Y 到 X)的任何可能方法?

标签: pythonralgebrapolynomial-math

解决方案


这是一个基本的 R 解决方案。在要覆盖的范围内选择 x,生成 f(x),然后将函数拟合到 y 作为 x 的函数。我计算并绘制一个值的倒数作为确认。

f = function(x) 2*x**6 + x**5 -3*x**4 + 7*x**3 + 9*x**2 + x + 6

## Generate inverse function
x = seq(0,9, 0.1)
y = f(x)
f_inv = approxfun(y, x)

## Plot as a confirmation
plot(f, xlim=c(0,9))
x100K = f_inv(100000)
points(x100K, 100000, pch=16, col="red")

反函数测试


推荐阅读