Пара вопросов

Форум пользователей пакета Mathematica

Модератор: Admin

nerf
Сообщения: 14
Зарегистрирован: Пн май 30, 2011 1:17 pm

Пара вопросов

Сообщение nerf » Ср фев 22, 2012 6:31 pm

1)можно ли отключить автоматическое упрощение(например сокращение sin/cos->tan, чтобы можно было ими манипулировать, т.е. Hold не подходит)?
2)Можно ли сделать, чтобы аналогично maple работали конструкции вида:

Код: Выделить всё

F[fi_]:= r /. FindInstance[r ArcTan[r] == fi], r][[1]];
Integrate[(F[fi])^2, {fi,0,Pi/Sqrt[3]}]

Проблема состоит в том, что большинство функций сначала ищут значение 1 аргумента(функций Integrate, NIntegrate, скорее всего, всех подобных) в символьном виде, поэтому возникает неизвестная переменная и ошибка.

nerf
Сообщения: 14
Зарегистрирован: Пн май 30, 2011 1:17 pm

Сообщение nerf » Сб фев 25, 2012 5:32 pm

Второй вопрос - чушь. Сам не знаю, что хотел получить. :lol:

volmike
Сообщения: 235
Зарегистрирован: Вс июн 05, 2005 2:42 pm
Контактная информация:

Re: Пара вопросов

Сообщение volmike » Пт мар 02, 2012 7:42 pm

nerf писал(а):1)можно ли отключить автоматическое упрощение(например сокращение sin/cos->tan, чтобы можно было ими манипулировать, т.е. Hold не подходит)?


Приведите конкретный пример и желаемой действие манипуляции.
Лысый пешему не конный...

nerf
Сообщения: 14
Зарегистрирован: Пн май 30, 2011 1:17 pm

Сообщение nerf » Сб мар 03, 2012 12:24 pm

volmike, ну, например

Код: Выделить всё

l = Tan[a] - Tan[(2 a)/3] - Tan[a/3];
r = Tan[a] Tan[(2 a)/3] Tan[a/3];

Нужно доказать тождество l = r, приведя левую и правую часть к одному виду. Делается ч\з приведения тангенса к отношению синус к косинусу(sincos в maple). Но проблема в том, что производя замену вручную

Код: Выделить всё

/. Tan[x_]->Sin[x]/Cos[x]

, происходит автоматическое упрощение обратно в тангенс. Понятно?

volmike
Сообщения: 235
Зарегистрирован: Вс июн 05, 2005 2:42 pm
Контактная информация:

Сообщение volmike » Сб мар 03, 2012 5:42 pm

nerf писал(а):volmike, ну, например

Код: Выделить всё

l = Tan[a] - Tan[(2 a)/3] - Tan[a/3];
r = Tan[a] Tan[(2 a)/3] Tan[a/3];

Нужно доказать тождество l = r, приведя левую и правую часть к одному виду. Делается ч\з приведения тангенса к отношению синус к косинусу(sincos в maple). Но проблема в том, что производя замену вручную

Код: Выделить всё

/. Tan[x_]->Sin[x]/Cos[x]

, происходит автоматическое упрощение обратно в тангенс. Понятно?


В данном конкретном случае для каждого из выражений можно использовать комбинацию функций TrigExpand[expr]//FullSimplify.
Лысый пешему не конный...

nerf
Сообщения: 14
Зарегистрирован: Пн май 30, 2011 1:17 pm

Сообщение nerf » Вс мар 04, 2012 1:16 pm

Действительно. Но интересен сам факт, можно ли отключить упрощение.

volmike
Сообщения: 235
Зарегистрирован: Вс июн 05, 2005 2:42 pm
Контактная информация:

Сообщение volmike » Вс мар 04, 2012 4:41 pm

nerf писал(а):Действительно. Но интересен сам факт, можно ли отключить упрощение.

Можно использовать такую конструкцию:

Код: Выделить всё

(l /. Tan[x_] -> ComplexExpand[Tan[x]]) // FullSimplify
Лысый пешему не конный...

nerf
Сообщения: 14
Зарегистрирован: Пн май 30, 2011 1:17 pm

Сообщение nerf » Ср мар 07, 2012 4:06 pm

Вы ведь понимаете, что это все костыли. На сколько я понял в математике есть ряд "фич":
1) автоматическое упрощение(это конечно хорошо, но при отсутствии возможности отключения, возможны проблемы).
2) оставлять иррациональность в знаменателе(не хорошо)
3) проблема со степенями(нет, считает все правильно), например 63^(1/3) выведет как 3^(2/3)*7^(1/3). Мелочь, но не приятная, была бы возможность собрать степени...