Ⅰ 用MATLAB优化工具箱解线性规划,请举例说明.
应该是数学建模吧,一般解线性规划问题都用LINGO,简单易学。
例如:钢管原材料内每根长19m,现需容要A,B,C,D四种钢管部件,长度分别为4m,5m,6m,8m,数量分别为50,10,20,15根因不同下料方式之间的转换会增加成本,因而要求不同的下料方式不超过3种,试安排下料方式,使所需圆钢材料的总数量最少。
在LINGO中运行如下程序即可。
model:
sets:
bujian/1..4/:L,b;
cutfa/1,2,3,4/:x;
links(bujian,cutfa):N;
endsets
data:
L=4 5 6 8;
b=50 10 20 15;
enddata
min=@sum(cutfa:x);
ZL=19;
@for(bujian(i):@sum(cutfa(j):N(i,j)*x(j))>=b(i));
@for(cutfa(j):@sum(bujian(i):L(i)*N(i,j))<=ZL);
@for(cutfa(j):@sum(bujian(i):L(i)*N(i,j))>ZL-4);
@for(cutfa:@gin(x));@for(links:@gin(N));
end
Ⅱ matlab 优化工具箱如何让我入手
网上有很多这方面的教学视频:
Ⅲ MATLAB优化工具箱怎么试用
首先看一个gui对遗传算法的应用,
求下列函数的极小值。
f(x)=x.^4-3*x.^3+x.^2-2;
利用遗传算法求解,选择ga solver(求解器),输入适应函数,输入变量个数,start就可以了,充分反应了遗传算法的优越性。
接着是对无约束一维极值问题的求解。
首先是进退法搜索单谷函数的极值问题。原理就是在固定区间内按照一定步长无穷逼近最优解,不过无论怎样逼近,最后得到的还是符合精度的区间,并不是理论最优解。Matlab中用minJT函数来实现。
相关的函数代码可以在matlab相关文件夹中找到,这里就不多说,不过还是按这种方法求一下上面的极小值问题。
代码如下:
syms x;
f=x^4-3*x^3+x^2-2;
[x1,x2]=minJT(f,0,0.001);
在2009b中结果是。2009b已经没有这个函数了。
无语了一下,继续看下一种方法,黄金分割法。
也是一种无穷逼近法,利用黄金分割长生前一个区间中的内点,舍去一个端点。逐渐逼近最小值,是一种单向收缩法。
不过2009b也没有这个函数了。
然后是斐波那契法。
我们首先就会联想到斐波那契数列,不过这里确实用到了斐波那契数列。
斐波那契法显然是一种双向收缩法具体的搜索原理就不多追究了。
然后便是牛顿迭代法,原来就学过的一种速度相当快的迭代方法,其中优化后的全局牛顿法,一般的牛顿法需要初始点接近最值点而全局牛顿法则不需要这个要求。关最后还有割线法,二次插值和三次插值法。以后会慢慢补充相关的函数m文件的。
Ⅳ matlab工具箱有哪些实例
function nTabs(thisObj,Num){
if(thisObj.className == "active")return;
var tabObj = thisObj.parentNode.id;
var tabList = document.getElementById(tabObj).getElementsByTagName("li");
for(i=0; i <tabList.length; i++)
{
Ⅳ matlab最优化工具箱
可能是没按上工具箱,你看看有没有optimtool,没有去下一个
Ⅵ matlab 优化工具箱怎么用
首先看一个gui对遗传算法的应用, 求下列函数的极小值。 f(x)=x.^4-3*x.^3+x.^2-2; 利用遗传算法求内解容,选择ga solver(求解器),输入适应函数,输入变量个数,start就可以了,充分反应了遗传算法的优越性。 接着是对无约束一维极值问题的求解。...
Ⅶ 怎样启动MATLAB优化工具箱
f(x)=x.^4-3*x.^3+x.^2-2;
利用遗传算法求解,选择ga solver(求解器),输入适应函数,专输入变量个数,start就可以了,属充分反应了遗传算法的优越性。
接着是对无约束一维极值问题的求解。
首先是进退法搜索单谷函数的极值问题。原理就是在固定区间内按照一定步长无穷逼近最优解,不过无论怎样逼近,最后得到的还是符合精度的区间,并不是理论最优解。Matlab中用minJT函数来实现。
相关的函数代码可以在matlab相关文件夹中找到,这里就不多说,不过还是按这种方法求一下上面的极小值问题。
代码如下:
syms x;
f=x^4-3*x^3+x^2-2;
[x1,x2]=minJT(f,0,0.001);
Ⅷ matlab 优化工具箱
在matlab命令窗口中输入:edit,然后将下列两行百分号之间的内容复制进去,保存。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function f=y(x)
f(1)=10-0.0116*x(2)-0.0185*x(3)-0.0194*x(5)-0.0302*x(6)-0.1013*x(8)-0.0162*x(9);
f(2)=24-0.0399*x(1)-0.02924*x(2)-0.02376*x(3)-0.0665*x(4)-0.04896*x(5)-0.03996*x(6)-0.0342*x(7)-0.0255*x(8)-0.02079*x(9);
f(3)=36.5-0.042*x(1)-0.043*x(2)-0.044*x(3)-0.07*x(4)-0.072*x(5)-0.074*x(6)-0.0365*x(7)-0.0375*x(8)-0.0385*x(9);
f(4)=350-1.176*x(1)-0.516*x(2)-0.264*x(3)-1.96*x(4)-0.864*x(5)-0.444*x(6)-1.008*x(7)-0.45*x(8)-0.231*x(9);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
返回matlab命令窗口,输入以下命令,应当就有结果了。
A=[0.042,0,0,0.07,0,0,0.0365,0,0;
0,0.043,0,0,0.072,0,0,0.0375,0;
0,0,-0.044,0,0,-0.074,0,0,-0.0385;
0,0,0.044,0,0,0.074,0,0,0.0385;
1,1,1,0,0,0,0,0,0;
0,0,0,1,1,1,0,0,0;
0,0,0,0,0,0,1,1,1];
b=[4,23,-14,16,310,310,150]';
goal=[0.001,0.001,0.001,0.001]';
weight=abs(goal);
lb=0;
x0=[10,10,10,10,10,10,10,10,10]';
x=fgoalattain('y',x0,goal,weight,A,b,[],[],lb,[]); %%不好意思我是照你写的,这里应当是y,注意函数名一般不要取这么简单的,要不然有可能跟变量名重复.
%另外matlab是不认中文符号的,你自己注意一下。
Ⅸ 如何利用matlab中的优化工具箱求解下面的问题啊各位大神帮帮忙吧!!!
2. 采用Matlab软件,利用最速下降法求解无约束优化问题
常用格式如下:
(版1)权x= fminbnd (fun,x1,x2)
(2)x= fminbnd (fun,x1,x2 ,options)
(3)[x,fval]= fminbnd(...)
(4)[x,fval,exitflag]= fminbnd(...)
(5)[x,fval,exitflag,output]= fminbnd(...)
其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。函数fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解。或者fminunc、fminsearch命令。