我是靠谱客的博主 清脆胡萝卜,最近开发中收集的这篇文章主要介绍matlab optimoptions,创建优化选项 - MATLAB optimoptions - MathWorks 中国,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

创建默认选项

为 fmincon 求解器创建默认选项。

options = optimoptions('fmincon')

options =

fmincon options:

Options used by current Algorithm ('interior-point'):

(Other available algorithms: 'active-set', 'sqp', 'sqp-legacy', 'trust-region-reflective')

Set properties:

No options set.

Default properties:

Algorithm: 'interior-point'

CheckGradients: 0

ConstraintTolerance: 1.0000e-06

Display: 'final'

FiniteDifferenceStepSize: 'sqrt(eps)'

FiniteDifferenceType: 'forward'

HessianApproximation: 'bfgs'

HessianFcn: []

HessianMultiplyFcn: []

HonorBounds: 1

MaxFunctionEvaluations: 3000

MaxIterations: 1000

ObjectiveLimit: -1.0000e+20

OptimalityTolerance: 1.0000e-06

OutputFcn: []

PlotFcn: []

ScaleProblem: 0

SpecifyConstraintGradient: 0

SpecifyObjectiveGradient: 0

StepTolerance: 1.0000e-10

SubproblemAlgorithm: 'factorization'

TypicalX: 'ones(numberOfVariables,1)'

UseParallel: 0

Show options not used by current Algorithm ('interior-point')

创建非默认选项

为 fmincon 求解器创建非默认选项。

options = optimoptions(@fmincon,'Algorithm','sqp','MaxIterations',1500)

options =

fmincon options:

Options used by current Algorithm ('sqp'):

(Other available algorithms: 'active-set', 'interior-point', 'sqp-legacy', 'trust-region-reflective')

Set properties:

Algorithm: 'sqp'

MaxIterations: 1500

Default properties:

CheckGradients: 0

ConstraintTolerance: 1.0000e-06

Display: 'final'

FiniteDifferenceStepSize: 'sqrt(eps)'

FiniteDifferenceType: 'forward'

MaxFunctionEvaluations: '100*numberOfVariables'

ObjectiveLimit: -1.0000e+20

OptimalityTolerance: 1.0000e-06

OutputFcn: []

PlotFcn: []

ScaleProblem: 0

SpecifyConstraintGradient: 0

SpecifyObjectiveGradient: 0

StepTolerance: 1.0000e-06

TypicalX: 'ones(numberOfVariables,1)'

UseParallel: 0

Show options not used by current Algorithm ('sqp')

更新选项

用新值更新现有选项。

为 lsqnonlin 求解器创建选项。

oldoptions = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt',...

'MaxFunctionEvaluations',1500)

oldoptions =

lsqnonlin options:

Options used by current Algorithm ('levenberg-marquardt'):

(Other available algorithms: 'trust-region-reflective')

Set properties:

Algorithm: 'levenberg-marquardt'

MaxFunctionEvaluations: 1500

Default properties:

CheckGradients: 0

Display: 'final'

FiniteDifferenceStepSize: 'sqrt(eps)'

FiniteDifferenceType: 'forward'

FunctionTolerance: 1.0000e-06

MaxIterations: 400

OutputFcn: []

PlotFcn: []

SpecifyObjectiveGradient: 0

StepTolerance: 1.0000e-06

TypicalX: 'ones(numberOfVariables,1)'

UseParallel: 0

Show options not used by current Algorithm ('levenberg-marquardt')

将 MaxFunctionEvaluations 增加到 2000。

options = optimoptions(oldoptions,'MaxFunctionEvaluations',2000)

options =

lsqnonlin options:

Options used by current Algorithm ('levenberg-marquardt'):

(Other available algorithms: 'trust-region-reflective')

Set properties:

Algorithm: 'levenberg-marquardt'

MaxFunctionEvaluations: 2000

Default properties:

CheckGradients: 0

Display: 'final'

FiniteDifferenceStepSize: 'sqrt(eps)'

FiniteDifferenceType: 'forward'

FunctionTolerance: 1.0000e-06

MaxIterations: 400

OutputFcn: []

PlotFcn: []

SpecifyObjectiveGradient: 0

StepTolerance: 1.0000e-06

TypicalX: 'ones(numberOfVariables,1)'

UseParallel: 0

Show options not used by current Algorithm ('levenberg-marquardt')

使用圆点表示法更新选项

使用圆点表示法用新值更新现有选项。

为 lsqnonlin 求解器创建选项。

options = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt',...

'MaxFunctionEvaluations',1500)

options =

lsqnonlin options:

Options used by current Algorithm ('levenberg-marquardt'):

(Other available algorithms: 'trust-region-reflective')

Set properties:

Algorithm: 'levenberg-marquardt'

MaxFunctionEvaluations: 1500

Default properties:

CheckGradients: 0

Display: 'final'

FiniteDifferenceStepSize: 'sqrt(eps)'

FiniteDifferenceType: 'forward'

FunctionTolerance: 1.0000e-06

MaxIterations: 400

OutputFcn: []

PlotFcn: []

SpecifyObjectiveGradient: 0

StepTolerance: 1.0000e-06

TypicalX: 'ones(numberOfVariables,1)'

UseParallel: 0

Show options not used by current Algorithm ('levenberg-marquardt')

使用圆点表示法将 MaxFunctionEvaluations 增加到 2000。

options.MaxFunctionEvaluations = 2000

options =

lsqnonlin options:

Options used by current Algorithm ('levenberg-marquardt'):

(Other available algorithms: 'trust-region-reflective')

Set properties:

Algorithm: 'levenberg-marquardt'

MaxFunctionEvaluations: 2000

Default properties:

CheckGradients: 0

Display: 'final'

FiniteDifferenceStepSize: 'sqrt(eps)'

FiniteDifferenceType: 'forward'

FunctionTolerance: 1.0000e-06

MaxIterations: 400

OutputFcn: []

PlotFcn: []

SpecifyObjectiveGradient: 0

StepTolerance: 1.0000e-06

TypicalX: 'ones(numberOfVariables,1)'

UseParallel: 0

Show options not used by current Algorithm ('levenberg-marquardt')

将选项复制到另一个求解器

将 fmincon 求解器的非默认选项转移到 fminunc 求解器的选项。

为 fmincon 求解器创建非默认选项。

oldoptions = optimoptions(@fmincon,'Algorithm','sqp','MaxIterations',1500)

oldoptions =

fmincon options:

Options used by current Algorithm ('sqp'):

(Other available algorithms: 'active-set', 'interior-point', 'sqp-legacy', 'trust-region-reflective')

Set properties:

Algorithm: 'sqp'

MaxIterations: 1500

Default properties:

CheckGradients: 0

ConstraintTolerance: 1.0000e-06

Display: 'final'

FiniteDifferenceStepSize: 'sqrt(eps)'

FiniteDifferenceType: 'forward'

MaxFunctionEvaluations: '100*numberOfVariables'

ObjectiveLimit: -1.0000e+20

OptimalityTolerance: 1.0000e-06

OutputFcn: []

PlotFcn: []

ScaleProblem: 0

SpecifyConstraintGradient: 0

SpecifyObjectiveGradient: 0

StepTolerance: 1.0000e-06

TypicalX: 'ones(numberOfVariables,1)'

UseParallel: 0

Show options not used by current Algorithm ('sqp')

将适用选项迁移到 fminunc 求解器。

options = optimoptions(@fminunc,oldoptions)

options =

fminunc options:

Options used by current Algorithm ('quasi-newton'):

(Other available algorithms: 'trust-region')

Set properties:

CheckGradients: 0

FiniteDifferenceType: 'forward'

MaxIterations: 1500

OptimalityTolerance: 1.0000e-06

PlotFcn: []

SpecifyObjectiveGradient: 0

StepTolerance: 1.0000e-06

Default properties:

Algorithm: 'quasi-newton'

Display: 'final'

FiniteDifferenceStepSize: 'sqrt(eps)'

MaxFunctionEvaluations: '100*numberOfVariables'

ObjectiveLimit: -1.0000e+20

OutputFcn: []

TypicalX: 'ones(numberOfVariables,1)'

UseParallel: 0

Show options not used by current Algorithm ('quasi-newton')

找到适用于优化问题的求解器和默认选项

创建优化问题并找到默认的求解器和选项。

rng default

x = optimvar('x',3,'LowerBound',0);

expr = x'*(eye(3) + randn(3))*x - randn(1,3)*x;

prob = optimproblem('Objective',expr);

options = optimoptions(prob)

options =

quadprog options:

Options used by current Algorithm ('interior-point-convex'):

(Other available algorithms: 'active-set', 'trust-region-reflective')

Set properties:

No options set.

Default properties:

Algorithm: 'interior-point-convex'

ConstraintTolerance: 1.0000e-08

Display: 'final'

LinearSolver: 'auto'

MaxIterations: 200

OptimalityTolerance: 1.0000e-08

StepTolerance: 1.0000e-12

Show options not used by current Algorithm ('interior-point-convex')

默认求解器是 quadprog。

设置选项以使用迭代输出。查找解。

options.Display = 'iter';

sol = solve(prob,'Options',options);

Solving problem using quadprog.

Your Hessian is not symmetric. Resetting H=(H+H')/2.

Iter Fval Primal Infeas Dual Infeas Complementarity

0 2.018911e+00 0.000000e+00 2.757660e+00 6.535839e-01

1 -2.170204e+00 0.000000e+00 8.881784e-16 2.586177e-01

2 -3.405808e+00 0.000000e+00 8.881784e-16 2.244054e-03

3 -3.438788e+00 0.000000e+00 3.356690e-16 7.261144e-09

Minimum found that satisfies the constraints.

Optimization completed because the objective function is non-decreasing in

feasible directions, to within the value of the optimality tolerance,

and constraints are satisfied to within the value of the constraint tolerance.

sol.x

ans = 3×1

1.6035

0.0000

0.8029

最后

以上就是清脆胡萝卜为你收集整理的matlab optimoptions,创建优化选项 - MATLAB optimoptions - MathWorks 中国的全部内容,希望文章能够帮你解决matlab optimoptions,创建优化选项 - MATLAB optimoptions - MathWorks 中国所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部