Численное интегрирование с вложенным интегралом - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу рассчитать соотношение G (t) между двумя функциями B (t) и A (t) на каждом временном шаге от t = 1 до 2500, используя MATLAB.

Функция A (t) задается как

введите описание изображения здесь

и функцию B (t), которая имеет вложенный интеграл, требующий численного интегрирования

введите описание изображения здесь

Здесь j, m, b, d, e, g, h являются константами.

Я написал следующий код Matlab для этой задачи:

Functionscript.m

b=0.0001;
m=0.2331;
j=-0.2323;
d=0.1719;
e=-4.5000;
g=0.1719;
h=0.2355;
T=2500;
[G]=QM(b,m,j,d,e,g,h,T);

==============================================

function [G]=QM(b,m,j,d,e,g,h,T)
G=zeros(T);
A=@(t) j-m*coth((m/2)*(t-T)+acoth((j-b)/m));
I=@(t,s) exp(integral(@(u) -A(u)-h,t,s));
SI=@(t,s) I(t,s)*(A(s)*e-g);
B=@(t) I(t,T)*d-integral(@(s) SI(t,s),t,T,'ArrayValued',1);
G(1)=B(1)/A(1);
for i=1:T
G(i)=B(i)/A(i);
end

Когда я запускаю этот код, значения, которые я получаю, не сильно меняются со временем, я думаю, что это, вероятно, потому, что числовое интегрирование вложенного интеграла работает неправильно.Может кто-нибудь, пожалуйста, проверьте?Спасибо.

...