Obtaining integral function from code

Andrea Giordano

Andrea Giordano (view profile)

さんによって質問されました 2019 年 6 月 19 日

Star Strider (view profile)

さんによって 回答されました 2019 年 6 月 19 日
Star Strider

Star Strider (view profile)

さんの 回答が採用されました
Hello there!
I am trying to obtain the integral function of a complicated relation.
Here though, to check out the code, I am implementing the integral of f(x) = x.
However, I get an error when the index i of my function reaches 0.7.
Could please tell me why?
Thanks,
Have a good day.
Andrea.
MAIN:
x = [0:0.1:1];
prova = @(x) x;
figure
res(1:end) = fun_integra(prova, 0, 1, 0.1);
plot(x,prova(x))
figure
plot(x, res(1:end))
FUNCTION fun_integra
function [res] = fun_integra(integrand, low, up, step)
for i=low:step:(up-step)
res((i-low)/(step)+1) = integral(integrand, low, i+step);
end
end

0 件のコメント

サインイン to comment.

1 件の回答

Star Strider (view profile)

2019 年 6 月 19 日
採用された回答

At that value, the subscript is no longer an integer. This is most likely a problem with floating-point calculation error. Using the fix (link) function to force the subscript to be an integer corrects it:
res(fix((i-low)/(step)+1)) = integral(integrand, low, i+step);
That leaves the problem of ‘x’ and ‘res’ not being the same lengths in:
res = fun_integra(prova, 0, 1, 0.1);
fixed by :
plot(x(1:numel(res)), res(1:end))

0 件のコメント

サインイン to comment.