how can i integrate a function?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
elham kreem
am 16 Feb. 2018
Kommentiert: elham kreem
am 16 Feb. 2018
i have this function fun4=@(y)(y.^2 - d1i'*y+d2i)* f1 * exp(-(y-bx).^2./(2*s*tau))
expectfun4=integral(fun4, -2,4,'ArrayValued',true)
but it is not running ; appear this :
| | * _Error using + Matrix dimensions must agree.
Error in @(y)(y.^2-d1i'*y+d2i)*f1*exp(-(y-bx).^2./(2*s*tau))
Error in integralCalc/iterateArrayValued (line 156) fxj = FUN(t(1)).*w(1);
Error in integralCalc/vadapt (line 130) [q,errbnd] = iterateArrayValued(u,tinterval,pathlen);
Error in integralCalc (line 75) [q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 88) Q = integralCalc(fun,a,b,opstruct); ****
although i run as the same function but in another fuction
can you help me
thanks
3 Kommentare
Torsten
am 16 Feb. 2018
fun4=@(y)(y.^2 - d1i*y+d2i)* f1 .* exp(-(y-bx).^2./(2*s*tau))
if
(y.^2 - d1i*y+d2i)* f1 .* exp(-(y-bx).^2./(2*s*tau))
gives a senseful vector for y being a scalar value.
Best wishes
Torsten.
Akzeptierte Antwort
Jan
am 16 Feb. 2018
As soon as you write the formula a function instead of an anonymous function, you can debug it:
% Create anonymous function to provide parameters:
fun4 = @(y) fun4fcn(y, d1i, d2i, bx, s, tau);
... Call the integrator
% The actual function:
function dy = fun4fcn(y, d1i, d2i, bx, s, tau)
dy = (y .^ 2 - d1i' * y + d2i) * f1 * exp(-(y-bx) .^ 2 ./ (2 * s * tau));
end
Now use the debugger:
dbstop if error
When Matlab stops at the error, you can check the dimensions of the variables. Because there is only one "+" operator, I guess that d2i has an unexpected shape.
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differentiation 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!