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

役立つ可能性のある方程式の操作を次に示します。

あなたが与えた2番目と3番目の方程式を組み合わせると、

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 に関して重要なのはエンドポイントだけです。実際、Y + R に等しい新しい関数 Z を定義することもできます。

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

この次の部分はあまり自信がありません。t に関する x の積分は、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 に答える
0

おそらく、積分の詳細を教えてください。たとえば、欠落しているブラケットはどこにあり[AR-x)dt]ますか? xへの依存はありますかt、それとも統合dR/dt = axR - bRして を与えることができR=C*exp((a*x-b)*t)ますか? いずれにせよ、 and に関する質問に答えるには、fminbndandquadを設定A,C,T,a,b,xminしてxmax(最後の 2 つは最小値を探したい範囲です)、次を使用できます。

 [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 に答える