matlab已知约束条件求自变量范围

G(x,i)=∑cos(x+i*b),-π/2≤x≤π/2,(i=0,1,...,n),b=5/n,G≤1.5,求G的方差最小时的n,b的值... G(x,i)=∑cos(x+i*b),-π/2≤x≤π/2,(i=0,1,...,n),b=5/n,G≤1.5,求G的方差最小时的n,b的值 展开
 我来答
lhmhz
高粉答主

2020-03-11 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16992

向TA提问 私信TA
展开全部

题主给出的问题是G=Σcos(x+i*b)≤1.5,且G的方差最小时的n、b值。该问题属于最小值问题,最小值问题可以使用fmincon非线性规划函数求解。求解步骤可以按分五步来做:

第一步:根据G=Σcos(x+i*b)方程,建立目标函数,且为最小。即 min G

建立目标函数的关键是,使用for循环语句求解G(i)=Σcos(x+i*b),然后用var函数求出G(i)的方差

第二步:根据G≤1.5条件,建立约束函数。建立约束函数的关键是,使用for循环语句求解G(i)=Σcos(x+i*b),使得ΣG(i)≤1.5

第三步:根据 -π/2≤x ≤ π/2 和 n>1,确定x、n的上限和下限值。即VLB=[1,-pi/2],VUB=[100,pi/2]

第四步:使用fmincon函数求出k值(x、n的值)。即[k,fval,exitflag]=fmincon(@(k)myfun(k),x0,[],[],[],[],VLB,VUB,@(k)mycon(k))

第五步:也就是最关键的一步。验证,求出的x、n值,是否满足G≤1.5

按照上述步骤要求,进行编程后运行可得如下结果。

n=3,b=1.6667,G=0.12908≤1.5

更多追问追答
追问
完整的代码能上传一下吗,我有几个地方好像编的不太对,麻烦您了
追答
可以的,发私信里。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式