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的值
展开
1个回答
展开全部
题主给出的问题是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
更多追问追答
追问
完整的代码能上传一下吗,我有几个地方好像编的不太对,麻烦您了
追答
可以的,发私信里。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询