Matlab: so berechnen Sie das bestimmte integral einer Funktion über mehrere Grenzen?
Übernehmen:
z = [0.4 0.5 0.75]'
function y = myfunct(x)
y = quad(@sin, 0, x)
Möchte ich berechnen das bestimmte integral von sin(x) von 0 bis 0.4, 0.5 und 0.75, Verwendung:
myfunct(z)
Doch Matlab gibt:
??? Error using ==> quad at 70
The limits of integration must be scalars.
Ich wäre dankbar für alle konstruktiven Vorschläge.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie auch
quadv
um dies zu tun. ABER, anstatt einen Vektor der integration Grenzen gesetzt, machen Sie eine array-valued function, so dass beim integrieren Sie jedes element, der Bereich der integration wird 0-1.Um genauer zu sein, die Sie integrieren möchten von sin(x) von x = 0 bis z. Dies ist die gleiche wie die Integration von sin(u z)*z aus u = 0 1 (u-substitution). Eine array-Funktion
Dann tun
lims = [0.4 0.5 0.75]'; F = @(u)(sin(u.*lims).*lims); quadv(F,0,1)
Können Sie die
arrayfun
Funktion in neueren Versionen von MATLAB: