2

以下に示すように統合を実行したいと考えています。

補間関数内で積分変数 'u' を使用しているため、エラーに直面しています。(補間関数内の 'u' を何らかの定数で置き換えると、積分は正常に実行されます。)

>>syms u
>>double(int(2*interp1(x,y,u),u,0,0.1))
   Error using interp1>Interp1D (line 330)
   Inputs must be floats, namely single or double.
    Error in interp1 (line 220)
    Vq = Interp1D(X,V,Xq,method);

それを修正するためのいくつかの指針を提供してください。

PS: 明確にするために、y=f(x) [区分関数] です。これが、中間値を決定するために補間する理由です。

どうもありがとう !!

4

2 に答える 2

1

より単純な統合ルーチンに置き換えint、syms を忘れる必要があります。ビルドインを試すintegrateか、https://ece.uwaterloo.ca/~dwharder/NumericalAnalysis/13Integration/romberg/matlab.html

または、 の代替を見つけて、そのサブインターバルごとにinterp1呼び出すこともできます。int

于 2013-12-01T07:44:28.433 に答える
0

助けてくれてありがとう、私は、シンボリックな整数ではなく、integral() が問題を解決することを理解しました。どうもありがとう !!

于 2013-12-01T15:57:22.397 に答える