【最优化方法】实验四 约束最优化方法的MATLAB实现

实验的目的和要求:通过本次实验使学生较为熟练使用MATLAB软件,并能利用该软件进行约束最优化方法的计算。

实验内容:

1、罚函数法的MATLAB实现

2、可行方向法的MATLAB实现

学习建议:

本次实验就是要通过对一些具体问题的分析进一步熟悉软件的操作并加深对理论知识的理解。

重点和难点:

可行点和辅助函数选取。

一 罚函数法

用罚函数法解min f(x)=(x1-1)2+x22

​ S.T. g(x)=x2-1>=0

编写下面m文件

fahanshu.msyms x1 x2 f=(x1-1)^2+x2^2;g=x2-1;x=[x1;x2];x0=[0;0];e=0.0001;M=1;while abs(subs(g,x,x0))>eif subs(g,x,x0)<0​    Q=f+M*g^2;else ​    Q=f;endx0=xzNewton(Q,x,x0,0.0001);M=10*M;endx0

运行得:fahanshu

x0 =

1.0000

0.9999

与理论值x=[1;1]很接近。

二 投影梯度法

1.梯度投影法基本原理和步骤

思想:当迭代点是可行域的内点时,将目标函数负梯度作为搜索方向,当迭代点在可行域边界上时,将目标函数负梯度在可行域边界上的投影作为搜索方向。无论何种情况,所构造的方向都是可行下降方向。然后在可行域内沿该方向进行最优一维搜索得到新的迭代点。

img

img

MATLAB实现:

2.代码及数值算例:

(1) 程序源代码:

function [ X,FMIN,K ] = tidutouying( f,A,b,x1,x,e )%  [ X,FMIN,K ] = tidutouying( f,A,b,x1,e ) 梯度投影法%  f  目标函数%  A  约束矩阵  b 右端项%  x1 初始点 x 自由变量%  e  精度要求%  X  极小点%  FMIN 极小值%  K  迭代次数%  张超编写与2014/5/3count=1;n=length(x1);tf=jacobian(f,x)';while 1[A1,A2,b1,b2,k]=fenjie(A,b,x1);while 1M=A1;if isempty(M)​    P=eye(n);else​    P=eye(n)-M'*(M*M')^(-1)*M;endPk=-P*subs(tf,x,x1);if norm(Pk)<=e​    if isempty(M)​      x1;break;else​      W=(M*M')^(-1)*M*subs(tf,x,x1);​      u=W;if min(u)<0for i=1:length(u)if u(i)==min(u)j=i;endendA1(j,:)=[];else ​        x1;break;endendelse​    b_=b2-A2*x1;​    P_=A2*Pk;for i=1:length(P_)if P_(i)<0r(i)=b_(i)/P_(i);elser(i)=10000;endend​    rmax=min(r);​    syms t​    y=x1+t*Pk;ft(t)=subs(f,x,y);[r1]=find0618(ft,0,double(rmax),0.00001);​    x1=x1+r1*Pk;break;endendcount=count+1;if isempty(M)    break;endif min(u)>=0break;endendX=x1;FMIN=subs(f,x,X);K=count;endfunction [A1,A2,b1,b2,k ] = fenjie( A,b,x )% 分解起作用约束A=A;b=b;x0=x;k=0;q=0;s=size(A);A1=zeros(s(1),s(2));A2=zeros(s(1),s(2));b1=zeros(s(1),1);b2=zeros(s(1),1);for i=1:s(1)gi=A(i,:)*x0-b(i);if abs(gi)<0.0000001 ​    k=k+1;A1(k,:)=A(i,:);b1(k,1)=b(i);else ​    q=q+1;A2(q,:)=A(i,:);b2(q,1)=b(i);endendif k>0A1=A1(1:k,:);b1=b1(1:k,:);elseA1=[];endif q>0A2=A2(1:q,:);b2=b2(1:q,:);end end

(2) 数值算例:

Min f(x)= 2*x1^2+2*x2^22*x1*x2 – 4*x1 – 6*x2S.T. –x1 – x2>=2–x1 – 5*x2>=5x1>=0x2>=0初值x0=[0;0]在matlab command window里输入syms x1 x2 f=2*x1^2+2*x2^2-2*x1*x2-4*x1-6*x2;A=[-1 -1;-1 -5;1 0;0 1];b=[-2;-5;0;0];x1=[0;0];x=[x1;x2];e=0.01;[X,FMIN,K]=tidutouying(f,A,b,x1,x,e)X =1.12920.7742FMIN =-7.1613N =16

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/844075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国际标准引脚,宽范围工作温度–40℃ 到 105℃,3W 1.5KVDC 隔离单输出 DC/DC 电源模块 ——TPL-3W系列

TPL-3W系列是一款额定功率为3W的隔离产品&#xff0c;国际标准引脚&#xff0c;宽范围工作温度–40℃ 到 105℃&#xff0c;在此温度范围内都可以稳定输出3W&#xff0c;并且效率非常高&#xff0c;高达88%&#xff0c;同时负载调整率非常低&#xff0c;对于有输出电压精度有要…

失落的方舟台服封号的解决方法 怎么避免封号?

失落的方舟台服封号的解决方法 怎么避免封号&#xff1f; 失落的方舟这款游戏是由Smile Gate研发的MMORPG游戏&#xff0c;这款游戏将于5月30日正式开服。游戏采用虚幻3引擎&#xff0c;为玩家们提供了丰富的游戏玩法与精美的游戏画面。游戏的背景是在中世纪&#xff0c;玩家们…

网络原理-------TCP协议

文章目录 TCP协议TCP协议段格式TCP原理确认应答机制 (安全机制)超时重传机制 (安全机制)连接管理机制 (安全机制)滑动窗口 (效率机制)流量控制 (安全机制)拥塞控制 (安全机制)延迟应答 (效率机制)捎带应答 (效率机制) 基于TCP的应用层协议 TCP协议 TCP, 即 Transmission Contr…

C# TcpClient

TcpClient 自己封装的话&#xff0c;还是比较麻烦的&#xff0c;可以基于线程&#xff0c;也可以基于异步写&#xff0c;最好的办法是网上找个插件&#xff0c;我发现一个插件还是非常好用的&#xff1a;STTech.BytesIO.Tcp 下面是这个插件作者的帖子&#xff0c;有兴趣的可以…

Mac连接虚拟机(Linux系统)

1.确定虚拟机的IP地址 ifconfig //终端命令&#xff0c;查询ip地址 sudo apt install net-tools 安装完成后再次执行 ifconfig&#xff1a; 2.安装SSH&#xff08;加密远程登录协议&#xff09; (1).安装OpenSSH服务器软件包&#xff1a; sudo apt-get install openssh-ser…

【惊艳视界】Perfectly Clear Workbench:让您的图像瞬间焕发生机!

在数字化时代&#xff0c;图像已成为我们生活中不可或缺的一部分。无论是摄影爱好者&#xff0c;还是专业设计师&#xff0c;都渴望拥有一款能够轻松提升图像质量的神奇工具。今天&#xff0c;我们为您带来了一款图像清晰处理软件的佼佼者——Perfectly Clear Workbench&#x…

最新!!2024上半年软考【高级】系统分析师 综合知识真题解析

2024上半年软考考试已经结束了&#xff0c;为大家整理了网友回忆版的系统分析师选择题真题及答案&#xff0c;总共30道题。 上半年考试的宝子们可以对答案预估分数&#xff01;准备下半年考的宝子可以提前把握考试知识点和出题方向&#xff0c;说不定会遇到相同考点的题目&…

【全开源】知识付费问答社区(FastAdmin+ThinkPHP)

此系统是一款基于FastAdmin和ThinkPHP开发的知识付费问答社区系统&#xff0c;提供全部前后台无加密源代码&#xff0c;拥有强大的付费提问、付费阅读、付费查看、付费邀请、全文搜索等功能模块&#xff0c;其整合了强大的标签模块和专区模块&#xff0c;让问题和文章更好的归类…

python办公自动化——(三)替换PPT文档中图形数据-折线图

数据替换前 数据替换后 代码实现 # 单折线 pathE:\\13 python 下侧双x轴折线图\\ prs Presentation(path双x轴测试-01.pptx) data_timepd.read_excel(path"数据.xlsx",sheet_name单折线)ppt_9prs.slides…

初学JavaScript

什么是JavaScrip&#xff1a; JavaScript 是一种高级编程语言&#xff0c;主要用于网页开发。它是一种动态、弱类型的语言&#xff0c;可以在客户端&#xff08;浏览器&#xff09;中运行&#xff0c;并与 HTML 和 CSS 一起用于创建交互式网页。JavaScript 可以添加动态功能&a…

电脑误删除的文件怎么恢复?6个方法图文详解!

“我在电脑上误删除了一些比较重要的文件&#xff0c;现在不知道应该怎么操作了&#xff0c;有没有可以分享一下经验的朋友呀&#xff1f;” 在数字化世界的浪潮中&#xff0c;电脑成为了我们处理、存储和分享信息的重要工具。然而&#xff0c;随着我们对电脑的依赖日益加深&am…

【云原生】kubernetes中Configmap原理解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

236. 二叉树的最近公共祖先(C++)

文章目录 前言一、题目介绍二、解决方案三、优化总结 前言 在本篇文章中我们将会讲解二叉树中极为经典的题目236. 二叉树的最近公共祖先 一、题目介绍 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的…

如何借VR之手,让展厅互动更精彩?

VR虚拟现实技术以其卓越的沉浸式体验为特点&#xff0c;引领用户踏入一个全新的虚拟世界&#xff0c;正因如此&#xff0c;它开始被广泛应用于展厅、商业等多个领域。那么&#xff0c;今天&#xff0c;让我们就来了解一下这种技术是如何为展厅带来精彩互动体验的吧&#xff01;…

日常使用工具(截图,笔记,一键启动)

目录 一,截图 Snipaste 二.笔记 Joplin 三.翻译 四.自动启动软件 这篇记录一下工作中用的很顺手的工具. 一,截图 Snipaste 官网:Snipaste - 截图 贴图 下面是官方手册. 使用 我都是直接F1 就会出现选择框,随意拖动大小,选择下方工具栏,相应位置, 二.笔记 Joplin 官网:…

el-table表格实现鼠标拖动而左右滑动

场景描述&#xff1a; 表格样式较为复杂&#xff0c;10条数据超出整个屏幕的高度&#xff0c;因而导致无法快速拖动滚动条&#xff0c;所以提出需要在表格内容区拖动鼠标&#xff0c;从而实现无需滚动到底部就可以左右拖动表格内容的效果。 具体实现&#xff1a; 实现的方式…

[排序算法]4. 图解堆排序及其代码实现

先来看看什么是堆? 堆是一种图的树形结构&#xff0c;被用于实现“优先队列”&#xff08;priority queues&#xff09; 注:优先队列是一种数据结构&#xff0c;可以自由添加数据&#xff0c;但取出数据时要从最小值开始按顺序取出。 在堆的树形结构中&#xff0c…

.NET 某和OA办公系统全局绕过漏洞分析

转自先知社区 作者&#xff1a;dot.Net安全矩阵 原文链接&#xff1a;.NET 某和OA办公系统全局绕过漏洞分析 - 先知社区 0x01 前言 某和OA协同办公管理系统C6软件共有20多个应用模块&#xff0c;160多个应用子模块&#xff0c;从功能型的协同办公平台上升到管理型协同管理平…

JS-06 原型式继承借用构造函数实现继承

目录 1 原型式继承 场景 前置问题 实现方法 2 借用构造函数实现继承 前置问题 错误的实现方式 正确的实现方式 1 原型式继承 场景 a、创建一个纯洁的对象&#xff1a;对象在控制台打印什么属性都没有 b、创建一个继承自某个父对象的子对象 前置问题 一个对象里有很…

基于稀疏辅助信号平滑的心电信号降噪方法(Matlab R2021B)

基于形态成分分析理论&#xff08;MCA&#xff09;的稀疏辅助信号分解方法是由信号的形态多样性来分解信号中添加性的混合信号成分&#xff0c;它最早被应用在图像处理领域&#xff0c;后来被引入到一维信号的处理中。 在基于MCA稀疏辅助的信号分析模型中&#xff0c;总变差方…