Integral of user-defined function

7 Ansichten (letzte 30 Tage)
Vishakha Ramani
Vishakha Ramani am 4 Jun. 2023
Beantwortet: John D'Errico am 4 Jun. 2023
I have the following MATLAB code, and would like to evaluate the integral of compcdf_mgc function with respect to variable y. However, I'm getting the following error: "Unable to perform assignment because the left and right sides have a different number of elements."
rate = 1;
num_steps = 2;
num_proc = num_steps;
f = @(y) compcdf_mgc(num_steps, rate, num_proc, y);
integral_value = integral(f, 0, Inf);
function final = compcdf_mgc(num_steps, rate, c, y)
n = num_steps;
scale = 1/rate; % this is b = 1/lambda
compcdfvec = zeros(n, 1);
for i = 1:n
compcdfvec(i) = 1 - gamcdf(y, n+i, scale);
end
final = ((1/n)*sum(compcdfvec))^c;
end

Akzeptierte Antwort

Torsten
Torsten am 4 Jun. 2023
Bearbeitet: Torsten am 4 Jun. 2023
Your function is not vectorized. Thus you have to use
integral_value = integral(f, 0, Inf, 'ArrayValued',true)
instead of
integral_value = integral(f, 0, Inf)

Weitere Antworten (1)

John D'Errico
John D'Errico am 4 Jun. 2023
Is your code vectorized? That is, what happens when a VECTOR of elements for y is passed in? (It does not appear to be.)
integral assumes a vectorized function.

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by