Minf(x)=-5x1  -4x2  -6x3

               x1   -x2    +x3  <=20

             3x1  +2x2 +4x3 <=42

               3x1 +2x2           <=30

            0<=x1,0<=x2,0<=x3

  1. >> c=[-5,-4,-6];
  2. >> A=[1 -1 1
  3. 3 2 4
  4. 3 2 0];
  5. >> b=[20;42;30];
  6. >> lb=zeros(3,1);
  7. >> [x,fval,exitflag,output,lambda]=linprog(c,A,b,[],[],lb)
  8. Optimization terminated.
  9. x =
  10. 0.0000
  11. 15.0000
  12. 3.0000
  13. fval =
  14. -78.0000
  15. exitflag =
  16. 1
  17. output =
  18. iterations: 6
  19. algorithm: 'interior-point-legacy'
  20. cgiterations: 0
  21. message: 'Optimization terminated.'
  22. constrviolation: 0
  23. firstorderopt: 5.8705e-10
  24. lambda =
  25. ineqlin: [3x1 double]
  26. eqlin: [0x1 double]
  27. upper: [3x1 double]
  28. lower: [3x1 double]
  29. >>

  1. function[c,ceq]=mycon(x)
  2. c1=1.5+x(1)*x(2)-x(1)-x(2);
  3. c2=-x(1)*x(2)-10;
  4. c=[c1;c2]; % 非线性不等式约束
  5. ceq = []; % 非线性等式约束

  

  1. >> optf=@(x) exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);
  2. >> x0=[10;10];lb=[0;0];ub=[inf;inf];
  3. >> options=optimset('Algorithm','active-set','Display','off');
  4. >> [x,fval] = fmincon(optf,x0,[],[],[],[],lb,ub,@mycon,options)
  5. x =
  6. 0
  7. 1.5000
  8. fval =
  9. 8.5000
  10. >>

  

  1. >> x=0:.1:5;
  2. >> y=sin(x);
  3. >> f=@(b,x) b(1)*cos(b(2)*x+b(3))+b(4);
  4. >> [a,ss]=lsqcurvefit(f,[1,1,1,1],x,y)
  5. Local minimum found.
  6. Optimization completed because the size of the gradient is less than
  7. the default value of the function tolerance.
  8. <stopping criteria details>
  9. a =
  10. -1.0000 1.0000 1.5708 -0.0000
  11. ss =
  12. 8.7594e-29
  13. >> xf=0:0.05:8;
  14. yfit=f(a,xf);
  15. plot(xf,sin(xf),'ro',xf,yfit,'b-')

  

  1. >> zf=@(a,x) a(1)*x(:,1).^2+a(2)*x(:,2).^2+a(3) %构造拟合函数类型
  2. zf =
  3. @(a,x)a(1)*x(:,1).^2+a(2)*x(:,2).^2+a(3)
  4. >> [X0,Y0]=meshgrid(-2:.2:2);
  5. x0=X0(:);y0=Y0(:);
  6. z0=zf([1,1,-1],[x0,y0]);
  7. >> %用上面的点去拟合估计曲面函数中的参数a:
  8. >> [b,re]=nlinfit([x0,y0],z0,zf,[0,0,0]);
  9. b %显示b,发现恰好是11、-1
  10. b =
  11. 1.0000 1.0000 -1.0000

  

 

  1. >> [X,Y] = meshgrid(-3:.25:3);Z = peaks(X,Y);
  2. [XI,YI] = meshgrid(-3:.125:3);
  3. ZI = interp2(X,Y,Z,XI,YI);
  4. mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15), hold off
  5. axis([-3 3 -3 3 -5 20])
  6. 已锁定最新绘图
  7. >>

  

 

MATLAB学习(七)求解优化问题:线性规划 非线性规划 拟合与插值 多目标规划的更多相关文章

  1. matlab学习之求解函数的根和极小值

    只是用来求解函数的部分一个根,具体算法没查询,只是调用自带的函数 代码如下 % 求函数零点和极小值 xiszero=func(0) x=-1:0.1:1.5; y=func(x); plot(x,y) ...

  2. yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)

    最近建立了一个网络流模型,是一个混合整数线性规划问题(模型中既有连续变量,又有整型变量).当要求解此模型的时候,发现matlab优化工具箱竟没有自带的可以求解这类问题的算法(只有bintprog求解器 ...

  3. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  4. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  5. 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    [转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...

  6. matlab学习笔记(一)单元数组

    matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x)  :取最大的整数 ceil(3.18)=4,ceil( ...

  7. 如何学习Linux性能优化?

    如何学习Linux性能优化? 你是否也曾跟我一样,看了很多书.学了很多 Linux 性能工具,但在面对 Linux 性能问题时,还是束手无策?实际上,性能分析和优化始终是大多数软件工程师的一个痛点.但 ...

  8. MyBatis学习七:spring和MyBatis整合

    <\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...

  9. SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

随机推荐

  1. 用实例的方式去理解storm的并发度

    什么是storm的并发度 一个topology(拓扑)在storm集群上最总是以executor和task的形式运行在suppervisor管理的worker节点上.而worker进程都是运行在jvm ...

  2. VS2017 Nuget服务器搭建,简易版

    熟悉Visual Studio 的小伙伴肯定听说过“Nuget”这个词,关于Nuget是如何如何方便就不再赘述了,这里主要介绍一下如何搭建个人的Nuget服务器. 直奔主题 第一步:打开VS2017 ...

  3. 4、docker镜像:花卷结构、commit镜像

    1.是什么 docker images 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. ...

  4. [Algorithm] Max Chars Problem

    // --- Directions // Given a string, return the character that is most // commonly used in the strin ...

  5. 【Android-数据库Sqlite】Sqlite数据库 增、删、改、查

    1.先创建一个Product类 Product.java 变量如下: int id; String code; String name; int qty; 2.创建一个DBHelper类 DBHelp ...

  6. 观察者模式(Observer)---行为型

    1 基础知识 定义:定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖(观察者)都会收到通知并更新. 本质:触发联动 使用场景:关联行为场景,建立一 ...

  7. 51 Nod 1070 Bash游戏v4(斐波那契博弈)

    这题的证明看不太懂,日后再重做... 1070 Bash游戏 V4  基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 有一堆石子共有N个.A B两个 ...

  8. Teamviewer14重置试用期版

    网上的破解版基本上全部被封禁了,只能通过修改ID来无限试用这个方法了 有些个人使用频繁的用户,经常提示商业环境 此teamviewer14重置试用期,可以一直使用 有条件的还是建议购买付费版. 到期点 ...

  9. HTML容器标签和文本标签

    html中的容器级标签和文本级标签,css中的块级元素和行内元素是我们常常拿来比较的四个名词(行内块级暂时先不考虑).注:如果标签嵌套错误,可能会发生浏览器解析错误的情况,只是针对嵌套做的这个. 容器 ...

  10. 子类中执行父类的方法(引出super()与mro列表)

    1. 我们先想一下在python中如果子类方法中想执行父类的方法,有什么方式?大概有三种: Parent.__init__(self, name) # 通过父类的名字,指定调用父类的方法 super( ...