は、関心のある関数の関数ハンドラである:1 /(√x・(x + 1))の積分を数値的に計算する方法。
fun = @(x) 1/(sqrt(x) * (x + 1));
q = integral(fun, 0, inf)
しかし、私は次のエラーを得た:
Error using *
Inner matrix dimensions must agree.
私はこの問題を解決するにはどうすればよいですか?
は、関心のある関数の関数ハンドラである:1 /(√x・(x + 1))の積分を数値的に計算する方法。
fun = @(x) 1/(sqrt(x) * (x + 1));
q = integral(fun, 0, inf)
しかし、私は次のエラーを得た:
Error using *
Inner matrix dimensions must agree.
私はこの問題を解決するにはどうすればよいですか?
マトリックス操作ではなく要素ごとの操作を定義するには、.
ピリオドを使用する必要があります。これは、integral
機能入力に必要です。
あなたの関数は、すべての要素単位.
タイプの機能を概説し、興味のある
q = integral(fun,0,inf)
q =
3.1416
行列演算対アレイ上のこの概要記事を与える
fun = @(x) 1./(sqrt(x).*(x+1));
でなければなりません。 https://www.mathworks.com/help/matlab/ref/rdivide.html
あなたはまた、[厳密解](https://www.wolframalpha.comを使用することができ、https://www.mathworks.com/help/matlab/ref/times.html: https://uk.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html
具体的には、あなたのアイデアを与えるためにmultplicationと右アレイ部門でこれらのヘルプ記事を参照してください。 /入力/Σi=積分+ 1%2F(sqrt(x)*(x%2B1))):答えはπである。 –
おそらく、関数の 'fun'が値の配列を生成するために使われるので、_vectorised input_が必要であることに注意してください。このエラーは、単純な(要素ごとの)乗算ではなく、 '*'が_dot product_(行列乗算:行単位)として解釈されるベクトル化された入力に起因しています。 – Ziezi