为什么我用MATLAB算不出无穷级数的结果?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 23:52:08
为什么我用MATLAB算不出无穷级数的结果?
>> syms n x ;
symsum('(-1)^(n-1)*x^(2*n+1)/(4*n^2-1)',n,1,inf)
ans =
sum(((-1)^(n - 1)*x^(2*n + 1))/(4*n^2 - 1),n = 1..Inf)
>> syms n x ;
symsum('(-1)^(n-1)*x^(2*n+1)/(4*n^2-1)',n,1,inf)
ans =
sum(((-1)^(n - 1)*x^(2*n + 1))/(4*n^2 - 1),n = 1..Inf)
matlab的符号运算不是什么情况下都能得到理想的答案的.对于这道题就是这样.明明答案很理想,可是它就是做不出来.一般符号表达式越复杂,这中几率就越大.这需要一些技巧和经验.当你得不到理想解的时候,就需要改造你的符号表达式,比如用各种化简命令进行化简.常用的simple,simplify,collect,expand……等等,经过改造的表达往往能使某些不能计算的结果变得可以计算了.
这题,无论怎样simple,都得不到理想的结果.但是这个表达式可以因式分解.
先把(-1)^(n-1)/(4*n^2-1) 因式分解为 s
s = (-1)^n/(2*(2*n + 1))- (-1)^n/(2*(2*n - 1))
令g=x^(2*n+1), 那原式 t = s * g
然后再调用symsum
result = symsum(t,n,1,inf)
result = - x/2 - (x^3*atan((-x^2)^(1/2)*i)*i)/(2*(-x^2)^(1/2)) - (x*atan((-x^2)^(1/2)*i)*i)/(2*(-x^2)^(1/2))
结果还可以进行化简
result = simple(result)
这题,无论怎样simple,都得不到理想的结果.但是这个表达式可以因式分解.
先把(-1)^(n-1)/(4*n^2-1) 因式分解为 s
s = (-1)^n/(2*(2*n + 1))- (-1)^n/(2*(2*n - 1))
令g=x^(2*n+1), 那原式 t = s * g
然后再调用symsum
result = symsum(t,n,1,inf)
result = - x/2 - (x^3*atan((-x^2)^(1/2)*i)*i)/(2*(-x^2)^(1/2)) - (x*atan((-x^2)^(1/2)*i)*i)/(2*(-x^2)^(1/2))
结果还可以进行化简
result = simple(result)