有谁知道如何在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但我无法使其工作。有什么建议吗?
答案 0 :(得分:0)
也许您可以提供有关积分的更多详细信息,例如[AR-x)dt]
中缺少括号的位置在哪里? x
是否依赖于t
,还是可以将dR/dt = axR - bR
整合到R=C*exp((a*x-b)*t)
?在任何情况下,要在fminbnd
和quad
上回答您的问题,您可以设置A,C,T,a,b,xmin
和xmax
(最后两个是您要查看分钟的范围)并使用:
[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)线性相关。在我看来,有很多方程可以解决这个问题。其他人都知道从哪里去?我的数学有什么问题吗?