方程求解极值优化问题.docx

上传人:b****2 文档编号:12887900 上传时间:2023-04-22 格式:DOCX 页数:10 大小:37.20KB
下载 相关 举报
方程求解极值优化问题.docx_第1页
第1页 / 共10页
方程求解极值优化问题.docx_第2页
第2页 / 共10页
方程求解极值优化问题.docx_第3页
第3页 / 共10页
方程求解极值优化问题.docx_第4页
第4页 / 共10页
方程求解极值优化问题.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

方程求解极值优化问题.docx

《方程求解极值优化问题.docx》由会员分享,可在线阅读,更多相关《方程求解极值优化问题.docx(10页珍藏版)》请在冰豆网上搜索。

方程求解极值优化问题.docx

方程求解极值优化问题

 

问题1:

(约束非线性)

求:

在区间[2,5]间的最小值;在区间[0,3]间的最大值。

程序:

fn='2*exp(-x)*sin(x)';

[xmin,fmin]=fminbnd(fn,2,5)

fm='-2*exp(-x)*sin(x)';

[xmax,fmax]=fminbnd(fm,0,3)

结果:

xmin=3.9270

fmin=-0.0279

xmax=0.7854

fmax=-0.6448

 

语法:

x=fminbnd(fun,x1,x2)

x=fminbnd(fun,x1,x2,options)

x=fminbnd(fun,x1,x2,options,P1,P2,……)

[x,fval]=fminbnd(……)

[x,fval,exitflag]=fminbnd(……)

[x,fval,exitflag,output]=fminbnd(……)

含义:

x:

设计变量

fun:

目标函数

x1,x2:

设置设计变量给定区间的上下界值

fval:

返回目标函数在最优解x点的函数值

exitglag:

返回算法的终止标志

output:

返回优化算法信息的一个数据结构

问题2:

求解无约束条件下多变量函数的最小值,fminsearch函数和fminunc函数相同。

求函数

的最小值

程序:

%f(x)的myfun41.m文件

functionf=myfun41(x)

f=3*x

(1)^2+2*x

(1)*x

(2)+x

(2)^2;

%调用函数fminunc,myh41.m

%起始点

x0=[11]

[x,fval]=fminunc(@myfun41,x0)

结果:

Optimizationterminatedsuccessfully:

Searchdirectionlessthan2*options.TolX

x=

1.0e-008*

-0.75120.2479

fval=

1.3818e-016

问题3:

求函数

的最小值

程序:

%f(x)的.m文件myfun42.m

functionf=myfun42(x)

f=sin(x)+3;

%调用函数fminsearch,myh42.m

%起始点

x0=2;

[x,fval]=fminsearch(@myfun42,x0)

结果:

x=

4.7124

fval=

2.0000

语法:

x=fminserach(fun,x0)

x=fminserach(fun,x0,options)

x=fminserach(fun,x0,options,P1,P2,…)

[x,fval]=fminserach(…)

[x,fval,exitflag]=fminserach(…)

[x,fval,exitflag,output]=fminserach(…)

x=fminunc(fun,x0)

x=fminuvc(fun,x0,options)

x=fminunc(fun,x0,options,P1,P2,…)

[x,fval]=fminunc(…)

[x,fval,exitflag]=fminunc(…)

[x,fval,exitflag,output]=fminunc(…)

[x,fval,exitflag,output,grad]=fminunc(…)

[x,fval,exitflag,output,grad,hessian]=fminunc(…)

 

问题4:

优化工具箱中其他函数:

方程求解函数

1、fsolve函数:

求解非线性方程(计算零点)

语法:

x=fsolve(fun,x0)

x=fsolve(fun,x0,options)

x=fsolve(fun,x0,options,P1,P2,…)

[x,fval]=fsolve(…)

[x,fval,exitflag]=fsolve(…)

[x,fval,exitflag,output]=fsolve(…)

[x,fval,exitflag,output,jacobian]=fsolve(…)

求解方程组:

取x0=[-5,–5]

即求解:

的零点

%程序myfun71.m

functionf=myfun71(x)

f=[2*x

(1)-x

(2)-exp(-x

(1));-x

(1)+2*x

(2)-exp(-x

(2))];

%程序myh71.m

x0=[-5;-5];

options=optimset(‘Display’,’iter’);

[x,fval]=fsolve(@fun71,x0,options)

结果:

x=

0.5671

0.5671

fval=

1.0e-006*

-0.4059

-0.4059

2、fzero函数:

求解单变量连续函数的零点

已知:

f(x),求f(x)=0的根。

语法:

x=fzero(fun,x0)

x=fzero(fun,x0,options)

x=fzero(fun,x0,options,P1,P2,…)

[x,fval]=fzero(…)

[x,fval,exitflag]=fzero(…)

[x,fval,exitflag,output]=fzero(…)

3、求解函数:

在x=2附近的零点。

%程序myfun72.m

functionf=myfun72(x)

f=x.^3-2*x-5;

%程序myh72.m

z=fzero(@myfun72,2)

结果:

z=

2.0946

问题5:

(线性规划,有约束等式不等式):

某车间有甲乙两台机床,可用于加工三种工件,这两台机床的可用台时数分别为700和800,三种工件的数量分别为300、500和400,已知机床加工情况如下表:

 

问如何分配机床的加工任务,才能既满足加工工件的要求,又使总加工费用最低?

解:

设在甲机床上加工工件1、2和3的数量分别是x1、x2和x3,在乙机床上加工工件1、2和3的数量分别是x4、x5和x6,根据条件可建立数学模型:

 

程序:

f=[13;9;10;11;12;8];

A=[0.41.11000

0000.51.21.3];

b=[700;800];

aeq=[100100

010010

001001];

beq=[300500400];

lb=zeros(6,1);

[x,fval,exitflag]=linprog(f,A,b,aeq,beq,lb)

运行结果:

x=

0.0000

500.0000

0.0000

300.0000

0.0000

400.0000

fval=

1.1000e+004

exitflag=

1

即:

在甲机床上加工500个工件2,在乙机床上加工300个工件1,加工400个工件3,可在满足条件情况下使总加工费用最小,为11000元。

且收敛正常。

语法:

x=linprog(f,A,b,aeq,beq)

x=linprog(f,A,b,aeq,beq,lb,ub)

x=linprog(f,A,b,aeq,beq,lb,ub,x0)

x=linprog(f,A,b,aeq,beq,lb,ub,x0,options)

[x,fval]=linprog(……)

[x,fval,exitflag]=linprog(……)

[x,fval,exitflag,output]=linprog(……)

[x,fval,exitflag,output,lambda]=linprog(……)

含义:

x:

设计变量

f:

目标函数的系数矩阵

A:

不等式约束的系数矩阵

b:

不等式约束值的列向量

Aeq:

等式约束的系数矩阵

Beq:

等式约束值的列向量

lb,ub:

设计向量的上下界值

fval:

返回目标函数在最优解x点的函数值

exitglag:

返回算法的终止标志

output:

返回优化算法信息的一个数据结构

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1