2个回答
展开全部
应该用函数int,你那个式子虽然也能输入但是非常麻烦(只是意识中积分的形式),也没有必要,int函数就是计算积分的
符号积分命令int
int(fun):求函数fun定积分;
int(fun,var):求函数fun关于变量var定积分;
int(fun, var, a,b,):求函数fun在[a,b]间定积分或广义积分;
示例
>> clear;syms x y z;
>> int(sin(x*y+z),z)
ans =
-cos(x*y+z)
你进行对应输入就可以了
符号积分命令int
int(fun):求函数fun定积分;
int(fun,var):求函数fun关于变量var定积分;
int(fun, var, a,b,):求函数fun在[a,b]间定积分或广义积分;
示例
>> clear;syms x y z;
>> int(sin(x*y+z),z)
ans =
-cos(x*y+z)
你进行对应输入就可以了
追答
我操作了一遍
clear;
clc
syms u z M p n G f CA;
int(z.*M.*u/(p.*n-G.*f.*u-CA/1.632.*u^3),u,10,50)
如果你的所有对应变量(z M p n G......)都是未知的那么上面的结果是
Warning: Explicit integral could not be found.
ans =
int(-(M*u*z)/((125*CA*u^3)/204 + G*f*u - n*p), u = 10..50)
>>
就是matlab不能把上述式子最终表达为一个包含变量的公式,也就是所谓的解析解,但如果变量是有已知值的(就是前面你已经完成对它们赋值),例如
clear;
clc
syms u;
z=1;
M=2;
p=3;
n=4;
G=5;
f=6;
CA=7;
int(z.*M.*u/(p.*n-G.*f.*u-CA/1.632.*u^3),u,10,50)
这时的结果就是
ans =
2*log((124848*((51442*2060625^(1/2))/4246175390625 + 578/51515625)^(1/3))/153125 - 4810。。。。。。。。等等一大堆数据
用vpa函数对ans进行截取,来保证一定精度
>> vpa(ans,9)
ans =
-0.0362976743
我觉得你的变量应该已经赋过值了
对变量ua进行积分,那么结果中就不应该再出现ua了,如果又出现了,显然是出错了,可你还顽强地向下计算
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询