Как подставить агрегатное выражение - PullRequest
0 голосов
/ 12 февраля 2011

Например, у меня есть символически

1/n*Sum[ee[k] + 1, {k, j, n}]^2

И я хочу заменить Sum[ee[k], {k, j+1, n}] на x.Как я могу это сделать?Спасибо за помощь!

Ответы [ 2 ]

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

Вы можете использовать рекуррентное соотношение для суммы.Например:

f[j] := f[j + 1] + (ee[j] + 1);

1/N f[j]^2 /. f[j + 1] -> x  

Out

(1 + x + ee[j])^2/N   

Edit

На основании нескольких вопросов, которые вы разместили, я думаю, что вы как-то неправильно истолковалиКоманда Replace [] делает.Он основан не на «алгебраической» основе, а на «шаблонной».Он не понимает и не использует больше алгебраических преобразований, чем те, которые уже определены (вами или самой Ммой).

Например:

x/. (x-1)->y  

не будет ничего соответствовать.Но

(x-1) /. x->y-1  

даст вам (у-2), потому что шаблон x совпадает.

Более того:

x = 3;
(x - 1) /. x -> y - 1  

даст вам 2 , потому что x вычисляется до возможного совпадения, и x в шаблоне также оценивается (просто вставьте, выполнитеи посмотрите на цвет символа).

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

1/N*Sum[ee[k] + 1, {k, j, N}]^2 /. Sum[ee[k] + 1, {k, j, N}] -> x

Разве это не работает или я неправильно понимаю? Кстати, вы не должны использовать N в качестве переменной. Это функция Mathematica.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...