Упрощенное поведение Matlab - PullRequest
4 голосов
/ 03 октября 2011

Я пытаюсь упростить некоторые символические уравнения.

>> 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 уменьшил эту долю.

Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 03 октября 2011

По второму вопросу вам, возможно, придется помочь указать 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
3 голосов
/ 03 октября 2011

Ответ на первый вопрос прост.

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

x =

x

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

ans =

1
...