MATLAB求二元二次函数的极值问题 100

d=5;beta=0.23;是这么一个式子,求它的最大值。已经画出了函数图,应该是在(0,0),(0,d),(d,0),(d,d)四个点取得最大值。现在需要借助MATLA... d=5;beta=0.23;

是这么一个式子,求它的最大值。
已经画出了函数图,应该是在(0,0),(0,d),(d,0),(d,d)四个点取得最大值。
现在需要借助MATLAB进行理论证明,比如,计算下来发现是在这几个点处取得极值。
之前在百度上看到有人用fmincon函数求解二元二次函数最小值,我套用了自己的公式求解,得到了一组解(0,d),但是这个是求最小值函数,所以应该不对。求大神帮忙解决。
代码如下,可直接运行:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
beta=0.23;
d=5;
f=@(x)(-1/((sqrt(x(1)^2+x(2)^2)+beta)^2)+1/(sqrt((d-x(1))^2+x(2)^2)+beta)^2+1/(sqrt((d-x(1))^2+(d-x(2))^2)+beta)^2+1/(sqrt(x(1)^2+(d-x(2))^2)+beta)^2);
xm=[0;5];
xM=[0;5];
[x,fval]=fmincon(f,[3;5],[],[],[],[],xm,xM)
补充一下,x和y的取值范围都是[0,5]。
展开
 我来答
碧血玉叶花
2015-06-03 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1636万
展开全部
clear; 
syms x y;
z=f(x);
eq1=diff(z,x);
eq2=diff(z,y);
[x,y]=solve(eq1,eq2,'x','y');
x=double(x);
y=double(y);
这样就求得驻点了
A=diff(z,x,2);
B=diff(diff(z,x),y);
C=diff(z,y,2);


再求二阶偏导,再根据判别法判断上面的驻点是否为极点

追问
我用了你的代码试了下,提示出错,最后没有得到结果,貌似是这种方法的运算量太大,因为之前也尝试过,也是运行很长时间无果。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式