"Arrays have incompatible sizes for this operation" with for loop in integral2
이전 댓글 표시
I am going to find a fixed point for some intergal represented function.
(this is just an example, I do not know if the fixed point exists or not) by the iteration:
My code is like that:
input = @(y,s) y;
N_it=10;
output=cell(1, N_it);
output{1}=input;
density = @(z,t,s) exp( -(z.^2)./(2.*(s-t)) ) ./ (sqrt(2*pi).*sqrt(s-t));
for i=1:N_it
input=output{i};
integral = @(y,t) integral2( @(z,s) input(z,s).*density(z-y,t,s),0,100,@(t)t,T,'RelTol',0,'AbsTol',1e-5);
n_output=@(y,t)integral(y,t);
output{i+1}=n_output;
end
For N_it =1, I can get the answer, there is no error. For N_it>1, when I find the value of n_output(1,1), there is an error "Arrays have incompatible sizes for this operation." and then a very long list indicating my problematic lines.
답변 (1개)
input = @(y,s) y;
N_it=10;
output=cell(1, N_it);
output{1}=input;
density = @(z,t,s) exp( -(z.^2)./(2.*(s-t)) ./ (sqrt(2*pi).*sqrt(s-t)));
for i=1:N_it
input=output{i};
integral = @(y,t) integral2( @(z,s) input(z,s).*density(z-y,t,s),0,100,@(t)t,T,'RelTol',0,'AbsTol',1e-5);
n_output=@(y,t)integral(y,t);
output{i+1}=n_output;
end
output(1,1)
댓글 수: 8
VBBV
2024년 3월 13일
the parenthesis is used incorrectly when writing the formula in this line
density = @(z,t,s) exp( -(z.^2)./(2.*(s-t)) ./ (sqrt(2*pi).*sqrt(s-t)));
%-> <--
ho man
2024년 3월 13일
@ho man I dont get error though. can you share your code when you replace exp with sin function as shown in your comment ? btw try with ArrayValued as true argument in the integral2 function. Change the tolerance range and check
input = @(y,s) y;
N_it=10;
output=cell(1, N_it);
output{1}=input;
density = @(z,t,s) sin(z.*(s-t));
for i=1:N_it
input=output{i};
integral = @(y,t) integral2( @(z,s) input(z,s).*density(z-y,t,s),0,100,@(t)t,T,'RelTol',0,'AbsTol',1e-5, ...
'ArrayValued',1); % use array valued argument
n_output=@(y,t)integral(y,t);
output{i+1}=n_output;
end
output(1,1)
ho man
2024년 3월 13일
ho man
2024년 3월 13일
카테고리
도움말 센터 및 File Exchange에서 Univariate Discrete Distributions에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!