几何对称操作

时间:2014-01-22 19:55:42

标签: python math inverse

这看起来有点奇怪,但我正在尝试将一些算术概念扩展到几何空间,而且我不缺少停止块。这次的具体问题是几何空间的等效最小二乘度量。

例如,由于算术逆仅是否定,因此平方具有此特征。在代码中:

def arithmetically_symmetric(a):
    return a**2

arithmetically_symmetric(a) == arithmetically_symmetric(-a)
>>> True
arithmetically_symmetric(a) == arithmetically_symmetric(b)
>>> False

然而,在几何空间中,逆是反转,对于我的生活,我不知道如何做到这一点,而不仅仅是有一些案例陈述。基本上我正在寻找一个像这样工作的功能:

geometrically_symmetric(a) == geometrically_symmetric(1/a)
>>> True
geometrically_symmetric(a) == geometrically_symmetric(b)
>>> False

添加最后一个条件,以便:

的简单解决方案
def geometrically_symmetric(a):
    return a * 1/a

不是一种选择。

具体来说,我正在寻找一个不是的解决方案:

def geometrically_symmetric(a):
    if a < 1:
        return 1/a
    return a

因为我在这里的主要抱怨是理论上的而不是实际的。

2 个答案:

答案 0 :(得分:1)

对数的平方怎么样?像

这样的东西
import math

def geometrically_symmetric(a):
    x = math.log(a)
    return x*x

geometrically_symmetric(2.) == geometrically_symmetric(.5)   # True

geometrically_symmetric(2.) == geometrically_symmetric(.6)   # False

答案 1 :(得分:1)

如果您只需要它来处理正数,这很容易:

def gs(a):
    return a**2 + (1/a**2)

该结果由具有其自身乘法逆的任何正数共享,并且没有其他正数。例如,gs(2) == gs(0.5) == 4.25


不幸的是,它也与其算术逆向共享:gs(2) == gs(0.5) == gs(-2) == gs(-0.5) == 4.25

但我们可以通过复制标志来解决这个问题:

def gs(a):
    return (a**2 + (1/a**2)) * abs(a)/a

现在,gs(2) == gs(0.5) == 4.25 != gs(-2) == gs(0.5) == -4.25

如果你不喜欢abs,因为那里有一个隐藏的if ......好吧,没有。坚持使用花车,显然可以a**2**.5


这样我们就可以得到所有非零浮点数。零显然在域外,因为gs(0)应该等于gs(1/0),而不是数字。

但它仍无法用于复数 - gs(i) == 2i == gs(-1/i),而是gs(1/i) == -2i == gs(-i)。为此,你只需要乘以共轭而不是平方。