数値積分を行う上でIntegralの扱い方
    조회 수: 15 (최근 30일)
  
       이전 댓글 표시
    

上記の積分を実行しようと考えsをi*2*pi*xとしてintegralを用い、以下のコードを作成いたしました。
    Sp=2^17;            %サンプル点数
    Ts=1;               %サンプリング周期
    OSR=16;             %オーバーサンプリングレーシオ
    fb=(1/Ts)/(2*OSR);
    A=0.8;
    k1=1;
    k2=1;
    k3=1;
    Q=abs(1/(4*sqrt(12)))^2;
    ntf = @(x) abs(((1i*2*pi*x).^3)/((1i*2*pi*x).^3+k1*(1i*2*pi*x).^2+k2*(1i*2*pi*x)+k3)).^2;
    q = integral(ntf,0,fb);
コードを実行したところ
エラー: integralCalc/finalInputChecks (line 515)
関数の出力は、入力と同じサイズでなければなりません。FUN が配列値の被積分関数である場合は、'ArrayValued' オプションを true に設定してください。
エラー: integralCalc/iterateScalarValued (line 315)
                finalInputChecks(x,fx);
エラー: integralCalc/vadapt (line 132)
            [q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
エラー: integralCalc (line 75)
        [q,errbnd] = vadapt(@AtoBInvTransform,interval);
エラー: integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
エラー: ideal_snr (line 15)
q = integral(ntf,0,fb);
といったエラーが発生してしまったのですが、エラーの意味がよく分からず困っています。
これはどういった問題でエラーが発生しているのでしょうか。
댓글 수: 0
채택된 답변
  Teja Muppirala
    
 2017년 10월 24일
        割り算のところで / を使っていますが、それに点をつけて  ./  にする必要があります。
ntf = @(x) abs(((1i*2*pi*x).^3)./((1i*2*pi*x).^3+k1*(1i*2*pi*x).^2+k2*(1i*2*pi*x)+k3)).^2;
q = integral(ntf,0,fb);
そうすると:
  q =
   2.6399e-07
割り算のところで / を使ってしまうと、行列の割り算になります:
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
