упрощение () не имеет никакого эффекта - PullRequest
0 голосов
/ 05 июля 2018

Я использовал следующий фрагмент для упрощения уравнения:

syms P Q R S T U V A B C D E F G X Y
simplify((X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + A)^2)

Что дает мне результат:

2*B*X - 2*A*Y - 2*A*X - 2*B*Y

С другой стороны,

simplify((X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + 2*A)^2)

дает тот же результат после повторного заказа:

(A - X)^2 - (B - X)^2 - (2*A + Y)^2 + (B - Y)^2

Что изменилось между этими двумя уравнениями? Я не правильно использую эту функцию?

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Согласно документации , вы можете увеличить количество упрощенных "шагов", используя:

simplify(expr,'Steps',nSteps); % e.g. nSteps = 50

Вы также можете попробовать другие функции (combine, expand, factor, ...) для перестановки выражения.

У меня есть символьная панель инструментов Maple для MATLAB, и я получаю результаты, отличные от вас:

>> syms P Q R S T U V A B C D E F G X Y
>> simplify((X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + A)^2)

ans =

                         (-2 X - 2 Y) A + 2 B (X - Y)

>> simplify((X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + 2*A)^2)

ans =     
                         2
                     -3 A  + (-2 X - 4 Y) A + 2 B (X - Y)

В заключение - он работает как положено, вам следует попробовать другие функции / инструменты.

0 голосов
/ 05 июля 2018
(X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + A)^2
X^2 + A^2 - 2*A*X + Y^2 + B^2 - 2*Y*B - X^2 - B^2 + 2*X*B -Y^2 - A^2 + 2*Y*A
2*B*X - 2*A*Y - 2*A*X - 2*B*Y

По умолчанию: 12 операций, используемых для вычисления числа

Финал: 12 операций, используемых для вычисления числа


С другой стороны:

(X - A)^2 + (Y - B)^2 - (X - B)^2 - (Y + 2*A)^2
X^2 + A^2 - 2*A*X + Y^2 + B^2 - 2*Y*B - X^2 - B^2 + 2*X*B -Y^2 - 4*A^2 + 4*Y*A
-3*A^2 + 2*B*X - 4*A*Y - 2*A*X - 2*B*Y

По умолчанию: 13 операций, используемых для вычисления числа

Финал: 15 операций, используемых для вычисления числа

...