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

G(x,i)=∑cos(x+i*b),(i=0,1,...),b=5/i,G≤1.5,求D(i)=int(G(x,i),'x',0,h)最小时的i值... G(x,i)=∑cos(x+i*b),(i=0,1,...),b=5/i,G≤1.5,求D(i)=int(G(x,i),'x',0,h)最小时的i值 展开
 我来答
lhmhz
高粉答主

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

向TA提问 私信TA
展开全部

如何用matlab已知约束条件求自变量范围,解决思路:①利用for循环语句,②利用fmincon非线性规划极值函数

实现主要代码:

1、建立自定义目标函数,myfun(k),其内容

G=0;

for i=1:n

syms x

b=5/i;

G=G+cos(x+i*b);

D=int(G,'x',0,h);

end

2、建立自定义约束函数,mycon(k),其内容

G=0;

for i=1:n

syms x

b=5/i;

G=G+cos(x+i*b);

D=vpa(int(G,'x',0,h));

end

c=1.5-D;

3、利用fmincon函数求最小值D(i),其内容

x0=10;

A=[];b=[];Aeq=[];beq=[];VLB=[];VUB=[];

[k,fval,exitflag]=fmincon(@(k)myfun(k),x0,A,b,Aeq,beq,VLB,VUB,@(k)mycon(k))

TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式