popkov
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору egorovshura Не знаю такого способа. Скорее всего, это доступно только в специальной "отладочной" версии Mathematica, которую используют сами разработчики. 2All Кстати, вот ещё один (не столь жуткий) баг Simplify и FullSimplify (просто дисфункциональность): Mathematica почему-то не может упростить x^2/y^2 до (x/y)^2, даже если указать конкретную ComplexityFunction: In[1]:= Simplify[x^2/y^2, ComplexityFunction -> LeafCount] Out[1]= x^2/y^2 In[2]:= LeafCount[Hold[x^2/y^2]] Out[2]= 10 In[3]:= LeafCount[Hold[(x/y)^2]] Out[3]= 8 И даже хуже (что уже совсем непонятно): In[5]:= Simplify[(x/y)^2, ComplexityFunction -> LeafCount] Out[5]= x^2/y^2 Однако в наиболее общем случае поведение становится "половинчато верным": In[12]:= Simplify[(x/y)^n, ComplexityFunction -> LeafCount] Out[12]= (x/y)^n In[15]:= Simplify[x^n/y^n, ComplexityFunction -> LeafCount] Out[15]= x^n y^-n Баг присутствует как в верси 5.2, так и в версии 7.0.1. Добавлено: Только что пришла в голову слабая догадка. Дело в том, что в 6-й (лишь только для указананного ниже случая) и окончательно в 7-й версии Mathematica исправлена недоработка функции FullSimplify, из-за которой она не могла упростить, например, такое выражение: In[8]:= Simplify[2*4^z-4^z] Out[8]= 2^(1 + 2 z) - 4^z (это в Mathematica 5.2) В 7.0.1 все подобные выражения упрощаются корректно: In[5]:= Table[{2*m^z-m^z,FullSimplify[2*m^z-m^z]},{m,1,21}]//TableForm Out[5]//TableForm= 1 | 1 | -2^z+2^(1+z) | 2^z | 3^z | 3^z | 2^(1+2 z)-4^z | 4^z | 5^z | 5^z | 2^(1+z) 3^z-6^z | 6^z | 7^z | 7^z | 2^(1+3 z)-8^z | 8^z | 9^z | 9^z | 2^(1+z) 5^z-10^z | 10^z | 11^z | 11^z | 2^(1+2 z) 3^z-12^z | 12^z | 13^z | 13^z | 2^(1+z) 7^z-14^z | 14^z | 15^z | 15^z | 2^(1+4 z)-16^z | 16^z | 17^z | 17^z | 2^(1+z) 9^z-18^z | 18^z | 19^z | 19^z | 2^(1+2 z) 5^z-20^z | 20^z | 21^z | 21^z | Andrzej Kozlowski попытался объяснить неправильное поведение для данного конкретного случая и даже написал свою собственную функцию mySimplify, которая позволяет обойти глюк. Так вот, очень может быть, что между указанными глюками есть связь. Ведь баги сейчас именно "фиксят", вместо того, чтобы исправить причину его возникновения. Один симптом пофиксили, а сколько ещё таких симтомов... | Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 08:35 16-04-2009 | Исправлено: popkov, 09:37 16-04-2009 |
|