matlab fmincon 精度,fmincon与quadprog误差
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有没有人能帮我看看这两个程序的运行结果为什么会不一样啊??困扰了好久……
程序一:
%text1.m
clear all;clc;
a = [0.058,0.075,0.092,0.111,0.136,0.092]';
b = [0.062,0.085,0.128,0.149,0.164,0.148]';
alpha = [0.054,0.075,0.096,0.123,0.148,0.081]';
beta = [0.058,0.085,0.112,0.138,0.168,0.101]';
pk = [0.005,0.005,0.005,0.005]';
pn = [0,0,0,0,0.005,0.005]';
qb = [0.008,0.008,0.008,0.008]';
n = 16;
m = 24;
q = 5;
c0 = -((a' + b') / 2 + (beta' - alpha') / 4) + pn';
t = 0.15;
c = t * [c0,-0.01,0.03,pk',qb']'
eta1 = beta + b - a;
eta2 = beta + alpha + 2 * (b - a);
bigc0 = (beta * beta' + alpha * alpha' + 3 * eta1 * eta2')/24;
bigc0( : ,7:n) = 0;
bigc0( 7:n , : ) = 0;
bigc = 0.5 * (bigc0 + bigc0')
A = [-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0;
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0;
0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0;
0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0;
0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0;
0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0;
0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1;
];
B = [0,0,0,0,0,0,0.35,0.35,0.35,0.35,0.35,0.35,0,1,0,0.5,0,0,0,0,0,0,0,0]';
Aeq = [1,1,1,1,1.005,1.005,1,-1,0.005,0.005,0.005,0.005,0.008,0.008,0.008,0.008;
1,0,0,0,0,0,0,0,-1,0,0,0,1,0,0,0;0,1,0,0,0,0,0,0,0,-1,0,0,0,1,0,0;
0,0,1,0,0,0,0,0,0,0,-1,0,0,0,1,0;0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,1];
Beq = [1,0.15,0.1,0.2,0.25]';
x0 = [0.15,0.1,0.2,0.25,0,0,0.3,0,0,0,0,0,0,0,0,0]';
[x,fval] = quadprog(bigc,c,A,B,Aeq,Beq,[],[],x0)
程序二:(有两个m文件)
%text2.m
clear all;clc;
A = [-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0;
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0;
0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0;
0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0;
0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0;
0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0;
0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0;
0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1;
];
B = [0,0,0,0,0,0,0.35,0.35,0.35,0.35,0.35,0.35,0,1,0,0.5,0,0,0,0,0,0,0,0]';
Aeq = [1,1,1,1,1.005,1.005,1,-1,0.005,0.005,0.005,0.005,0.008,0.008,0.008,0.008;
1,0,0,0,0,0,0,0,-1,0,0,0,1,0,0,0;0,1,0,0,0,0,0,0,0,-1,0,0,0,1,0,0;
0,0,1,0,0,0,0,0,0,0,-1,0,0,0,1,0;0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,1];
Beq = [1,0.15,0.1,0.2,0.25]';
x0 = [0.15,0.1,0.2,0.25,0,0,0.3,0,0,0,0,0,0,0,0,0]';
[x,fval] = fmincon(@myfun,x0,A,B,Aeq,Beq)
%myfun.m
function f = myfun(x)
a = [0.058,0.075,0.092,0.111,0.136,0.092]';
b = [0.062,0.085,0.128,0.149,0.164,0.148]';
alpha = [0.054,0.075,0.096,0.123,0.148,0.081]';
beta = [0.058,0.085,0.112,0.138,0.168,0.101]';
pk = [0.005,0.005,0.005,0.005]';
pn = [0,0,0,0,0.005,0.005]';
qb = [0.008,0.008,0.008,0.008]';
n = 16;
m = 24;
q = 5;
c0 = -((a' + b') / 2 + (beta' - alpha') / 4) + pn';
t = 0.15;
c = t * [c0,-0.01,0.03,pk',qb']'
eta1 = beta + b - a;
eta2 = beta + alpha + 2 * (b - a);
bigc0 = (beta * beta' + alpha * alpha' + 3 * eta1 * eta2')/24;
bigc0( : ,7:n) = 0;
bigc0( 7:n , : ) = 0
bigc = 0.5 * (bigc0 + bigc0')
f = c' * [x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8),x(9),x(10),x(11),x(12),x(13),x(14),x(15),x(16)]' + 0.5 * [x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8),x(9),x(10),x(11),x(12),x(13),x(14),x(15),x(16)] * bigc * [x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8),x(9),x(10),x(11),x(12),x(13),x(14),x(15),x(16)]';
matlab fmincon 精度,fmincon与quadprog误差相关推荐
- matlab优化问题约束不取等号6,matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么...
导航:网站首页 > matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么 matlab中fmincon函数中不含等号的边界值怎么设置? ...
- matlab求两个图像的误差,求两幅图像的均方误差
测量电源电动势和内阻图像误差 从坐标图上可以清楚的看到:由于电流表和电压表连接的位置不同,测试的误差也不同,当把电压表接在电流表的外侧时,在电路接通状态下,实际把电流表的内阻产生的压降也算进去了,电压 ...
- matlab fmincon 怎样停止,请教:matlab 中关于 fmincon 函数问题
准备用matlab做一个求最优解的问题:准备用fmincon 函数.在写function的时候遇到问题,请帮忙指点.源代码如下: A = [1,1,1;-1,-1,-1;1,0,0;0,1,0;0,0 ...
- matlab fmincon误差值,Fmincon函数求助,数值回带以后根本不在约束的范围内
目标函数:function fun=myobj(x) %以质量大小为目标的优化函数 p=0.00785; %材料密度,单位 ...
- Matlab非线性优化函数fmincon
Matlab优化工具箱提供 fmincon 函数用于对有约束优化问题进行求解 其用法如下: x = fmincon(fun,x0,A,b) x = fmincon(fun,x0,A,b,Aeq ...
- matlab barrier,使用fmincon函数出现barrier问题
迭代到一定次数就出错了 > main Your initial point x0 is not between bounds lb and ub; FMINCON shifted x0 to s ...
- Matlab非线性规划之fmincon()函数
关于非线性规划 非线性规划问题是指目标函数或者约束条件中包含非线性函数的规划问题. 前面我们学到的线性规划更多的是理想状况或者说只有在习题中,为了便于我们理解,引导我们进入规划模型的一种情况.相比之下 ...
- 圆度坐标法MATLAB,基于坐标法测量圆度误差数据处理的MATLAB实现
0 引言 圆度是机器回转零件的主要精度指标之一,在回转零件的加工过程中由于机床主轴回转不平衡.切削元件的径向跳动等因素的影响,会引起工件半径的变化,带来圆度误差.圆度误差的存在,直接影响机器零部件的工 ...
- Matlab浮点数精度问题在计算中的避免方法
今天需要进行矩阵计算,构造了目标矩阵c以及需要进行操作的矩阵a.b: a = 0 0 0 0.5000 0.3000 0.4000 ...
最新文章
- VC GDI+: error C2660: 'new' : function does not take 3 parameters
- android开发 修改标题栏背景_移动开发整体凉凉的背景下,究竟还剩哪些 Android热门前沿知识...
- ssm访问html页面,SSM实现未登录无法访问页面
- 三菱a系列motion软体_三菱M70A/64SM重要功能比较
- API网关和AWS Lambda进行身份验证
- c语言循环链表中设立尾链表,C语言实现双向非循环链表(带头结点尾结点)的节点插入...
- 【CodeForces - 472A】Design Tutorial: Learn from Math (tricks,思维,数论,打表)
- 开源ERP PK 传统ERP_开源ERP商业模式及前景访谈(视频) 转
- Visual C# 资源文件编程--使用资源文件
- 疫情地图 | 低代码制作全国重点管控地区行政区地图(截至4月16日)
- winXP系统如何打开剪贴板查看器
- 前端和后端的英文_前端工程师和后端工程师
- 【java毕业设计】基于javaEE+SSH+mysql的医院在线挂号系统设计与实现(毕业论文+程序源码)——医院在线挂号系统
- JVAV面试常考基础概念
- 游承超:钢化玻璃膜既保护屏幕又不影响触感(4P)
- 前端CSS核心部分盒子模型
- 前端程序员未来如何发展?
- Windows 10上的LockApp.exe是什么?
- Sublime Text介绍
- Oracle日期函數