我想使用MATLAB计算从t = 1到2500的每个时间步长上两个函数B(t)和A(t)之间的比率G(t)。
函数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
当我运行这段代码时,我得到的值不会随时间变化很大,我认为这可能是因为嵌套积分的数值积分无法正常工作。有人可以检查吗?谢谢。