首页 > 其他 > 详细

【MATLAB建模学习实录【二】】非线性规划函数模型板子

时间:2020-08-15 15:51:04      阅读:60      评论:0      收藏:0      [点我收藏+]

可以通过判断正定矩阵的方式来求解多元函数的极值点问题

下面以二元函数为例:

代码模板如下:

 1 clc,clear
 2 syms x y
 3 f=x^3-y^3+3*x^2+3*y^2-9*x;
 4 df=jacobian(f);%求导
 5 d2f=jacobian(df);%二阶导雅阁比行列式
 6 [xx,yy]=solve(df);%求驻点
 7 xx=double(xx);yy=double(yy);%化为double数组形式,用来进行运算
 8 for i = 1:length(xx)%遍历每个驻点
 9     ff=subs(f,{x,y},{xx(i),yy(i)});%球对应函数值
10     ff=double(ff);
11     a=subs(d2f,{x,y},{xx(i),yy(i)});%求特征值,如果所有特征值大于0为正定矩阵,都小于0为负定阵
12     b=eig(a);
13     if(all(b>0)) 
14         fprintf((%f,%f)是极小值点,对应极小值为%f\n,xx(i),yy(i),ff);
15     elseif (all(b<0))
16         fprintf((%f,%f)是极大值点,对应极大值为%f\n,xx(i),yy(i),ff);
17     elseif (any(b>0)&any(b<0))
18         fprintf((%f,%f)不是极值点\n,xx(i),yy(i));
19     else
20         fprintf((%f,%f)无法判断,xx(i),yy(i));
21     end
22 end

 

【MATLAB建模学习实录【二】】非线性规划函数模型板子

原文:https://www.cnblogs.com/BeyondW/p/13508796.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!