2

有谁知道如何在 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,但我无法使其工作。有什么建议么?

4

3 回答 3

0

也许您可以提供更多积分的详细信息,例如缺少的括号在[AR-x)dt]哪里?是否有任何依赖xt或者我们可以整合dR/dt = axR - bR给予R=C*exp((a*x-b)*t)fminbnd在任何情况下,要在and上回答您的问题quad,您可以设置A,C,T,a,b,xminand xmax(最后两个是您要查找最小值的范围)并使用:

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

这发现x使积分最小化。

于 2010-02-12T23:29:23.543 回答
0

如果我没有弄错,您正在尝试尽量减少对 t 的尊重:

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

那么你只需要找到零点:

AR-x

这只是数学,不是 matlab ;)

于 2010-02-12T23:29:36.990 回答
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) 线性相关。在我看来,有很多方程可以解决这个问题。其他人看到从这里去哪里?我的数学有问题吗?

于 2010-02-15T07:29:39.027 回答