【发布时间】:2017-11-25 14:52:06
【问题描述】:
我想使用动态编程来编程解决线性程序。
假设我的目标函数中有 3 个变量。然后我想一次考虑每个变量,并通过使用fminsearch 或其他东西找到最佳值。
现在我的代码有三个不同的匿名函数来解决每个变量。我想循环执行此操作,以提高效率。如何在循环中使用匿名函数?
Func1 = @(x) 2*x(1)
Func2 = @(y) 3*y(1)
Func3 = @(z) 4*z(1)
我想做这样的事情:
Func(i) = @(x(i)) k(i)*x(i)
示例:
max z = 3x1+5x2
s.t.
x1 <=4
2x2 <=12
3x1 + 2x2 <=18
x1>=0
x2>=0
到目前为止我尝试了什么:
func1 = @(x) -3*x(1);
[x1,minZ] = fmincon(func1,x0,A,b,[],[],lb,ub,[],options)
func2 = @(x) -5*x(1)-3*x1; %substituting from previous solution for x1...
[x2,minZ] = fmincon(func2,x0,A2,b2,[],[],lb2,ub2,[],options)
【问题讨论】:
标签: matlab loops for-loop dynamic anonymous-function