Как упростить выражение в wolfram mathematica

REDMOND

Иллюстрированный самоучитель по Mathematica 3/4

Функции компьютерной алгебры. Упрощение выражений (функция Simplify). Функция полного упрощения FullSimplify.

Системы компьютерной алгебры имеют несколько характерных для них функций, выполняющих достаточно сложные преобразования выражений. Эти функции имеют вполне установившиеся названия (Simplify, Expand, Collect, Factor и т. д.) и встречаются практически во всех системах символьной математики. Настало время детально познакомиться с ними, что и делается в данном разделе.

Упрощение математических выражений – одна из самых важных задач символьной математики. Частенько невероятно сложное математическое выражение, пугающее новичков своим грозным видом, является просто нулем или единицей либо сводится к простому выражению после ряда вполне заурядных (хотя, порою, и довольно сложных) преобразований. Качество выполнения операции упрощения во многом определяется мощью ядра математической системы, поскольку зависит от числа заложенных в него функций и правил преобразования выражений.

С точки зрения простоты выражений они делятся на недостаточно простые и достаточно простые выражения. Недостаточно простые выражения таят в себе всевозможные "излишества": сокращаемые общие члены, лишние переменные и функции, полиномы со степенями, допускающими понижение, и т. д. Это затрудняет качественный анализ выражений и может даже приводить к неоднозначным и даже неверным результатам.

Mathematica всегда старается упростить то или иное выражение, если для этого не требуется каких-либо особых средств. Например, сложные выражения, содержащие элементарные или специальные функции, превращаются в более простые выражения – в том лишь смысле, что они состоят из более простых функций. Следующие примеры иллюстрируют это.

Ввод (In) Вывод (Out)
(Csc[x] Tan[w]) / (Cot[x] Sec[w]) Sec[x] Sin[w]
BesselY[5/2, Е] SQRT(2/π)(Cos[E]-[3Cos[E]+3Sin[E]]/SQRT(E))

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

Для упрощения выражений используется функция Simplify [ехрг]. Она исполняет последовательность алгебраических преобразований над выражением ехрг и возвращает простейшую из найденных форм (обычно это бывает нормальная форма выражения).

Функция Simplify работает с самыми различными математическими выражениями: многочленами, рациональными выражениями (состоящими из полиномов и их отношений), расширенными рациональными выражениями (имеющими дробные степени переменных), элементарными и специальными функциями, алгебраическими и тригонометрическими выражениями и т. д. Обычно она приводит выражения к нормальному виду, что автоматически означает и приведение к виду достаточно простых выражений.

Приведем наиболее характерные результаты действия функции Simplify.

Как в системе Mathematica упростить такие выражения, как a == +/- b, в a ^ 2 == b ^ 2?

Как в системе Mathematica упростить такие выражения, как a == b || a == -b , в a^2 = b^2 ? Все функции, которые я пробовал (включая Reduce, Simplify и FullSimplify), этого не делают.

Обратите внимание, что я хочу, чтобы это работало для произвольных (полиномиальных) выражений a и b . Другой пример:

(для воображаемого i ) и

Оба должны быть упрощены до a^4 == b^4 .

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

2 ответа

Логическое выражение можно преобразовать в алгебраическую форму следующим образом:

РЕДАКТИРОВАТЬ

В ответ на то, что преобразование не учитывает части в других переменных, можно написать функцию преобразования Or и использовать в Simplify :

Может преобразовать набор возможностей в продукт, который должен быть равен нулю.

Simplify

performs a sequence of algebraic and other transformations on expr and returns the simplest form it finds.

does simplification using assumptions.

Details and Options

    Simplify tries expanding, factoring, and doing many other transformations on expressions, keeping track of the simplest form obtained. Simplify can be used on equations, inequalities, and domain specifications. Quantities that appear algebraically in inequalities are always assumed to be real. FullSimplify does more extensive simplification than Simplify . You can specify default assumptions for Simplify using Assuming . The following options can be given:

  • Assumptions $Assumptions default assumptions to append to assum
    ComplexityFunction Automatic how to assess the complexity of each form generated
    TimeConstraint 300 how many seconds to try doing any particular transformation
    TransformationFunctions Automatic functions to try in transforming the expression
    Trig True whether to do trigonometric as well as algebraic transformations

    Assumptions can consist of equations, inequalities, domain specifications such as x &#8712; Integers , and logical combinations of these. With the setting TimeConstraint-> < t loc , t tot > , at most t loc seconds are spent for any particular transformation, and at most t tot seconds are spent for all transformations before the best result is returned.

Examples

Basic Examples &#160; &#160; (3)

Simplify can get further if assumptions are made about x :

Scope &#160; &#160; (4)

Simplify a polynomial:

Simplify a rational expression:

Simplify a trigonometric expression:

Simplify an exponential expression:

Simplify an equation:

Simplify expressions using assumptions:

Use assumptions to prove inequalities:

Options &#160; &#160; (10)

Assumptions &#160; &#160; (3)

Assumptions can be given both as an argument and as an option value:

REDMOND

The default value of the Assumptions option is $Assumptions :

When assumptions are given as an argument, $Assumptions is used as well:

Specifying assumptions as an option value prevents Simplify from using $Assumptions :

ComplexityFunction &#160; &#160; (2)

The default ComplexityFunction counts the subexpressions and digits of integers:

LeafCount counts only the number of subexpressions:

With the default ComplexityFunction , Abs [ x ] is simpler than the FullForm of — x :

This complexity function makes Abs more expensive than Times :

ExcludedForms &#160; &#160; (1)

This gives no simplification:

Excluding transformations of ( x -2 ) ^10 allows Simplify to expand the remaining terms:

TimeConstraint &#160; &#160; (2)

This takes a long time, due to trigonometric expansion, but does not yield a simplification:

Use TimeConstraint to limit the time spent on any single transformation:

A similar example, where the transformation yields a simplification:

In this case, setting TimeConstraint prevents some simplification:

TransformationFunctions &#160; &#160; (1)

Here Simplify uses t as the only transformation:

Here Simplify uses both t and all built-in transformations:

Trig &#160; &#160; (1)

By default, Simplify uses trigonometric identities:

With Trig->False , Simplify does not use trigonometric identities:

Applications &#160; &#160; (4)

Prove that a solution satisfies its equations:

Show that the arithmetic mean is larger than the geometric one:

This applies Fermat’s little theorem:

Prove commutativity from Wolfram’s minimal axiom for Boolean algebra:

Properties & Relations &#160; &#160; (2)

Use Assuming to propagate assumptions:

Use FullSimplify to simplify expressions involving special functions:

Possible Issues &#160; &#160; (2)

The Wolfram Language evaluates zero times a symbolic expression to zero:

This happens even if the symbolic expression is always infinite:

Because of this, results of simplification of expressions with singularities are uncertain:

In this case, FullSimplify recognizes the zero:

Results of simplification may depend on the names of symbols:

See Also

Tutorials

    &#9642;

  • Simplifying Algebraic Expressions &#9642;
  • Simplifying with Assumptions &#9642;
  • Simplification &#9642;
  • Putting Expressions into Different Forms &#9642;
  • Using Assumptions

Related Guides

    &#9642;

  • Formula Manipulation &#9642;
  • Manipulating Equations &#9642;
  • Algebraic Transformations &#9642;
  • Assumptions and Domains

Related Links

  • &#9642; Implementation notes: Algebra and Calculus (A New Kind of Science)

History

Introduced in 1988 (1.0) &#160; | Updated in 1996 (3.0) &#160; &#9642; 1999 (4.0) &#160; &#9642; 2000 (4.1) &#160; &#9642; 2002 (4.2) &#160; &#9642; 2003 (5.0) &#160; &#9642; 2014 (10.0)

REDMOND

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *