Matlab 是否可以定义一个积分函数并使用“integral”进行积分?

Matlab 是否可以定义一个积分函数并使用“integral”进行积分?,matlab,integral,Matlab,Integral,我想进行以下集成: 为了使用matlab中的函数integral进行积分,我定义了函数 首先,然后应用积分。以下是我的职责: OrderEpsilon2IntegrandIntegralIntegrand=@(T,s)lambda.*(T-s).*exp(-1.*lambda.*s); OrderEpsilon2IntegrandIntegral=... @(T,u)integral(@(t)OrderEpsilon2IntegrandIntegralIntegrand(T,t),u,T);

我想进行以下集成:

为了使用matlab中的函数
integral
进行积分,我定义了函数

首先,然后应用积分。以下是我的职责:

OrderEpsilon2IntegrandIntegralIntegrand=@(T,s)lambda.*(T-s).*exp(-1.*lambda.*s);
OrderEpsilon2IntegrandIntegral=...
@(T,u)integral(@(t)OrderEpsilon2IntegrandIntegralIntegrand(T,t),u,T);

OrderEpsilon2Integrand=@(T,u)...
(T-u).*sigma(u).*v_0-...
OrderEpsilon2IntegrandIntegral(T,u).*exp(lambda.*u).*sigma(u).*v_0;

OrderEpsilon2Integral=...
@(t)arrayfun(@(T)integral(OrderEpsilon2Integrand(T,u),InitialTime,T),t);
但是,我有以下错误消息:

Error using integral (line 85)
A and B must be floating-point scalars.

Error in (T,u)integral(@(t)OrderEpsilon2IntegrandIntegralIntegrand(T,t),u,T)

Error in @(T,u)(T-u).*sigma(u).*v_0-OrderEpsilon2IntegrandIntegral(T,u).*exp(lambda.*u).*sigma(u).*v_0

Error in @(u)OrderEpsilon2Integrand(2.3,u)

Error in integralCalc/iterateScalarValued (line 314)
            fx = FUN(t);

Error in integralCalc/vadapt (line 132)
        [q,errbnd] = iterateScalarValued(u,tinterval,pathlen);

Error in integralCalc (line 75)
    [q,errbnd] = vadapt(@AtoBInvTransform,interval);

Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
发生这种错误有什么问题?我对这个消息一无所知。另外,我想知道如何更正代码。但是,在纠正代码时存在一些限制:

首先,不要写

明确地说

第二,不要使用
integral2
。如果可能,我想定义具有积分的被积函数

为什么不呢

syms s u T t sg lm
%%sg=u^2+u+1; %%Define sigma expression in here
f=int((T-u)*sg-int(lm*(T-s)*exp(-lm*s),s,u,T)*exp(lm*u),u,t,T) 
导致:

T*t + T/lm + (T^2*sg)/2 - t/lm + (sg*t^2)/2 - T^2/2 - 1/lm^2 - t^2/2 + (exp(-T*lm)*exp(lm*t))/lm^2 - T*sg*t
为什么不呢

syms s u T t sg lm
%%sg=u^2+u+1; %%Define sigma expression in here
f=int((T-u)*sg-int(lm*(T-s)*exp(-lm*s),s,u,T)*exp(lm*u),u,t,T) 
导致:

T*t + T/lm + (T^2*sg)/2 - t/lm + (sg*t^2)/2 - T^2/2 - 1/lm^2 - t^2/2 + (exp(-T*lm)*exp(lm*t))/lm^2 - T*sg*t

这是因为最终,我想计算,例如,有序ε2积分([1,2,3,4])。定义符号不能帮助我计算OrderEpsilon2Integral([1,2,3,4]),对吗?不,你最终可以为循环生成一个
,没有矢量化,通过任何标准处理器都可以解决,没有任何问题?这是因为我最终想要计算,例如,OrderEpsilon2Integral([1,2,3,4])。定义符号不能帮助我计算OrderEpsilon2Integral([1,2,3,4]),对吗?不,你最终可以为
循环创建一个
,没有矢量化,通过任何标准处理器都可以解决问题?