用matlab求最大值,如问题补充所述,这样的约束条件下,程序怎么写?

s=1/2x(1)•x(2)•sin(a),其中s为三角形的面积。st: x(1)^2+x(2)^2-L^2=2*x(1)*x(2)*cos(a),x(1)>0,x(2)>0,其中L和a假定是常量

第1个回答  2012-07-26
提供以下思路吧,具体还要你自己去查资料写程序了。
1、L和a的值,比较好搞定,用L=input('请输入L的值');通过键盘输入来赋值。
2、首先要解x(1)^2+x(2)^2-L^2=2*x(1)*x(2)*cos(a)这个一元二次方程,有无数个解。那么请查询matlab里面相关的命令。
3、其次,在得到的解里面选出大于0的解。
4、最后通过关系式s=1/2x(1)•x(2)•sin(a)赋值给s形成向量。用最大值命令找到s里面的最大值。追问

那个,我查了下貌似可以用fmincon,但是等式条件我不会用,您能另外再告诉我下这个当有等式约束的时候怎么用吗?谢谢了

追答

我没有用过哦。我先查下资料。