How to use integral with an implicit function defined through a sum
3 次查看(过去 30 天)
显示 更早的评论
Suppose we have a function define as follows:
fz=@(z) exp(-(z).^2/2);
g=@(y) sum ( v(1:n/2).*fz((y- v(n/2+1:n))));
here v is a vector of length n that is known and is used to define the fucntion g.
Now I want to integrated g from [-5,5] using command
integral(@(y) g(y), -5,5).
I, however, get an error that matrix dimensions must agree.
I get where the issue is. It occurs because I defined a function through a vector and pass another vector as input.
Is there a way of fixing this?
2 个评论
采纳的回答
Steven Lord
2020-7-16
By default, integral will call your function with an array and expects your function to return an array of the same size as the output. If you specify the name-value pair arguments 'ArrayValued', true in your integral call it will instead call your function with a scalar and expect an array as output.
v = 2:5;
y1 = integral(@(x) x.^v, 0, 1, 'ArrayValued', true)
y2 = integral(@(x) x.^v, 0, 1) % Throws an error
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!