Я хочу рассчитать соотношение 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
Когда я запускаю этот код, значения, которые я получаю, не сильно меняются со временем, я думаю, что это, вероятно, потому, что числовое интегрирование вложенного интеграла работает неправильно.Может кто-нибудь, пожалуйста, проверьте?Спасибо.