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 展开
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 展开
2个回答
展开全部
假设你的参数为: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)
这样就可以实现带参数求优化,我没有调试,希望对你有帮助。
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)
这样就可以实现带参数求优化,我没有调试,希望对你有帮助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询