1
мне нужно оценить интеграл, и мой кодVectorize двойной для петель
r=0:25;
t=0:250;
Ti=exp(-r.^2);
T=zeros(length(r),length(t));
for n=1:length(t)
w=1/2/t(n);
for m=1:length(r)
T(m,n)=w*trapz(r,Ti.*exp(-(r(m).^2+r.^2)*w/2).*r.*besseli(0,r(m)*r*w));
end
end
В настоящее время оценка довольно быстро, но мне интересно, если есть способ векторизации двойной для цикла и сделать его даже быстрее, особенно когда используется функция trapz
.
Спасибо за подсказку, но код имеет ошибку ... – noir
@noir Какая ошибка? Численные результаты совпадают с точностью до числовой точности машины. Я получаю 'max (abs (T (:) - T2 (:))) = 3.4694e-18', где' T2' вычисляется с помощью моего цикла. – Oleg
'Ti' и' r' должны быть дополнены 'repmat', в противном случае размеры не совпадают. @Oleg – noir