选址问题matlab,MATLAB 选址问题.ppt

MATLAB 选址问题

实验 实验项目: 选址问题 一、实验目的 学会用matlab解决非线性规划问题 二、实验内容及要求 建立xuanzhi.m文件 function z=d(x) a=[2.3 4.6 4.9 6.1 7.6 8.9 9.5]; b=[8.2 7.4 6.2 4.4 9.2 7.9 0.2]; c=[5 6 3 1 3 7 2]; z=sum(c.*sqrt((x(1)-a).^2+(x(2)-b).^2)); 命令窗口输入 [x,val,h]=fminsearch(@xuanzhi,[5,5]) 散点图程序: a=[2.3 4.6 4.9 6.1 7.6 8.9 9.5]; b=[8.2 7.4 6.2 4.4 9.2 7.9 0.2]; plot(a,b,’bo',x(1),x(2),'r*') 散点图: 6.8选址问题 6.8.1非线性规划 6.8.2多元函数求最小值 定义 如果目标函数或约束条件中至少有一个是非线性函数时的最优化问题就叫做非线性规划问题. 非现性规划的基本概念 一般形式: (1) 其中 , 是定义在 En 上的实值函数,简记: 其它情况: 求目标函数的最大值或约束条件为小于等于零的情况,都可通过取其相反数化为上述一般形式. 非线性规划问题 有约束的一元函数的最小值 单变量函数求最小值的标准形式为 : sub.to 函数 fminbnd 格式: [x,fval,flag,output]=fminbnd(fun,x1,x2,options) 说明:返回自变量x在区间 上函数fun取最小值时x值,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄. 例 计算下面函数在区间(0,1)内的最小值. 解:>>[x,fval,flag]=fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1) 结果为: x = 0.5223 fval = 0.3974 flag = 1 例 在[0,5]上求下面函数的最小值 解:先自定义函数:在MATLAB编辑器中建立M文件为: function f = myfun(x) f = (x-3).^2 - 1; 保存为myfun.m,然后在命令窗口键入命令: >> x=fminbnd(@myfun,0,5) 则结果显示为: x = 3 无约束多元函数最小值 命令 利用函数fminsearch求无约束多元函数最小值 多元函数最小值的标准形式为 其中:x为向量,如 函数 fminsearch 格式 [x,fval,flag]=fminsearch(fun,x0,options) 说明:x0为初始点,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄. 注意:fminsearch采用了Nelder-Mead型简单搜寻法。 例 求 的最小值点. 解: >>X=fminsearch('2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2', [0,0]) 结果为 X = 1.0016 0.8335 或在MATLAB编辑器中建立函数文件 function f=myfun(x) f=2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2; 保存为myfun.m,在命令窗口键入 >> X=fminsearch ('myfun', [0,0]) 或 >> X=fminsearch(@myfun, [0,0]) 结果为: X = 1.0016 0.8335 命令 利用函数fminunc求多变量无约束函数最小值 函数 fminunc 格式 [x,fval,flag,output,grad,hessian]= fminunc(fun,x0,options) 说明:函数 fminunc 返回给定初始点x0的最小函数值点,其中grad为函数在解x处的梯度值 ,目标函数在解x处的海赛(Hessian)值. 注意:当函数的阶数大于2时,使用fminunc比fminsearch更有效,但当所选函数高度不连续时,使用fminsearch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值