matlab画三元隐函数,用MATLAB求三元函数的最小值肿么编程

例1 求 f = 2 在0

主程序为wliti1.m:

f='2*exp(-x).*sin(x)';

fplot(f,[0,8]); %作图语句

[xmin,ymin]=fminbnd (f, 0,8)

f1='-2*exp(-x).*sin(x)';

[xmax,ymax]=fminbnd (f1, 0,8)

运行结果:

xmin = 3.9270 ymin = -0.0279

xmax = 0.7854 ymax = 0.6448

★(借助课件说明过程、作函数的图形)

例2 对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?

设剪去的正方形的边长为x,则水槽的容积为: ,建立无约束优化模型为:min y=- , 0

先编写M文件fun0.m如下:

function f=fun0(x)

f=-(3-2*x).^2*x;

主程序为wliti2.m:

[x,fval]=fminbnd('fun0',0,1.5);

xmax=x

fmax=-fval

运算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.

★(借助课件说明过程、作函数的图形、并编制计算程序)

例3

1、编写M-文件 fun1.m:

function f = fun1 (x)

f = exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

2、输入M文件wliti3.m如下:

x0 = [-1, 1];

x=fminunc(‘fun1’,x0);

y=fun1(x)

3、运行结果:

x= 0.5000 -1.0000

y = 1.3029e-10

★(借助课件说明过程、作函数的图形并编制计算程序)

例4 Rosenbrock 函数 f(x1,x2)=100(x2-x12)2+(1-x1)2 的最优解(极小)为x*=(1,1),极小值为f*=0.试用不同算法(搜索方向和步长搜索)求数值最优解.初值选为x0=(-1.2 , 2).

为获得直观认识,先画出Rosenbrock 函数的三维图形, 输入以下命令:

[x,y]=meshgrid(-2:0.1:2,-1:0.1:3);

z=100*(y-x.^2).^2+(1-x).^2;

mesh(x,y,z)

画出Rosenbrock 函数的等高线图,输入命令:

contour(x,y,z,20)

hold on

plot(-1.2,2,' o ');

text(-1.2,2,'start point')

plot(1,1,'o')

text(1,1,'solution')

f='100*(x(2)-x(1)^2)^2+(1-x(1))^2';

[x,fval,exitflag,output]=fminsearch(f, [-1.2 2])

运行结果:

x =1.0000 1.0000

fval =1.9151e-010

exitflag = 1

output =

iterations: 108

funcCount: 202

algorithm: 'Nelder-Mead simplex direct search'

★(借助课件说明过程、作函数的图形并编制计算程序)

(五)、 作业

陈酒出售的最佳时机问题

某酒厂有批新酿的好酒,如果现在就出售,可得总收入R0=50万元(人民币),如果窖藏起来待来日(第n年)按陈酒价格出售,第n年末可得总收入 (万元),而银行利率为r=0.05,试分析这批好酒窖藏多少年后出售可使总收入的现值最大. (假设现有资金X万元,将其存入银行,到第n年时增值为R(n)万元,则称X为R(n)的现值.)并填下表:

取消

评论

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值