将函数转换为优化表达式 | 您所在的位置:网站首页 › matlab函数abs › 将函数转换为优化表达式 |
打开实时脚本 要在基于问题的方法中使用某 MATLAB® 函数,当该函数不是由支持的函数组成时,请首先将其转换为优化表达式。请参阅Supported Operations for Optimization Variables and Expressions和将非线性函数转换为优化表达式。 要使用目标函数 gamma(数学函数 Γ(x),阶乘函数的扩展),请创建一个优化变量 x 并在转换后的匿名函数中使用它。 x = optimvar('x'); obj = fcn2optimexpr(@gamma,x); prob = optimproblem('Objective',obj); show(prob) OptimizationProblem : Solve for: x minimize : gamma(x)要求解生成的问题,请给出初始点结构体并调用 solve。 x0.x = 1/2; sol = solve(prob,x0)Solving problem using fminunc. Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance. sol = struct with fields: x: 1.4616对于更复杂的函数,请转换函数文件。函数文件 gammabrock.m 计算两个优化变量的一个目标。 type gammabrockfunction f = gammabrock(x,y) f = (10*(y - gamma(x)))^2 + (1 - x)^2;在问题中包含此目标。 x = optimvar('x','LowerBound',0); y = optimvar('y'); obj = fcn2optimexpr(@gammabrock,x,y); prob = optimproblem('Objective',obj); show(prob) OptimizationProblem : Solve for: x, y minimize : gammabrock(x, y) variable bounds: 0 |
CopyRight 2018-2019 实验室设备网 版权所有 |