2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Обобщенная формула в maple
Сообщение16.10.2011, 14:07 


16/10/11
3
Здравствуйте. Такая ситуация: пытаюсь написать алгоритм вывода элементарных симметрических многочленов по заданному количеству переменных в maple... Для n переменных формула выглядит так: S_k=\sum_{1\leq i_1<i_2<..<i_k \leq n} x_{i_1}\cdot x_{i_2}\cdot \ldots \cdot x_{i_k}. Проблема в том, как это записать, чтобы было понятно maple... Если писать вручную для каждого S_k, например, до n\leq 5, выходит нечто типа:
Код:
S[1] := sum(x[q], q = 1 .. n);
for s from 2 to n do
  S[s] := 0
end do;

for i[1] from 1 to n do
  for i[2] from 1 to n do
   if i[1] < i[2] then
    S[2] := S[2]+x[i[1]]*x[i[2]]
   end if
  end do
end do;

for i[1] from 1 to n do
  for i[2] from 1 to n do
   for i[3] from 1 to n do
    if i[1] < i[2] and i[2] < i[3] then
     S[3] := S[3]+x[i[1]]*x[i[2]]*x[i[3]]
    end if
   end do
  end do
end do;

for i[1] from 1 to n do
  for i[2] from 1 to n do
   for i[3] from 1 to n do
    for i[4] from 1 to n do
     if i[1] < i[2] and i[2] < i[3] and i[3] < i[4] then
      S[4] := S[4]+x[i[1]]*x[i[2]]*x[i[3]]*x[i[4]]
     end if
    end do
   end do
  end do
end do;

for i[1] from 1 to n do
  for i[2] from 1 to n do
   for i[3] from 1 to n do
    for i[4] from 1 to n do
     for i[5] from 1 to n do
      if i[1] < i[2] and i[2] < i[3] and i[3] < i[4] and i[4] < i[5] then
       S[5] :=S[5]+x[i[1]]*x[i[2]]*x[i[3]]*x[i[4]]*x[i[5]]
      end if
     end do
    end do
   end do
  end do
end do:


Но вот как это обобщить в одну формулу для любого n не знаю :-( Может кто-нибудь сможет помочь, пожалуйста?

 Профиль  
                  
 
 Re: Обобщенная формула в maple
Сообщение19.10.2011, 10:11 


25/08/05
645
Україна
Симметрические многочлены удобнее находить как коеффициенты при $X$ многочлена $(X-x_1)(X-x_2) \cdots (X-x_n).$ Соответсвующую Maplе-процедуру можно реализовать например так

Код:
S:=(n,m)->(-1)^(n-m+1)*simplify(coeff(product(X-x[i],i=1..n),X,(n-m)));


Тогда получим

$S(4,2)=x_{{1}}x_{{2}}+x_{{1}}x_{{3}}+x_{{2}}x_{{3}}+x_{{1}}x_{{4}}+x_{{2}}x_{{4}}+x_{{3}}x_{{4}}.$

$S(5,1)=x_{{5}}+x_{{4}}+x_{{3}}+x_{{2}}+x_{{1}}$

 Профиль  
                  
 
 Re: Обобщенная формула в maple
Сообщение19.10.2011, 15:43 


16/10/11
3
Leox
Эх...совсем не подумал об этом...спасибо!!!
Однако для S(4,4), например, считает с отрицательными знаками...Вы немного ошиблись в формуле:
(-1)^(2*n-m)
Но всё равно спасибо за подсказку :-)

 Профиль  
                  
 
 Re: Обобщенная формула в maple
Сообщение19.10.2011, 17:35 


16/10/11
3
вернее там просто $m$ достаточно)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group