Matlab的简化行为

4

我正在尝试简化一些符号方程。

>> syms x;
>> simplify(sqrt(x^2)/x)

ans =

(x^2)^(1/2)/x

实际上,我希望Matlab返回1或类似的结果。
>> simplify((x^9+7*x^8-2*x-6)/(x-1))

ans =

-(- x^9 - 7*x^8 + 2*x + 6)/(x - 1)

分子中的1是根号下的因数,所以我希望matlab能化简这个分数。

我做错了什么?


1
问题在于(x^2)^(1/2)无法简化,除非你对x有更多了解,例如x>1 - nibot
对于(x^3)^(1/3),它也行不通。 - ДМИТРИЙ МАЛИКОВ
x^(1/3) 也是多值的。 - nibot
2个回答

3

第一个问题的答案很简单。

>> x = sym('x', 'positive' )

x =

x

>> simplify(sqrt(x^2)/x)

ans =

1

3

对于第二个问题,你可能需要帮助指引Matlab的方向:

>> factor(x^9+7*x^8-2*x-6)

ans =

(x - 1)*(x^8 + 8*x^7 + 8*x^6 + 8*x^5 + 8*x^4 + 8*x^3 + 8*x^2 + 8*x + 6)

>> ans/(x-1)

ans =

x^8 + 8*x^7 + 8*x^6 + 8*x^5 + 8*x^4 + 8*x^3 + 8*x^2 + 8*x + 6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接