2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Как "красиво" решить задачу в математическом пакете
Сообщение07.01.2011, 11:22 
Хотелось бы получить в каком-либо математическом пакете с графическим интерфейсом подобный результат:

$\frac{\partial }{\partial x_j}\sum \limits_{i=1}^{\infty } x_i*x_{i+1}=x_{j-1}+x_{j+1}$

Понятно, что результат верен для j > 1.
Т.е. в математическом пакете должна быть похожая строка, желательно с минимальным количеством "лишних" операций.
Максимум, что я смог получить, это вот такой код (в Mathematica):

    In[1]:= $\text{dx}[\text{q$\_$}]\text{:=}\left(\inf =100;\text{ii}=50;\text{r1}=q \text{ /. } \infty \to  \inf ;\text{r2}=D\left[\text{r1},x_{\text{ii}}\right];\text{r3}=\text{r2} \text{ /. } x_{\text{Integer$\_$}}\to x_{j+\text{Integer}-\text{ii}}\right)$
    In[2]:= $\text{dx}\left[\sum\limits_{i=1}^{\infty } x_i*x_{i+1}\right]$
    Out[3]= $x_{-1+j}+x_{1+j}$

 
 
 
 Re: Как "красиво" решить задачу в математическом пакете
Сообщение08.01.2011, 10:47 
Аватара пользователя
Что вы имеете в виду под "получить"? Результат-то очевидный. Что должен делать мат.пакет (математика в частности), чтобы получить результат? Что угодно или же обязательно производную брать надо?

 
 
 
 Re: Как "красиво" решить задачу в математическом пакете
Сообщение08.01.2011, 21:09 
Да, хотелось бы, чтобы когда берется производная от данного выражения, получался такой результат.

Т.е. я ввожу в математический пакет выражение:

$\frac{\partial }{\partial x_j}\sum \limits_{i=1}^{\infty } x_i*x_{i+1}$

а математический пакет выдает:

$x_{j-1}+x_{j+1}$

Я пробывал брать производные от суммы бесконечного числа аргументов в Maple, Mathematica, MathCAD, но все они выдают по-моему не правильные, с точки зрения математки, результаты. Т.е. я получаю примерно следующее:

$\frac{\partial }{\partial x_i}\sum \limits_{i=1}^{\infty } x_i = \sum \limits_{i=1}^{\infty } 1$
$\frac{\partial }{\partial x_j}\sum \limits_{i=1}^{\infty } x_i = 0$
$\frac{\partial }{\partial x_{10}}\sum \limits_{i=1}^{\infty } x_i = 0$

Таким образом, математические пакеты просто "вносят" производную под знак суммы, смотрят на эту сумму, как на некоторую функцию от $x_i$, а не как на сумму.

Мои выводы: или математические пакеты не умеют правильно считать такие выражения (в чем я сильно сомневаюсь)
или же я просто не умею правильно задавать математическому пакету данные выражения.

 
 
 
 Re: Как "красиво" решить задачу в математическом пакете
Сообщение09.01.2011, 17:38 
Аватара пользователя
Насчет всех пакетов судить не берусь, но Математика вам "практически верно" дает ответ, ведь она при развороте сумм не видит там никаких переменных с неизвестными индексами типа j, у нее там все индексы пронумерованы, а вы дифференцируете по переменной, которой нет в выражении. И Математика вовсе не обязана при символьных вычислениях предвидеть подобные вещи. Математика это не решебник любых задач, это инструмент, с помощью которого можно решать задачи. Эту задачу можно решить и без помощи математических пакетов.
Если уж непременно надо и именно в такой формулировке решать, то переопределите производную примерно такой функцией
Код:
SetAttributes[Dx, HoldAll];
Dx[Sum[Subscript[x_, i_]*Subscript[x_, j_], {i_, 1, Infinity}],
Subscript[x_, k_]] := Subscript[x, k - 1] + Subscript[x, k + 1]

и она даст вам так желаемую вами формулу. Но работать будет только для сумм такого вида. Чего вы этим добиваетесь, я не очень понимаю....

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group