2013-05-31 6 views
4

Может ли решатели в SciPy иметь дело со сложными значениями (например, x = x '+ i * x ")? Я особенно заинтересован в использовании функции минимизации типа Nelder-Mead. Обычно я являюсь пользователем Matlab и Я знаю, что Matlab не имеет сложных решателей. Если SciPy может сделать это, то я новообращенный точно! заранее спасибо.Комплексные решатели в SciPy

+1

Что вы подразумеваете под "complex solver"? Сравнение двух комплексных чисел плохо определено, поскольку каждое «число» двумерно. Рассмотрим x> y. Является ли реальный ответ (x)> вещественным (y), imag (x)> imag (y), | x | > | y |, угол (x)> угол (y), вещественный (x) + imag (x)> вещественный (y) + imag (y) или что-то еще? – matt

+0

Имеет ли [этот другой переполнение стека] (http://stackoverflow.com/questions/15213141/how-to-do-nonlinear-complex-root-finding-in-python?rq=1) ответ вам на помощь? –

ответ

2

похоже, ни scipy.optimize.fmin, ни scipy.optimize.leastsq играть хорошо с комплексными числами. Например, fmin(lambda x: np.linalg.norm(x - np.array((1.2, 3+2j))), np.array((0j, 0j))) сходится в array([ 1.19996429, 2.99997809]) и leastsq просто выходит из строя. для того, чтобы заставить его работать, я бы встраивать комплексные числа в R^2, я думаю. Так как

fmin(lambda x: np.linalg.norm(x - np.array((1.2, 0, 3,2))), np.array((0,0, 0,0))) 

, который сходится к

array([ 1.20000095e+00, -4.11719096e-05, 2.99999705e+00, 2.00001270e+00]) 

Но да, было бы неплохо, если бы эти функции действительно играли хорошо с комплексными числами.

Смежные вопросы