scipy库 笔记

1.   fmin(func, x0, args=(), xtol=0.0001, ftol=0.0001, maxiter=None, maxfun=None, full_output=0, disp=1, retall=0, callback=None, initial_simplex=None)

参数说明:

func : (可调用 func(x,*args) )   

          要最小化的目标函数。

x0 :  ndarray 

         初步猜测值(也就是初始值)

args : tuple(元组), 可选   

         传递给func的额外参数  i.e. ``f(x,*args)``.

xtol:float,可选
        迭代之间xopt中的绝对误差是可接受的收敛。

ftol:number(数字),可选
        可接受的迭代之间的func(xopt)中的绝对错误收敛。

maxiter:int,可选
        要执行的最大迭代次数。
maxfun:数字,可选
        要进行的最大功能评估数。
full_output:bool,可选
        如果需要fopt和warnflag输出,则设置为True。
disp:bool,可选
        设置为True以打印收敛消息。
retall:bool,可选
        设置为True以在每次迭代时返回解决方案列表。
callback:可调用,可选
        在每次迭代后调用,作为回调(xk),其中xk是当前参数向量。
initial_simplex:shape_like of shape(N + 1,N),可选
        最初的单纯形。如果给定,则覆盖`x0`

fmin_tnc(func, x0, fprime=None, args=(), approx_grad=0, bounds=None, epsilon=1e-08, scale=None, offset=None, messages=15, maxCGit=-1, maxfun=None, eta=-1, stepmx=0, accuracy=0, fmin=0, ftol=-1, xtol=-1, pgtol=-1, rescale=-1, disp=None, callback=None)

func:callable``func(x,* args)``
        功能最小化。必须做到以下之一:

        1.返回f和g,其中f是函数的值,g是其值
           渐变(浮动列表)。

        2.返回功能值但提供梯度功能
           分别作为`fprime`。

        3.返回函数值并设置``approx_grad = True``。

        如果函数返回None,则最小化
        被中止了。
 x0:array_like
        初步估计最低限度。
 fprime:可调用``fprime(x,* args)``,可选
        `func'的渐变。如果为None,那么`func`必须返回
        函数值和渐变(``f,g = func(x,* args)``)
        或者`approx_grad`必须为True。
args:元组,可选
        传递给函数的参数。
approx_grad:bool,可选
        如果为真,则以数字方式逼近梯度。
bounds:list,optional
        x0中每个元素的(min,max)对,定义了
        该参数的边界。使用None或+/- inf作为其中之一
        在该方向没有约束时的最小值或最大值。
epsilon:float,可选
        如果approx_grad为True,则使用。有限的步长
        fprime的差异近似。
scale:array_like,可选
        缩放因子应用于每个变量。如果没有,那么
        区间有界变量的因子是上升的
        1 + | X |为了其他人。默认为无。
offset:array_like,可选
        从每个变量中减去的值。如果没有,那么
        对于区间有界变量,偏移是(向上+低)/ 2
        和x为其他人。
messages :int,可选
        位掩码用于选择消息显示期间
        MSGS dict中定义的最小化值。默认为
        MGS_ALL。
disp:int,可选
        消息的整数接口。 0 =没有消息,5 =所有消息
maxCGit:int,可选
        每个主要的最大粗麻数*向量评估数
        迭代。如果maxCGit == 0,则选择的方向为
        -gradient如果maxCGit <0,则maxCGit设置为
        MAX(1,分钟(50,N / 2))。默认为-1。
maxfun:int,可选
        最大功能评估数。如果没有,maxfun是
        设置为max(100,10 * len(x0))。默认为无。
eta:浮动,可选
        行搜索的严重性。如果<0或> 1,则设置为0.25。
        默认为-1。
stepmx:float,可选
        行搜索的最大步骤。可能会增加
        呼叫。如果太小,则将设置为10.0。默认为0。
accuracy:浮动,可选
        有限差分计算的相对精度。如果
        <= machine_precision,设置为sqrt(machine_precision)。
        默认为0。
fmin:float,可选
        最小函数值估计。默认为0。
ftol:float,可选
        停止标准中f值的精确目标。
        如果ftol <0.0,则将ftol设置为0.0,默认为-1。
xtol:float,可选
        停止时x值的精确目标
        标准(应用x缩放因子后)。如果xtol <
        0.0,xtol设置为sqrt(machine_precision)。默认为
        -1。
pgtol:float,可选
        投影梯度值的精确目标
        停止标准(应用x缩放因子后)。
        如果pgtol <0.0,则pgtol设置为1e-2 * sqrt(精度)。
        建议不要将其设置为0.0。默认为-1。
escale:float,可选
        用于触发f值的缩放系数(以log10为单位)
        重新调整。如果为0,则在每次迭代时重新缩放。如果大
        价值,永远不会重新缩放。如果<0,则rescale设置为1.3。
callback:可调用,可选
        在每次迭代后调用,作为回调(xk),其中xk是
        当前参数向量。

minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)

最小化一个或多个变量的标量函数。

    一般来说,优化问题的形式是::

        最小化f(x)受制于

        g_i(x)> = 0,i = 1,...,m
        h_j(x)= 0,j = 1,...,p

    其中x是一个或多个变量的向量。
    ``g_i(x)``是不等式约束。
    ``h_j(x)``是等式约束。

    可选地,x中每个元素的下限和上限也可以是
    使用`bounds`参数指定。

fun:可赎回
        要最小化的目标函数。必须在表格中
        ``f(x,* args)``。优化参数``x``是一维数组
        点和``args``是任何其他固定参数的元组
        需要完全指定功能。
x0:ndarray
        初步猜测。 ``len(x0)``是最小化的维数
        问题。
args:元组,可选
        传递给目标函数及其的额外参数
        衍生物(Jacobian,Hessian)。
method:str或callable,可选
         求解器的类型。应该是其中之一

jac:bool或callable,可选
        雅可比(梯度)的目标函数。仅适用于CG,BFGS,
        Newton-CG,L-BFGS-B,TNC,SLSQP,dogleg,trust-ncg,trust-krylov,
        信任区域 - 确切。
        如果`jac`是布尔值并且为True,则假定`fun`返回
        梯度与目标函数一起。如果是假,那么
        梯度将用数字估算。
        `jac`也可以是一个可调用的返回渐变的
        目的。在这种情况下,它必须接受与“fun”相同的参数

hess,hessp:可调,可选
        Hessian(二阶导数矩阵)的目标函数或
        目标函数的Hessian乘以任意向量p。仅适用于
        Newton-CG,dogleg,trust-ncg,trust-krylov,trust-region-exact。
        只需要给出'hessp`或`hess`中的一个。如果`hess`是
        提供,那么`hessp`将被忽略。如果既不是'hess`也不是
        提供`hessp`,然后将近似Hessian产品
        在`jac`上使用有限差分。 `hessp`必须计算Hessian
        乘以任意向量。

bounds:sequence,optional
         变量的界限(仅适用于L-BFGS-B,TNC和SLSQP)。
         ``(min,max)````x``中每个元素的对,定义
         该参数的界限。 对于“min”或其中一个使用None
         ``max``当那个方向没有界限时。

constraints:dict或dict序列,可选
        约束定义(仅适用于COBYLA和SLSQP)。
        每个约束都在字典中用字段定义:

            类型:str
                约束类型:'eq'表示相等,'ineq'表示不等式。
            乐趣:可赎回
                定义约束的函数。
            jac:可调用,可选
                “有趣”的雅可比行列式(仅适用于SLSQP)。
            args:序列,可选
                要传递给函数和Jacobian的额外参数。

        等式约束意味着约束函数结果是
        为零而不平等意味着它是非负的。
        请注意,COBYLA仅支持不等式约束。
tol:float,可选
        容忍终止。要进行详细控制,请使用特定于求解器
        选项。
options:dict,可选
        求解器选项的字典。所有方法都接受以下内容
        通用选项:

            maxiter:int
                要执行的最大迭代次数。
            disp:bool
                设置为True以打印收敛消息。

        有关特定于方法的选项,请参阅:func:`show_options()`。
 callback:可调用,可选
        在每次迭代后调用,作为``callback(xk)``,其中``xk``是
        当前参数向量。

读取、写入.mat数据

data = scipy.io.loadmat('filename.mat')  # 读取.mat文件

data.keys()   # 查看.mat文件中的所有变量名

sio.savemat('saveddata.mat', {'x': x,'y': y,'z': z})  #将数据写入名为saveddata.mat 的mat文件保存,后边带引号的为变量名,不带引号的为具体的内容。

猜你喜欢

转载自blog.csdn.net/qq_32172673/article/details/84452745