Правильное использование Simplify в Mathematica (с многофазным тригоном) - PullRequest
0 голосов
/ 14 февраля 2011

Я только начал работать с Mathematica (5.0) в первый раз, и хотя руководство было полезным, я не совсем уверен, что моя техника была правильной с использованием (Full)Simplify. Я использую программу, чтобы проверить свою работу над производным преобразованием для переключения между системами отсчета, которые состояли из умножения трио относительно больших квадратных матриц.

Мы с коллегой выполняли работу вручную, отдельно, чтобы не было ошибок. Мы надеялись получить третий чек от программы, который, казалось, был бы достаточно прост, чтобы спросить. Ручные вычисления заняли некоторое время из-за размера матрицы, но мы пришли к тем же выводам. Тот факт, что у нас был один и тот же ответ, заставил меня скептически относиться к тому, что программа дала разные результаты.

  • Я проверил и дважды проверил свои данные.
  • Я определенно . (умножение точек) матрицы для правильного умножения.
  • FullSimplify без разницы.
  • Ни у одной из них нет комбинаций с TrigReduce / алгебраическим расширением перед упрощением.
  • Я взял индексы из окончательной матрицы и попытался упростить их, пока они изолированы, но безрезультатно, поэтому проблема не в использовании матриц.
  • Я также пытался умножить первые две матрицы, упростить, а затем умножить это на третью матрицу; однако это дало те же результаты, что и раньше.

Я думал, что Simplify автоматически пересекается со всеми уровнями головок, поэтому мне не нужно было беспокоиться о отображении, но даже там, где в качестве выходных данных в матрице следует ожидать нулей, есть условия, и где мы должны ожидать условия Есть близкие ответы, плюс множество терминов греха и косинуса, которые не уменьшают.

Кто-нибудь часто применяет технику с Simplify для получения более предпочтительных результатов, в отличие от использования Simplify?

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011

Если есть предположения относительно диапазонов параметров, вы захотите передать их в Упрощение. Следующие простые примеры покажут, почему это может быть полезно.

In[218]:= Simplify[a*Sqrt[1 - x^2] - Sqrt[a^2 - a^2*x^2]]
Out[218]= a Sqrt[1 - x^2] - Sqrt[-a^2 (-1 + x^2)]

In[219]:= Simplify[a*Sqrt[1 - x^2] - Sqrt[a^2 - a^2*x^2], 
 Assumptions -> a > 0]
Out[219]= 0

Предполагая, что этот и другие ответы не попадают в цель, если бы вы могли привести пример, который каким-то образом показывает возможное плохое поведение, это было бы очень полезно. Замаскируйте все, что необходимо для того, чтобы скрыть проприетарные свойства: отбеливать водяные знаки, записывать регистрационные номера, возможно, одевать их в усы.

Даниэль Лихтблау Wolfram Research

1 голос
/ 14 февраля 2011

Поскольку вы не дали много подробностей, чтобы пережевать, я могу дать вам только несколько советов:

  1. Mma5 довольно старый. Текущая версия - 8. Если у вас есть доступ к кому-то с 8, вы можете попросить его попробовать, чтобы увидеть, имеет ли это значение. Вы также можете попробовать WolframAlpha онлайн (http://www.wolframalpha.com/),, который также понимает некоторый (все?) Синтаксис Mma.

  2. Вы пытались сравнить свои результаты и результаты Mma численно? Создайте таблицу различий для различных значений параметров или используйте график. Если различия незначительны (используйте Chop, чтобы вырезать небольшие остатки), результаты, вероятно, эквивалентны.

Приветствия - Sjoerd

...