scipy.optimizeのメモ

方程式の根を探したり、目的関数を最少化したり。
一瞬で忘れるのでメモ。特にargsを(10,)みたいに書くのを覚えておけ。

# -*- coding: utf-8 -*-
from scipy.optimize import brentq
from scipy.optimize import fmin
def f(x, a):
    return (x - a)**2
if __name__ == '__main__':
    print brentq(lambda x: x**2 - 2, 0, 10)
    print fmin(f, 0, args = (10,))

出力

1.41421356237
Optimization terminated successfully.
         Current function value: 0.000000
         Iterations: 31
         Function evaluations: 62
[ 10.]