24小时热门版块排行榜    

查看: 896  |  回复: 2

摇摇晃晃320

银虫 (初入文坛)

[求助] matlab中想对一个公式进行积分,但是公式中还含有其它变量 已有1人参与

如题,公式[z(j)./(1*Uz(j,t))./(1+50.*n(t).*z(j)./(2*pi*Uz(j,t))).^(5/3)].*exp(-[abs(dy)/60]-[abs(dz)/10])中好多变量,其中z(j)为坐标,Uz(j,t)为t时刻j点的速度,dy,dz为两点坐标差值,n(t)为频率,但我想把上式对n,即频率积分,以下是我的脚本

for i=1:20
   for j=i:20
       for t=1:500
        dy=y(i)-y(j);
        dz=z(i)-z(j);
        R0(i,j,t)=int([200*1.76^2.*z(j)./(1*Uz(j,t))./(1+50.*n(t).*z(j)./(2*pi*Uz(j,t))).^(5/3)].*exp(-[abs(dy)/60]-[abs(dz)/10]),0,10);%H0后是频率上下限
       end
   end
end


但是一直报错,之前用的quadl函数也不行,下面是报错内容,上面积分那块好像是没有声明积分对象,只给了上下限,求大神指点

尝试引用非结构体数组的字段。

出错 isAllVars (line 9)
res = strcmp(mupadmex('symobj::isAllVars',expr.s,0),'TRUE');

出错 sym/int (line 150)
   if ~isscalar(x) || ~isAllVars(x)
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

waterque

金虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2018-06-29 22:36:13
可能是你的积分表达式中有多个变量,所以需要说明对哪个变量积分,积分上下限是哪个变量的上下限。具体你可以参考matlab官网的说明:
https://www.mathworks.com/help/symbolic/int.html
行自己的路:waterque@hotmail.com
2楼2018-06-26 09:40:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

摇摇晃晃320

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by waterque at 2018-06-26 09:40:31
可能是你的积分表达式中有多个变量,所以需要说明对哪个变量积分,积分上下限是哪个变量的上下限。具体你可以参考matlab官网的说明:
https://www.mathworks.com/help/symbolic/int.html

好的,谢谢你
3楼2018-06-29 09:08:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 摇摇晃晃320 的主题更新
信息提示
请填处理意见