Matlab 是否可以定义一个积分函数并使用“integral”进行积分?
我想进行以下集成: 为了使用matlab中的函数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);
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]),对吗?不,你最终可以为
循环创建一个,没有矢量化,通过任何标准处理器都可以解决问题?