I'm trying to use the midpoint formula to compute the value of the integral, but it keeps showing the error message "Array indices must be positive integrs or logical values." I don't know how to solve it. Thanks!

 採用された回答

Steven Lord
Steven Lord 2023 年 5 月 5 日

0 投票

The variable func is a vector, the value of the function handle f evaluated at the points in x. On the line where you compute mid_val you're indexing into that vector with values that likely aren't integer values. Were you trying to evalate the function handle f at those points? If so use f instead of func on that line.

その他の回答 (1 件)

VBBV
VBBV 2023 年 5 月 5 日
編集済み: VBBV 2023 年 5 月 5 日

1 投票

assign the func to f inside the custom function as below , probably you mean this
f = @(x) x.^3.*exp(-x.^3);
a = 0; b = 10; n = 100;
mid_val = integral_mid(f,a,b,n)
mid_val = 0.2977
function mid_val = integral_mid(f,a,b,n)
h = (b-a)/n;
%x = a:h:b;
% assign the func to f
func = f;
xmid = (a+h/2):h:b;
mid_val = h*sum(func(xmid));
end

カテゴリ

ヘルプ センター および File ExchangeOperators and Elementary Operations についてさらに検索

製品

リリース

R2023a

質問済み:

Dan
2023 年 5 月 5 日

回答済み:

2023 年 5 月 5 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by