が見えます。
ezsurf
の機能は、どのように動作するかを知るために表示されます。
だから、1をヒント、値が負の値になるだろうということですそれがどのくらいの近似値を確認するために、小さな範囲にわたって統合することができます。
integral2(fun,-100,100,0,100)
%ans =
% -5.9050e+04
関数がゼロになると仮定すると、最終値は近傍にあるはずです。
は今2ヒント:
integral2(fun,-1000,1000,0,100)
%ans =
% -2.5613e-29
これは、積分は基本的にゼロになった限度の範囲を増やすことで、あまり意味がありません。確認後、documentation of integral2
「方法」 - 統合方法 「自動」(デフォルト)| | '反復'
統合メソッドは、 'メソッド'と下記のメソッドの1つからなるコンマ区切りのペアとして指定されます。ほとんどの場合
統合方法説明
「オート」、integral2は「タイル張り」メソッドを使用しています。積分限界のいずれかが無限である場合、「反復」法を使用します。これがデフォルトの方法です。
「タイル」インテグラル2は、積分領域を矩形に変換し、必要に応じてより小さな矩形領域に細分します。積分限界は有限でなければならない。
'iterated' integral2は積分を呼び出して反復積分を実行します。外側の積分は、xmin≦x≦xmaxで評価されます。内部積分は、ymin(x)≦y≦ymax(x)で評価されます。積分限界は無限になります。
だから、メソッドを定義しないと、限界が有限であれば "タイル"を、有限であれば "補間"を使用します。
範囲が大きすぎると、「タイル」メソッドで作成されたタイルが大きすぎて積分を正確に計算できないことがありますか?それは、その問題を持つべきではない、のは
integral2(fun,-1000,1000,0,100,'Method','iterated')
%ans =
% -5.9050e+04
興味深いをチェックしてみましょう「反復」の場合であれば、我々は何かにあるように、見えます。元の問題を試してみましょう
integral2(fun,-1000,1000,0,inf)
%ans =
% -5.9616e+04
integral2(fun,-1000,1000,0,10^9,'Method','tiled')
%ans =
% -2.1502e-33
integral2(fun,-1000,1000,0,10^9,'Method','iterated')
%ans =
% -5.9616e+04
integral2(fun,-1000,1000,10^9,inf)
%ans =
% 0
これは良く見えます。だから、そのタイル張りのメソッドは、その特性と限界の範囲のサイズのため、あなたの関数の問題であるように見えます。だから、あなたが 'iterated'を使う限り、あなたは大丈夫でしょう。
コードを入力してください。 – obchardon
これはプログラミングの質問であるかどうかはわかりません。数値/数学の問題によく似ています。 – MSalters
@obchardon上記のように関数を宣言し、a、bを適切な極値で 'integral2(-1000,1000、a、b)'と入力しました。 –