用限制简化符号表达式的行为

时间:2013-10-20 15:43:16

标签: matlab symbolic-math simplify

我想简化这个符号表达式,然后使用Matlab来限制它(在纸上这不太难)

syms n x
sn = 8^n * n^2 * (sin(x))^(3*n)
simplify(sn^(1/n))

导致

ans =

8*n^(2/n)*(sin(x)^(3*n))^(1/n)

这必须像8 * n^(2/n) * (sin(x))^3。但是,如果我使用

x = sym('x', 'positive'); n = sym('n', 'positive');
sn = 8^n * n^2 * (sin(x))^(3*n)
simplify(sn^(1/n))

获得类似的答案然后采取限制,我得到:

limit(ans, n, inf)

ans =

8*limit(n^(2/n)*(sin(x)^(3*n))^(1/n), n == Inf)

而不是8*sin(x)^3

如果我在纸上简化这一点然后采取限制,一切正常:

limit(8*n^(2/n)*sin(x)^3, n, inf)

ans =

8*sin(x)^3

是否可以使用Matlab解决这个问题?

1 个答案:

答案 0 :(得分:0)

MuPAD不简化表达式,因此不能采取限制,因为您没有提供适当的假设。如果(sin(x)^n)^(1/n)sin(x)为正,n这样的表达式会简化为x,这是不正确的。您需要完全限制x的范围,因为它是周期函数的参数:

x = sym('x','positive');
n = sym('n','real');
assumeAlso(x<=sym(pi));
sn = 8^n * n^2 * (sin(x))^(3*n);
sn2 = simplify(sn^(1/n))
limit(sn2, n, Inf)

返回你期待的答案

ans =

8*sin(x)^3

如果您可以访问Mathematica,这种事情可以很容易地完成:

Limit[(8^n n^2 Sin[x]^(3 n))^(1/n), n -> \[Infinity], Assumptions -> {n \[Element] Reals, x >= 0, x <= \[Pi]}]