用matlab求最大值

求Ca在这个区间的最大值,这个函数自己输的总是有问题... 求Ca在这个区间的最大值,这个函数自己输的总是有问题 展开
 我来答
lhmhz
高粉答主

2020-09-21 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17019

向TA提问 私信TA
展开全部

题主的求最大值问题,用matlab求解,可以这样来考虑:

第一步:自定义目标函数,fmincon_fun(x),其内容

f=。。。; %f表达式

g=。。。; %g表达式

p=。。。; %p表达式q=。。。; %q表达式

Ca=-sqrt((f^2+g^2+p^2+q^2)/2+sqrt(((f^2+g^2+p^2+q^2)/2)^2-(f*q-g*p)^2)); %注意对于最大值问题,在Ca表达式前应加负号

第二步:初定x的初值,如x0=[1.5 -3];

第三步:确定x的上下限,lb=[-pi,-pi];ub=[pi,pi];

第四步:使用fmincon函数,求解θ,ψ,即

[x,fval] = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],lb,ub);

theta=x(1),phi=x(2)

Ca=-fval

第五步:编写代码,并运行得到如下结果。

追问
初始值怎么选啊,我换不同初始值有时候结果差的挺大的
追答
用随机数作为初值,如结果比较接近实际值,把它固定下来作为初值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式