2

推定:

z = [0.4 0.5 0.75]'  
function y = myfunct(x)  
y = quad(@sin, 0, x)

以下を使用して、0から0.4、0.5、および0.75までのsin(x)の定積分を計算したいと思います。

myfunct(z)

ただし、Matlabは次を返します。

??? Error using ==> quad at 70  
The limits of integration must be scalars.  

建設的な提案をいただければ幸いです。

4

2 に答える 2

2

arrayfunこの関数は、MATLAB の最近のバージョンで使用できます。

z = [0.4 0.5 0.75]';
y = arrayfun(@(upperLim)(quad(@sin,0,upperLim)),z);
于 2011-10-16T15:58:45.723 に答える
1

を使用してこれを行うこともできますquadv。ただし、積分限界のベクトルを作成する代わりに、各要素を積分するときに積分範囲が 0 ~ 1 になるように配列値関数を作成します。

具体的には、sin(x) を x = 0 から z まで積分します。これは、sin(uz)*z を u = 0 から 1 まで積分する (u-代入) と同じです。配列関数を作る

F = @(u) [sin( .4 * u) * .4, sin( .5 * u ) * .5, sin( .75 * u ) * .75 ];

それからする

quadv(F,0,1)
于 2011-10-16T18:19:03.513 に答える