最小化包含积分的函数

时间:2010-02-12 23:13:11

标签: math matlab simulation mathematical-optimization numerical-integration

有谁知道如何在MATLAB中最小化包含积分的函数?该函数如下所示:

L = Int(t=0,t=T)[(AR-x)dt], A is a system parameter and R and x are related through:  
dR/dt = axRY - bR, where a and b are constants.  
dY/dt = -xRY

我在某处读到了我可以组合使用fminbnd和quad但我无法使其工作。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

也许您可以提供有关积分的更多详细信息,例如[AR-x)dt]中缺少括号的位置在哪里? x是否依赖于t,还是可以将dR/dt = axR - bR整合到R=C*exp((a*x-b)*t)?在任何情况下,要在fminbndquad上回答您的问题,您可以设置A,C,T,a,b,xminxmax(最后两个是您要查看分钟的范围)并使用:

 [x fval] = fminbnd(@(x) quad(@(t)A*C*exp((a*x-b)*t)-x,0,T),xmin,xmax)

这会找到最小化积分的x

答案 1 :(得分:0)

如果我没有弄错,你会尽量减少对t的尊重:

\int_0^t{(AR-x) dt}

那么你只需找到以下零:

AR-x

这只是数学,而不是matlab;)

答案 2 :(得分:0)

这里有一些可能有用的方程式操作。

将你给出的第二个和第三个方程组合起来

dR/dt = -a*(dY/dt)-bR

现在,如果我们在右侧解决R并将其插入您给出的第一个等式中

L = Int(t=0,t=T)[(-A/b*(dR/dt + a*dY/dt) - x)dt]

现在我们可以整合第一个术语来获得:

L = -A/b*[R(T) - R(0) + Y(T) - Y(0)] - Int(t=0,t=T)[(x)dt]

所以现在关于R和Y的所有重要事项都是端点。实际上,您也可以定义一个新函数,Z等于Y + R.然后你得到

L = -A/b*[Z(T) - Z(0)] - Int(t=0,t=T)[(x)dt]

下一部分我对它没有信心.x相对于t的积分将给出一些在t = 0和t = T时计算的函数。这个函数我们将调用X给出:

L = -A/b*[Z(T) - Z(0)] - X(T) + X(0)

这个等式适用于所有T,所以如果我们愿意,我们可以将T设置为t。

L = -A/b*[Z(t) - Z(0)] - X(t) + X(0)

另外,我们可以将很多常量组合在一起并称之为C来提供

X(t) = -A/b*Z(t) + C

其中

C = A/b*Z(0) + X(0) - L

所以我不知道还有什么可以做的,但我已经证明x(t)的积分与Z(t)= R(t)+ Y(t)线性相关。在我看来,有很多方程可以解决这个问题。其他人都知道从哪里去?我的数学有什么问题吗?