计算函数的反函数--库

14

有没有可用的库可以得到一个函数的反函数?更具体地说,给定一个函数 y=f(x) 和定义域,是否有任何库可以输出 x=f(y)?遗憾的是我不能在我的应用程序中使用 matlab/mathematics,我正在寻找 C/Python 库。


5
数学函数可以任意复杂,有些是不可逆的(公钥加密)。这怎么可能呢?你可能需要更具体地说明你想要实现什么以及为什么。 - Ben
1
是的,但如果它能解决大部分科学家需要的函数,那将非常有用。假设y=x+2,x=y-2在某些情况下可以帮助我。这取决于需求... - username_4567
4
@username_4567 嗯,但那个函数很容易求反。那么对于 y=log(x^sinh(1/x))(我刚刚发明的),你认为不能制作一个返回任何函数反函数的函数。 - Ander Biguri
1
没有这样的库存在,你的函数是什么。是否可能在低级别对您的函数进行编码?为什么需要?我的意思是你应该问是否可能... - Grijesh Chauhan
如果您正在谈论用户定义的函数,那么您只需要编写其反函数即可。对于库函数来说,并没有这样的反函数可用。这是因为每个库都是针对特定目的并包含特定函数集的。 - Kinjal Patel
2个回答

20

我晚了一些,但对于该帖子的未来读者,我刚刚发布了一个可以精确执行此操作的Python包。https://pypi.python.org/pypi/pynverse 在描述中详细介绍了如何使用它以及它的工作原理!


哇!我能得到源代码吗?我需要它来制作一个软件包。 - user16519472

8
如已提及,不是所有的函数都是可逆的。在某些情况下,施加额外的约束有助于解决这个问题:想一想sin(x)的反函数。只有当你观察一个没有重复解的x域时,这个函数才是可逆的。
一旦你确定你的函数f(x)=y有唯一的反函数,就可以解方程f(x) - y = 0来求得给定yx值。这个解给出了反函数g(y)=xfg是用来表示不同函数的任意字母)。
在Python中,可以使用scipy.optimize中的非线性求解器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接