小编Yar*_*tov的帖子

Mathematica中近似等式测试的运算符

我经常需要检查expr1==expr2检查符号相等性是否困难,但数字检查是否足够

为了处理这样的情况,TildeTilde工作就好了,Equal但不是检查符号相等,而是用数值替换未知数,并在几个点检查数字相等.

未知数是表达式中"看起来像"变量的东西.我能想到的就是形式x,x[1,2]而且Subscript[x,2,3].欢迎任何提示!

编辑

通常我会做类似下面的事情,但它需要指定变量,有时需要改变Chop容差,"10个样本"似乎是任意的.一个理想的测试人员将是一个功能,Equals并保证有意义的False答案.(补充Equals哪些有意义的True答案)

approxEqual[expr1_, expr2_, vars_] := 
  Chop[(expr1 - expr2 /. Thread[vars -> #]) & /@ 
     RandomReal[{-1, 1}, {10, Length[vars]}]] == Table[0, {10}];
expr1 = 1/Sqrt[2] Log[Cosh[q + x/Sqrt[2]] Sech[q - x/Sqrt[2]]];
expr2 = Sqrt[2] ArcTanh[Tanh[q] Tanh[x/Sqrt[2]]];
approxEqual[expr1, expr2, {q, x}]

作为旁注,显然Maple使用算法进行此类等式测试

wolfram-mathematica

3
推荐指数
1
解决办法
1048
查看次数

IOError:无法识别图像文件

任何人都可以告诉为什么PIL无法打开此PNG文件?

https://b75094855c6274df1cf8559f089f485661ae1156.googledrive.com/host/0B56ak7W-HmqAX005c3g5eTlBakE/8.png

我得到IOError:无法识别图像文件,通过查看代码,它似乎尝试了PIL.PngImagePlugin.PngImageFile和相应的"accept"函数,并返回False

我使用的是1.1.6版本

python-imaging-library

3
推荐指数
1
解决办法
2万
查看次数

为什么使用牛顿法的 FindMaximum 会抱怨找不到足够的函数减少?

首先,这看起来(来自 ContourPlot)是一个相当简单的最大化问题,为什么使用牛顿法的 FindMaximum 会出现问题?

其次,如何摆脱警告?

第三,如果我无法摆脱这些警告,我如何判断警告是否有意义,即最大化失败?

例如,在下面的代码中,使用 Newton 方法的 FindMaximum 会发出警告,而 PrimaryAxis 方法则不会

o = 1/5 Log[E^(-(h/Sqrt[3]))/(
     2 E^(-(h/Sqrt[3])) + 2 E^(h/Sqrt[3]) +
      E^(-(h/Sqrt[3]) - Sqrt[2] j) + E^(h/Sqrt[3] - Sqrt[2] j) +
      E^(-Sqrt[3] h + Sqrt[2] j) + E^(Sqrt[3] h + Sqrt[2] j))] +
   3/10 Log[E^(h/Sqrt[3])/(
     2 E^(-(h/Sqrt[3])) + 2 E^(h/Sqrt[3]) +
      E^(-(h/Sqrt[3]) - Sqrt[2] j) + E^(h/Sqrt[3] - Sqrt[2] j) +
      E^(-Sqrt[3] h + Sqrt[2] j) + E^(Sqrt[3] h + Sqrt[2] j))] +
   1/5 Log[E^(-(h/Sqrt[3]) - Sqrt[2] j)/( …

wolfram-mathematica mathematical-optimization

2
推荐指数
1
解决办法
1966
查看次数

os.waitpid上的"没有子进程"

我试图模仿行为os.systemPopenwaitpidUbuntu上和我得到

OSError: [Errno 10] No child processes
Run Code Online (Sandbox Code Playgroud)

这是我如何使用它

p = Popen(args, stdout = PIPE, stderr = PIPE)
stdout, stderr = p.communicate()
returncode = os.waitpid(p.pid, 0)[1]
Run Code Online (Sandbox Code Playgroud)

我试图获取返回代码p.returncode,但它总是None,任何想法如何获得返回代码?

python unix ubuntu

2
推荐指数
1
解决办法
5758
查看次数

如何创建新的闭包单元对象?

我需要猴子补丁库来替换符号的实例,并且它已被某些函数闭包引用。我需要复制那些函数(因为我也需要访问该函数的原始未打补丁版本),但是它__closure__是不可变的,而且我做不到copy.copy,因此如何在Python 2.7中创建新的闭包单元对象?

我例如给出这个功能

def f():
    def incorrectfunction():
        return 0
    def g():
        return incorrectfunction()
    return g

def correctfunction():
    return 42

func = f()
patched_func = patchit(f)   # replace "incorrectfunction"
print func(), patched_func()
Run Code Online (Sandbox Code Playgroud)

我想看看

0, 42
Run Code Online (Sandbox Code Playgroud)

python closures monkeypatching python-2.7

2
推荐指数
1
解决办法
1122
查看次数

使用 boto3 将 AMI 复制到另一个区域

我正在尝试自动执行我在 AWS EC2 控制台上拥有的“复制 AMI”功能,有人能指点我一些通过 boto3 执行此操作的 Python 代码吗?

amazon-ec2 amazon-web-services boto3 amazon-ami

2
推荐指数
2
解决办法
2422
查看次数

如何定义自定义数据类型的“bool”转换?

我正在用新类型扩展 Python,并寻找新类型部分,我没有看到任何 bool 转换的内容。如何指定如何将我的类型转换为 bool?

例如,在下面的示例中,本机 numpy 类型 to 会以某种方式解释为 Python bool

import numpy as np
if (np.array(False)):
  print 'hi'
else:
  print 'hey'
Run Code Online (Sandbox Code Playgroud)

查看字节码,这对应于POP_JUMP_IF_FALSE但这似乎对于跟踪转换逻辑没有用处。

python numpy

1
推荐指数
1
解决办法
94
查看次数

前n个数和2个元素子集的和

我知道这不是一个严格的编程问题,但计算机科学家可能知道答案.为什么前n个非负数的总和等于2个元素子集的数量?

math

0
推荐指数
1
解决办法
265
查看次数