ZKX's LAB

matlab有约束非线性优化 matlab有约束的非线性优化求解代码,见图

2020-10-02知识14

matlab的有约束非线性优化问题在变量非常多的时候如何求解? matlab的优化算法应该算不了这个。只能自己去试图寻找算法了。

matlab有约束非线性优化 matlab有约束的非线性优化求解代码,见图

MATLAB做非线性约束优化时,怎么老显示这个啊? 你用的是fmincon函数吧?FMINCON函数虽然是可以解决非线性约束的问题的,但是它要求目标函数和约束函数都必须是连续的,梯度也是连续的,而且该函数是根据你给的初始值来进行梯度步长收敛的,只能收索到局部最优解。如果你给的初始值是个不可行解就很难收敛到最优解,最终出现的情况就是函数根本就不管你的上下限而给出的一个值。解决办法:利用while,利用随机搜索的方法,找到一个可行的初始解。当然这样就有一个问题。即使搜索到解,也是局限于随机搜索到的初值的解。因此当你搜索不到好的解时,建议放弃使用这个函数。利用FGOALATTAIN函数这个函数相对较好,但也存在和FMINCON类似的问题采用遗传算法这里就有必要提一下,利用他人写的工具箱始终不灵活。MATLAB自带的和设菲尔德大学的遗传算法工具箱,有时并不能满足自己的需要,相关问题我已发过帖子。这里就不说了。试验证明,利用设菲尔德大学的工具箱再自行改进下,可以很好的处理问题。希望可以解决你的问题。

matlab有约束非线性优化 matlab有约束的非线性优化求解代码,见图

matlab非线性约束优化设计-求大神指教,最好能发个源程序供参考 分析题主的链轮优化问题,其极小值问题是呼有点问题。根据机械设计理论,其极小值问题这样提出比较合理。即min P(x)=(P0*Kz*Ki*Ka*Kp)/KA%x=[x1,x2,x3,x4]式中:P0=0.04467*x(1)^1.08*(x(2)/25.4)^(3-0.028*x(2));单排链功率Ka=0.71332+0.0085*x(3)-0.001*x(3)^2/3;中心距系数KA=1.0;工况系数Kz=(x(1)/19)^1.08;小齿轮齿数系数Kp=x(4)^0.84;多排链系数Ki=0.82;传动比系数约束条件与题主相同。根据上述,可以用matlab的fmincon()最小值函数求解,得到最优解。首先、建立目标函数,fmincon_fun(x)第二,建立约束函数,fmincon_con(x)第三,用fmincon函数求解,即[x,fval,exitflag]=fmincon(@(x)fmincon_fun(x),x0,[],[],[],[],lb,ub,@(x)fmincon_con(x));求解结果x1=35%链轮齿数x2=42.644%链条节距,此处要标准来选取x3=90%链条节数x4=3%链条排数P=-25.8279%最小计算功率为25.8kW如有问题,可以私信给我。

matlab有约束非线性优化 matlab有约束的非线性优化求解代码,见图

#matlab#非线性#fmincon#matlab函数#matlab矩阵

随机阅读

qrcode
访问手机版