MATLAB学习(七)求解优化问题:线性规划 非线性规划 拟合与插值 多目标规划
Minf(x)=-5x1 -4x2 -6x3
x1 -x2 +x3 <=20
3x1 +2x2 +4x3 <=42
3x1 +2x2 <=30
0<=x1,0<=x2,0<=x3
- >> c=[-5,-4,-6];
- >> A=[1 -1 1
- 3 2 4
- 3 2 0];
- >> b=[20;42;30];
- >> lb=zeros(3,1);
- >> [x,fval,exitflag,output,lambda]=linprog(c,A,b,[],[],lb)
- Optimization terminated.
- x =
- 0.0000
- 15.0000
- 3.0000
- fval =
- -78.0000
- exitflag =
- 1
- output =
- iterations: 6
- algorithm: 'interior-point-legacy'
- cgiterations: 0
- message: 'Optimization terminated.'
- constrviolation: 0
- firstorderopt: 5.8705e-10
- lambda =
- ineqlin: [3x1 double]
- eqlin: [0x1 double]
- upper: [3x1 double]
- lower: [3x1 double]
- >>
- function[c,ceq]=mycon(x)
- c1=1.5+x(1)*x(2)-x(1)-x(2);
- c2=-x(1)*x(2)-10;
- c=[c1;c2]; % 非线性不等式约束
- ceq = []; % 非线性等式约束
- >> optf=@(x) exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);
- >> x0=[10;10];lb=[0;0];ub=[inf;inf];
- >> options=optimset('Algorithm','active-set','Display','off');
- >> [x,fval] = fmincon(optf,x0,[],[],[],[],lb,ub,@mycon,options)
- x =
- 0
- 1.5000
- fval =
- 8.5000
- >>
- >> x=0:.1:5;
- >> y=sin(x);
- >> f=@(b,x) b(1)*cos(b(2)*x+b(3))+b(4);
- >> [a,ss]=lsqcurvefit(f,[1,1,1,1],x,y)
- Local minimum found.
- Optimization completed because the size of the gradient is less than
- the default value of the function tolerance.
- <stopping criteria details>
- a =
- -1.0000 1.0000 1.5708 -0.0000
- ss =
- 8.7594e-29
- >> xf=0:0.05:8;
- yfit=f(a,xf);
- plot(xf,sin(xf),'ro',xf,yfit,'b-')
- >> zf=@(a,x) a(1)*x(:,1).^2+a(2)*x(:,2).^2+a(3) %构造拟合函数类型
- zf =
- @(a,x)a(1)*x(:,1).^2+a(2)*x(:,2).^2+a(3)
- >> [X0,Y0]=meshgrid(-2:.2:2);
- x0=X0(:);y0=Y0(:);
- z0=zf([1,1,-1],[x0,y0]);
- >> %用上面的点去拟合估计曲面函数中的参数a:
- >> [b,re]=nlinfit([x0,y0],z0,zf,[0,0,0]);
- b %显示b,发现恰好是1、1、-1
- b =
- 1.0000 1.0000 -1.0000
- >> [X,Y] = meshgrid(-3:.25:3);Z = peaks(X,Y);
- [XI,YI] = meshgrid(-3:.125:3);
- ZI = interp2(X,Y,Z,XI,YI);
- mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15), hold off
- axis([-3 3 -3 3 -5 20])
- 已锁定最新绘图
- >>
MATLAB学习(七)求解优化问题:线性规划 非线性规划 拟合与插值 多目标规划的更多相关文章
- matlab学习之求解函数的根和极小值
只是用来求解函数的部分一个根,具体算法没查询,只是调用自带的函数 代码如下 % 求函数零点和极小值 xiszero=func(0) x=-1:0.1:1.5; y=func(x); plot(x,y) ...
- yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)
最近建立了一个网络流模型,是一个混合整数线性规划问题(模型中既有连续变量,又有整型变量).当要求解此模型的时候,发现matlab优化工具箱竟没有自带的可以求解这类问题的算法(只有bintprog求解器 ...
- matlab学习笔记 bsxfun函数
matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...
- Matlab学习笔记 figure函数
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
- 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置
[转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...
- matlab学习笔记(一)单元数组
matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x) :取最大的整数 ceil(3.18)=4,ceil( ...
- 如何学习Linux性能优化?
如何学习Linux性能优化? 你是否也曾跟我一样,看了很多书.学了很多 Linux 性能工具,但在面对 Linux 性能问题时,还是束手无策?实际上,性能分析和优化始终是大多数软件工程师的一个痛点.但 ...
- MyBatis学习七:spring和MyBatis整合
<\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...
- SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
随机推荐
- 用实例的方式去理解storm的并发度
什么是storm的并发度 一个topology(拓扑)在storm集群上最总是以executor和task的形式运行在suppervisor管理的worker节点上.而worker进程都是运行在jvm ...
- VS2017 Nuget服务器搭建,简易版
熟悉Visual Studio 的小伙伴肯定听说过“Nuget”这个词,关于Nuget是如何如何方便就不再赘述了,这里主要介绍一下如何搭建个人的Nuget服务器. 直奔主题 第一步:打开VS2017 ...
- 4、docker镜像:花卷结构、commit镜像
1.是什么 docker images 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. ...
- [Algorithm] Max Chars Problem
// --- Directions // Given a string, return the character that is most // commonly used in the strin ...
- 【Android-数据库Sqlite】Sqlite数据库 增、删、改、查
1.先创建一个Product类 Product.java 变量如下: int id; String code; String name; int qty; 2.创建一个DBHelper类 DBHelp ...
- 观察者模式(Observer)---行为型
1 基础知识 定义:定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖(观察者)都会收到通知并更新. 本质:触发联动 使用场景:关联行为场景,建立一 ...
- 51 Nod 1070 Bash游戏v4(斐波那契博弈)
这题的证明看不太懂,日后再重做... 1070 Bash游戏 V4 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 有一堆石子共有N个.A B两个 ...
- Teamviewer14重置试用期版
网上的破解版基本上全部被封禁了,只能通过修改ID来无限试用这个方法了 有些个人使用频繁的用户,经常提示商业环境 此teamviewer14重置试用期,可以一直使用 有条件的还是建议购买付费版. 到期点 ...
- HTML容器标签和文本标签
html中的容器级标签和文本级标签,css中的块级元素和行内元素是我们常常拿来比较的四个名词(行内块级暂时先不考虑).注:如果标签嵌套错误,可能会发生浏览器解析错误的情况,只是针对嵌套做的这个. 容器 ...
- 子类中执行父类的方法(引出super()与mro列表)
1. 我们先想一下在python中如果子类方法中想执行父类的方法,有什么方式?大概有三种: Parent.__init__(self, name) # 通过父类的名字,指定调用父类的方法 super( ...