用matlaB求定积分的时候报错

在用matlaB求定积分的时候报错信息如下:错误使用sym/subsindex(line663)Invalidindexingorfunctiondefinition.W... 在用matlaB求定积分的时候报错信息如下:
错误使用 sym/subsindex (line 663)
Invalid indexing or function definition. When defining a function, ensure that the body of
the function is a SYM object. When indexing, the input must be numeric, logical or ':'.

出错 landscape1fig6 (line 79)
E(j)=eta_e(j).*n*Zr.*int((S(i)-Sh)./(Sstar-Sw).*p(i),S(i),Sh,Sfc);
代码如下:
syms S(i) E(j) T(j) L(j) R(j)
E(j)=eta_e(j).*n*Zr.*int((S(i)-Sh)./(Sfc-Sh).*p(i),S(i),Sh,Sfc);
T(j)=eta_t(j).*n*Zr.*(int((S(i)-Sw)./(Sstar-Sw).*p(i),S(i),Sw,Sstar)+int(p(i),S(i),Sfc,1));
L(j)=m.*n*Zr.*int(exp(beta*(S(i)-Sfc)-1).*p(i),S(i),Sfc,1);
R(j)=E(j)+E(j)+L(j);

S(i)相当于x 定积分范围是Sh,Sfc,只有S(i)是变量,其他都是常数

请问这是什么原因?如何修改?
展开
 我来答
themanisjimmy
2016-01-08 · TA获得超过2756个赞
知道小有建树答主
回答量:843
采纳率:89%
帮助的人:225万
展开全部
matlab中求定积分一般用int函数。
int(expr,var,a,b)是int函数求定积分的一般形式。其中,expr为符号表达式,var为符号变量,为积分变量,缺省为x。a、b为积分上下限,可以是数字,也可以是符号变量。

出错时,可以检查代码是否有如下问题:
1、是否有调用格式的错误,expr需要为符号表达式,var需要为符号变量。(在旧的matlab版本中,支持使用字符串作为表达式与积分变量,在新的版本中已经不支持了)

2、表达式中有错误。
习惯性错误,如 2x+1、xy、sinx、e^x、ln(x) 等等,这些都是错误的,会直接报错。
应该改为2*x+1、x*y、sin(x)、exp(x)、log(x)

3、有时候会碰到积分不可积的情况或者积分结果为特殊函数。
百度网友3c63e6c
2014-12-02 · TA获得超过2847个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2744万
展开全部
我不确定积分中的上下限是否能用syms类型的变量
int((S(i)-Sh)./(Sstar-Sw).*p(i),S(i),Sh,Sfc);

你可以把其中的常数都换为实际对应的数字,然后试试能不能行
追问
我这里积分的上下线没有用syms类型的变量呢,Sh,Sfc是常数

这里的把常数代进去之后求出来的定积分还是个定积分!
追答
你的S(i)是表达式么??
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jimtien
2014-12-02 · TA获得超过7652个赞
知道大有可为答主
回答量:2146
采纳率:88%
帮助的人:1086万
展开全部
syms S(i) E(j) T(j) L(j) R(j)

不能这样定义, 去掉()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式