Filter löschen
Filter löschen

Obtaining integral function from code

2 Ansichten (letzte 30 Tage)
john_arle
john_arle am 19 Jun. 2019
Beantwortet: Star Strider am 19 Jun. 2019
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

Akzeptierte Antwort

Star Strider
Star Strider am 19 Jun. 2019
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))

Weitere Antworten (0)

Kategorien

Mehr zu Multidimensional Arrays 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