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大神帮忙 展开
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大神帮忙 展开
2个回答
展开全部
建议楼上的同学回答问题之前自己先试一下,以免既浪费自己时间又误导他人。
显然这样的代入没起到任何作用,这很容易验证:
>> 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)
希望回答对楼主有帮助,有问题请追问。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询