罚函数法的基本思想是借助罚函数把约束问题转化为无约束问题,然后用无约束最优方法来求解。

构造罚函数:在可行点,辅助函数的值等于原来的目标函数值;在不可行点,辅助函数值等于原来的目标函数值加上一个很大的正数。可写成形如下式:

目标函数:

约束条件:

其相关代码如下:

clc

syms x1 x2 e; % e为罚因子

m(1)=1;c=10;a(1)=0;b(1)=0; % c为递增系数 赋初值

f=x1^2+x2^2+e*(1-x1)^2; % 构造罚函数

f0(1)=0;

%求偏导、海森阵

fx1=diff(f,‘x1‘);

fx2=diff(f,‘x2‘);

fx1x1=diff(fx1,‘x1‘);

fx1x2=diff(fx1,‘x2‘);

fx2x1=diff(fx2,‘x1‘);

fx2x2=diff(fx2,‘x2‘);

for k=1:100 %外点法e迭代循环

x1=a(k);x2=b(k);e=m(k);

for n=1:100 %牛顿法求最优值

f1=subs(fx1); %求梯度值和海森矩阵

f2=subs(fx2);

f11=subs(fx1x1);

f12=subs(fx1x2);

f21=subs(fx2x1);

f22=subs(fx2x2);

if(double(sqrt(f1^2+f2^2))<=0.000001) %最优值收敛条件

a(k+1)=double(x1);b(k+1)=double(x2);f0(k+1)=double(subs(f));

break;

else

X=[x1 x2]‘-inv([f11 f12;f21 f22])*[f1 f2]‘;

x1=X(1,1);x2=X(2,1);

end

end

if(double(sqrt((a(k+1)-a(k))^2+(b(k+1)-b(k))^2))<=0.000001)&&(double(abs((f0(k+1)-f0(k))/f0(k)))<=0.000001) %迭代收敛条件

disp(‘最优坐标 x1:‘),disp(a(k+1))%输出最优点坐标,迭代次数,最优值

disp(‘最优坐标 x2:‘),disp(b(k+1))

disp(‘迭代次数‘),disp(k)

disp(‘最优值‘),disp(f0(k+1))

break;

else

m(k+1)=c*m(k);

end

end

运行结果如下:

matlab外罚函数实验报告,优化之外罚函数法(示例代码)相关推荐

  1. matlab外罚函数实验报告,外罚函数法matlab

    罚函数法 37页 1下载券 罚函数法 11页 1下载券 罚函数法MATLAB程序 5页 2下载券 1120 罚函数法 (罚函数法... 52页 1下载券 ...... c Ax ? b . 3 算法的 ...

  2. matlab外罚函数实验报告,(实验三)外罚函数法-实验指导书

    实验三:外罚函数法 一.实验目的 1.通过上机利用Matlab 数学软件进行外罚函数编程,并学会对具体问题具体分析: 2.熟悉外罚函数并编制程序: 3.培养Matlab 编程与上机调试能力. 二.实验 ...

  3. matlab矩阵处理实验报告,matlab实验报告一二三

    <matlab实验报告一二三>由会员分享,可在线阅读,更多相关<matlab实验报告一二三(37页珍藏版)>请在金锄头文库上搜索. 1.2015 秋秋 2013 级级MATLA ...

  4. MATLAB离散傅里叶变换实验结果分析,Matlab离散傅里叶变换实验报告

    Matlab离散傅里叶变换实验报告 班级 信工082 学号 16 姓名 刘刚 实验组别 实验日期 室温 报告日期 成绩 报告内容:(目的和要求,原理,步骤,数据,计算,小结等) 实验三 离散傅立叶变换 ...

  5. matlab仿真实验报告,Matlab SIMULINK仿真实验报告.doc

    Matlab SIMULINK仿真实验报告.doc 西安邮电学院 Matlab实验报告(四)2011- 2012 学年第 1 学期专业 自动化班级 自动 0903学号姓名2011 年 11 月 10 ...

  6. matlab的程序设计实验报告答案,实验二 MATLAB程序设计(含实验报告).doc

    实验二 MATLAB程序设计(含实验报告) 实验二 MATLAB程序设计 实验目的 1.掌握利用if语句实现选择结构的方法. 2.掌握利用switch语句实现多分支选择结构的方法. 3.掌握利用for ...

  7. 基于Matlab的循环码实验报告,基于matlab的循环码实验报告.doc

    基于matlab的循环码实验报告.doc 基于MATLAB循环码编码方法的应用叶俊(指导老师,刘丹平副教授)(重庆大学通信工程学院中国重庆400000)摘要任何两个相邻的循环码只有一位数字不同,因此循 ...

  8. matlab实验二数值运算报告,MATLAB数值运算实验报告.docx

    MATLAB数值运算实验报告 实验报告系 (部): 信息工程 班 级: 姓 名: 学 号: 课 程: MATLAB 实验名称: Matlab数值运算目录一 . 实验目的2二 . 实验内容2三 . 实验 ...

  9. matlab音频信号处理实验报告,matlab音频信号处理实验报告.docx

    matlab音频信号处理实验报告 MATLAB音频信号处理实验 南昌航空大学信息工程学院 课程实验报告 实验名称:实验时间:2014年4月23日 指导教师: 班级: 学号: 姓名: 成绩: 南昌航空大 ...

最新文章

  1. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 )
  2. CCNA2 - Module 2 Exam Answers (05/07/2008 14:30)
  3. J2EE看tomcat运行参数和去掉工程名作为请求的根路径
  4. Deployment descriptor
  5. mysql 添加用户_mysql创建用户与授权
  6. IC卡设备驱动模块的代码
  7. 审计文件服务器的5个核心要素
  8. 数据结构:五岔路口交通管理红绿灯设计
  9. PHP连接MYSQL出现乱码的原因与解决方法
  10. mysql 用户权限管理
  11. 华三交换机配置access命令_H3C 交换机常用配置命令
  12. 编程计算三角形的面积和周长。要求如下: (1)、设计一个接口InterfaceShape,其中有计算三角形的面积和周长的抽象方法; (2)、设计一个点类Point,其中有必要的构造方法和一般的访问器方
  13. 圆周率小数点后1千位(附计算圆周率源代码)
  14. 存储单元,存储字长,存储字,.存储容量
  15. SCTF | 三足鼎立焦点对抗,天枢战队有惊无险斩获冠军头衔
  16. 函授计算机专业教育感想,函授学习心得体会(精选5篇)
  17. 基于空间直方图meanshift跟踪
  18. ArcGIS符号导入图片
  19. php对接阿里云API调用企业税号查询的高级实战案例解析(下拉筛选查询、远程调用API、xm-select组件应用)
  20. 知云文献翻译 for mac

热门文章

  1. java word 乱码_java word 乱码怎么办,_Java_ 少侠科技
  2. 视频去水印软件哪个好?快把这些软件收好
  3. 十万美元的悬赏——互联网梅森素数大搜索
  4. 南邮考研计算机组成原理真题,南京邮电大学408计算机学科专业基础综合(含数据结构、计算机组成原理、操作系统和计算机网络)考研资料...
  5. vue + 百度地图 实现大屏嵌入地图
  6. 三星i9308刷机笔记
  7. 注册电气工程师短路电流计算口诀法
  8. Qt - 阻止系统休眠方法
  9. SOLIDWORKS Simulation中如何添加虚拟螺栓
  10. CentOS-7 安装Lustre-2.10.1文件系统