matlab中求积分需要定义符号,然后我想带入数值怎么办

symsra1buta2F1;%定义符号S1='-10/3*r*cos(2*a1-b-u+t)';%要求积分的式子F1=int(int(S1,u,0,pi+a1+t),a... syms r a1 b u t a2 F1;%定义符号
S1='-10/3*r*cos(2*a1-b-u+t)';%要求积分的式子
F1=int(int(S1,u,0,pi+a1+t),a1,b-a2,b);%积分结果为F1 =
- (10*r*(cos(b - 2*a2 + t)/2 - cos(b + t)/2))/3 - (10*r*(cos(a2) - 1))/3r=19.2*0.5*10^(-3)
b=0.18*pi*0.5;%带入积分结果
a2=28.2014/180*pi;%带入积分结果
t=0:pi/50:2*pi;%带入不同的t值
求不同t值下的F1值,接下来的程序是什么样的啊,求matlab大神帮忙
展开
 我来答
tianxiawulang
2013-08-05 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2552万
展开全部

建议楼上的同学回答问题之前自己先试一下,以免既浪费自己时间又误导他人。

 

显然这样的代入没起到任何作用,这很容易验证:

>> F1-subs(F1,{b,a2,t},{b,a2,t})
ans =
0

 

正确的做法是:

subs(F1)

这种情况下,会把当前工作区中变量的具体数值代入表达式,对于本例而言,会得到一个sym数组。这里需要注意的是,由于符号表达式F1中的变量r没有具体数据,所以得到的结果是一个含有r的表达式。

 

如果在上面的代入之前给r赋值

r = 1;
subs(F1)

却会导致报错(各版本可能有所差别)

??? Error using ==> sym.subs at 214
Elements of the substitution cell array must be of the same size.

这是因为,代入表达式的数值必须具有相同的维数——如果是标量,应该都是标量;如果是向量,则应该都是向量(而且维数相同)。解决这个问题的做法是,调用两次subs把向量和标量分别代入:

b = 0.18*pi*0.5;
a2 = 28.2014/180*pi;
r = 1;
F1 = subs(F1);
t = 0:pi/50:2*pi;
F1 = subs(F1)

希望回答对楼主有帮助,有问题请追问。

百度网友7d7ebc3
2013-08-08 · TA获得超过531个赞
知道小有建树答主
回答量:630
采纳率:50%
帮助的人:596万
展开全部
subs(F1,{b,a2,t},{b,a2,t})

%上面的代码有误,现改正如下
subs(F1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式