将函数转换为优化表达式 您所在的位置:网站首页 matlab函数abs 将函数转换为优化表达式

将函数转换为优化表达式

2024-05-06 19:23| 来源: 网络整理| 查看: 265

打开实时脚本

要在基于问题的方法中使用某 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 实验室设备网 版权所有