ZKX's LAB

用MATLAB解下这几题(附上程序编程): 求下列函数的极小值点: 如何用matlab求约束极小值

2021-03-07知识5

一个简单的matlab问题,fmincon优化,例如求以下这个函数f=(x(1)-2).^2+(x(2)-3).^2+26的极小值,如果对自变量加上约束条件:3最好给出具体的命令、方法。

matlab遗传算法求函数极小值!!!急!! 如果没有其他约束条件,直接用ga求解:fi=inline('-2.113-0.1326*x(1)+10.49*x(2)+0.1505*x(1)^2-2.924*x(1)*x(2)+10.11*x(2)^2','x');ga(fi,2,[],[],[],[],[0 18],[0.1 36])Optimization terminated:average change in the fitness value less than options.TolFun.ans=0.1000 18.0000即最小值在x=0.1、y=18处。直接画出函数的图像来,可以验证结论的正确性:ezmesh('-2.113-0.1326*x+10.49*y+0.1505*x^2-2.924*x*y+10.11*y^2',[0 0.1],[18 36])另外,从图中注意到,x 对f(x,y)的影响不大,但如果我们取y=18,画出f(x,18)的函数图像来:syms x yf=-2.113-0.1326*x+10.49*y+0.1505*x^2-2.924*x*y+10.11*y^2;y=18;ezplot(subs(f),[0 0.1])可见,尽管x对f的影响比较小,但函数值还是随着x增大而减小的。综上分析,ga的计算结果是正确的。至于你之前说到的约束条件y=31.1688*exp(-0.755*x)如果画去曲线来:ezplot('31.1688*exp(-0.755*x)',[0 0.1])可以看到,y在18-36的范围内,倒是和你给的范围不矛盾(但应该更小一些才对)。

MATLAB学习与使用:求函数的极大值与极小值

用MATLAB解下这几题(附上程序编程): 求下列函数的极小值点: 如何用matlab求约束极小值

怎样在Matlab中求函数的极大值 %by dynamic of Matlab技术论坛see also http://www.matlabsky.comcontact me matlabsky@gmail.com2010-02-28 14:06:18syms xy=x*sin(x);dy=diff(y);一阶导数d2y=diff(dy);二阶导数x1=double(solve(dy));找出导数为0的点,就是极点x2=subs(d2y,x1)如果一阶导数为零,二阶导数小于零,则为极大点x1(x2)

#如何用matlab求约束极小值

随机阅读

qrcode
访问手机版