最大化几个变量的功能

时间:2016-10-07 16:32:19

标签: matlab constraints mathematical-optimization

作为学校项目的一部分,我想在区间0(<)t1 + t2 + t3(< =)120上最大化三个变量t1,t2,t3的相当复杂的函数F.由于函数的复杂性,我想根据t1,t2,t3和三个其他参数x1,x2,x3来定义参数a,b,c,这些参数也是t1,t2,t3 。函数F应该用x1,x2,x3,a,b,c,t1,t2,t3来表示。有一种直截了当的方法吗?我还没有完成所有的代数,但我想它的完整形式的函数将是一个度数为15的多项式。我是Matlab的新手,所以请说清楚。我非常感谢任何帮助。

代码具有以下形式:

x1=f(t1)

x2=f(t2)

x3=f(t3)

[在代码f中写为数学表达式;没有声明任何功能。此外,它们每个都包含不同的常量,但形式相同]

a=g(x1)

b=h(x2,a)

c=i(x3,b,a)

同样,g,h和i指的是写入代码的数学表达式。没有声明任何功能。

现在我想要优化的功能有这样的形式:

F(t1,t2,t3,a,b,c,),其实际上是F(t1,t2,t3),因为(a,b,c)本身是t1,t2,t3的函数。我想在区间0(<)t1 + t2 + t3(< =)120上优化函数。

2 个答案:

答案 0 :(得分:0)

我想看一个例子,但你可以使用三个数组。 t,a,x类似函数的参数。

答案 1 :(得分:0)

一些注意事项:

  1. 只需在评估函数中使用局部变量。
  2. 如果求解器可以使用它们,则提供渐变。
  3. 经常围绕很多程度摆动的多项式。它们会给求解器带来很多麻烦。