matlab如何求解带参数的非线性规划

例如,maxz=2*x1+3*x2+5*x3x1^2+x2^2+x3^2=10<=x1,x2,x3<=1可以求解如下:nonlfun.mfunctionf=nonlfun... 例如,max z=2*x1+3*x2+5*x3
x1^2+x2^2+x3^2=1
0<= x1, x2, x3<=1
可以求解如下:
nonlfun.m
function f=nonlfun(x)
f=-2*x(1) -3* x(2) -5* x(3);
nonlcon.m
function [c,ceq]=nonlcon (x)
ceq=[x(1)^2+ x(2)^2+x(3)^2-1];
c=[];
[x,fval]=fmincon(@nonlfun,[1,1,1],[],[],[],[],[0,0,0],[1,1,1], @nonlcon)

但是如果目标函数是带参数的,例如fun=CX,C为1*n矩阵,n的大小不确定,应该怎么求解呢?请高手赐教!
例如:C为m*n参数矩阵(m,n大小不确定),例如C为2*4矩阵 [1 2 3 4;5 6 7 8] ;我要分别求解
max(x1+2*x2+3*x3+4*x4),
max(5*x1+6*x2+7*x3+8*x4),
约束均为
x1^2+x2^2+x3^2+x4^2=1
0<= x1, x2, x3,x4<=1
若C为1*5矩阵 C=[3,4,5,6,7],就要求解
max(3*x1+4*x2+5*x3+6*x4+7*x5),
约束均为
x1^2+x2^2+x3^2+x4^2+x5^2=1
0<= x1, x2, x3,x4,x5<=1
展开
 我来答
frmluck
2010-10-11 · TA获得超过196个赞
知道小有建树答主
回答量:76
采纳率:0%
帮助的人:108万
展开全部
假设你的参数为:C,其声明和调用方法如下
nonlfun.m
function f=nonlfun(x,C)
f=-2*x(1) -3* x(2) -5* x(3);
nonlcon.m
function [c,ceq]=nonlcon (x,C)
ceq=[x(1)^2+ x(2)^2+x(3)^2-1];
c=[];
[x,fval]=fmincon(@nonlfun,[1,1,1],[],[],[],[],[0,0,0],[1,1,1], @nonlcon,C)
这样就可以实现带参数求优化,我没有调试,希望对你有帮助。
成百家之言
2010-10-11 · TA获得超过409个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:162万
展开全部
你把那个参数设个步长,之后用for循环,一个个试就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式