matlab fmincon 精度,fmincon与quadprog误差

matlab fmincon 精度,fmincon与quadprog误差该楼层疑似违规已被系统折叠隐藏此楼查看此楼有没有人能帮我看看这两个程序的运行结果为什么会不一样啊??困扰了好久……程序一:%text1.mclearall;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.1…

大家好,又见面了,我是你们的朋友全栈君。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

有没有人能帮我看看这两个程序的运行结果为什么会不一样啊??困扰了好久……

程序一:

%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)]’;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132331.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Celer 跨链消息框架:开发和使用多链应用的全新模式

    Celer 跨链消息框架:开发和使用多链应用的全新模式Celer跨链消息框架(CelerInter-chainMessage)现已正式推出并上线测试网!

    2022年5月22日
    36
  • 零基础学Java(11)自定义类[通俗易懂]

    零基础学Java(11)自定义类[通俗易懂]前言之前的例子中,我们已经编写了一些简单的类。但是,那些类都只包含一个简单的main方法。现在来学习如何编写复杂应用程序所需要的那种主力类。通常这些类没有main方法,却有自己的实例字段和实例方法。

    2022年7月29日
    5
  • X3D.GIS[通俗易懂]

    X3D.GIS[通俗易懂]2019独角兽企业重金招聘Python工程师标准>>>…

    2022年6月3日
    31
  • Windows下使用VisualSFM + CMVS/PMVS + MeshLab进行三维重建

    Windows下使用VisualSFM + CMVS/PMVS + MeshLab进行三维重建Windows下使用VisualSFM+CMVS/PMVS+MeshLab进行三维重建参考文档:VisualSFM和Meshlab实现三维重建过程:http://planckscale.info/tag/visualsfm/(十分感谢)数据集:三维重建数据集:http://vision.ia.ac.cn/zh/data/index.html一、简介要想了解

    2022年6月20日
    23
  • 使用 tar 压缩和解压缩的常用参数

    使用 tar 压缩和解压缩的常用参数tar常用参数:-A新增文件到已压缩文件中-c新建新压缩文件-r将新文件添加到已压缩文件的末尾-x解压缩文件-k保留原压缩文件-f待压缩或待解压缩文件-jbzip2格式-zgzip格式-v显示过程 常用解压缩:tar-xzvffile.gztar-xjvffile.bz2常用压缩:tar-czvfarchi…

    2022年5月25日
    41
  • kettle工具使用一二三[通俗易懂]

    kettle工具使用一二三[通俗易懂]1:关于ID生成器。如果一个转化流程里的两个分支分别使用了GenerateID组件,请注意“计数器名称”,这个很重要。1)如果改名字不同,则最总汇总结果中的id是会分别生成的,也就是说会出现重复的id。2)如果名字相同,最终结果中id是不会重复的。2:关于序列生成器首先抱歉,上面所说的“GenerateID“组件,其实指的就是序列生成器。kettle5.3中包含两个序列生成器组件,一个…

    2022年10月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号