matlab做最优化问题,利用MATLAB语言实现最优化问题的高效求解

中国保 险管理 干部学 院学报 年第 期 总第 期 利用 语言实现最优化问题的高效求解徐沈新 一 、概述 在线性规划和非线性规划等领域 , 经常要遇到求函数极值和条件极值等最优化问题 。 当函数或约束条件复杂到一定程度时 , 就无法求出解析解 , 而只能求助于数值分析算法 。 如果借助计算器进行手工计算的话 , 计算量会大得无法忍受 如果要求遇到解算极值问题的每个人都去用 、 或 、 之类的高级语言编写一套程序的话 , 那是非一朝一夕可 以解决的 。 但如果用 语言来实现极值问题的数值解算 , 就可 以避免计算量过大和编程难 的两大难题 , 可 以轻松高效地得到极值问题的数值解 , 而且可 以达到足够的精度 。 下面就分别讨论用 实现各种极值问题的解算 。 二 、 无约束条件的极值问题的解算方法 设有 函数如下 , 凡 凡 一 一 求向量 取何值时 的值最小及最小值是多少 先用 语言的编辑器编写求解该问题的程序如下 把函数写成 语言表达式 ’ 一 ‘ 一 一 一 ’ 猜 自变量的初值一 〕 所有选项取默认值 〕 调用最优化函数进行计算 , 函数最小值存放在数组元素 中 , 与极值点对应的 自变量值存放在向量 里 , 计算步数存放在数组元素 中 。 , 叩 , , 叩 显示与极值点对应的 自变向量 的值显示 函数最小值 显示 函数计算步数 把上面这段程序保存为 文件 , 然后用“ ’ ’菜单中的“ ’命令运行这段程序 , 就可 以轻松的得 到如下结果 一 一一 显然 , 计算结果与理论结果的误差小到 一 ‘“级 。 这里调用了 的最优化 函数 。 它采用 一 单纯形算法 。 就是因为这个 函数的采用 , 使最小值问题的解算变得非常简单 。 如果希望求解精度更高 , 可 以先指定 叩 和 叩 的值 它们分别代表 自变向量 和 函数的终止误差 默认为 , 再调用 函数 。 如果在上述程序中的“ 叩 二 〔〕”一行后面加 上“ 一 二 · 一 ” , 运行结果为 一 一 一 二二 一 可见计算结果与理论结果的误差小到 “ 级 。 计算步数也由 增加到 。 三 、带约束条件的极值问题的解法设有 目标函数和约束条件如下 一 , 凡 凡 一 十 及 一 凡 一 一 兀 一 凡 一 一 凡 一 , 及 二 , 凡 求 向量取何值时函数取极小值 对条件极值问题 , 通常的做法都是将约束条件标准化 即把等式约束条件写成等号右边为 的形式 , 把不等式约束条件写成 的形式 , 然后把条件极值问题转换为非条件极值问题 。 语言也采用同样的做法 。 下面是求解该问题的 语言程序 ’ 一 , ’ 写出 目标函数表达式 ’ 关 一 一 , 一 一 一 二 」’ 把约束条件标准化 , 写成 向量 函数 。 注意等式约束条件要放在前面 。 〔 〕 把 目标函数表达式和约束条件表达式合成一个向量函数 【 猜初值叩 〔 叩 在 中指定等式约束条件的个数 , 指定向量 的下界为 【」 对向量的上界不做要求仁 , , , , , 调用 函数显示与极值点对应的 向量值 显示极小值 显示计算次数 ‘ 一 二 于 一 ‘ 一 一 ‘ 显示约束条件表达式的取值 运行这段 」程序 , 得到如下结果 一 二 一 一 一 一 一 显然 , 计算结果是非常精确的 。 这里调用 了 的最优化 函数 , 它是专门用来解算条件极值问题的 。 四 、用梯度 函数提高计算效率和精度 有些 目标函数可 以求出其梯度函数 , 利用梯度函数可 以提高计算效率和精度 。 考虑下 面 的 目标 函数及约束条件 一 一 一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值