2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Когда полином равен нулю?
Сообщение22.02.2017, 22:01 
Аватара пользователя


12/03/11
688
Рассмотрим полином $F = A_1 x^{\alpha_1} y^{\beta_1} + A_2 x^{\alpha_2} y^{\beta_2}.$
Он равен нулю в случае когда либо:
1) $A_1 = A_2 = 0$
либо
2) $\alpha_1 = \alpha_2, \beta_1 = \beta_2, A_1 = -A_2$.

Возьмем теперь произвольный случай: $F = A_1 x^{\alpha_1} y^{\beta_1} + A_2 x^{\alpha_2} y^{\beta_2} + ... + A_n x^{\alpha_n} y^{\beta_n}.$
Интересно как теперь найти все возможные условия равенства нулю.
Полагаю, можно свести это дело к какому-нибудь известному алгоритму. Есть идеи? :roll:

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение22.02.2017, 22:07 


25/08/11

1074
У Вас не все случаи равенства нулю рассмотрены, даже для первого двучлена. Например, переменные могут равняться нулю, когда вынесешь общий множитель. А так вопрос почти безсодержательный-найти нулю и при одной переменной нельзя аналитически, что уж при двух. Или Вы что-то не договариваете.

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение22.02.2017, 22:13 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Рассмотрите все возможные разбиения множества $\{1,\ldots,n\}$ на подмножества. В каждом подмножестве показатели должны быть равны друг другу, а сумма коэффициентов - нулю. Ваши случаи соответствуют разбиениям:
1) $\{1\},\{2\};$
2) $\{1,2\}.$

-- 22.02.2017 22:14:43 --

sergei1961
Очевидно, спрашивается, когда выражение равно нулю не как значение функции в точке, а как функция.

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение22.02.2017, 22:28 
Заслуженный участник
Аватара пользователя


20/08/14
8082
Дабы избегать таких недоразумений, можно пользоваться оборотом "тождественно равен нулю".

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение22.02.2017, 22:37 
Заслуженный участник


27/04/09
28128
Или «равен нулевому [многочлену]».

Кстати, не понимаю, зачем разбиения — нужно просто привести его к виду
DLL в сообщении #1194686 писал(а):
$F = A_1 x^{\alpha_1} y^{\beta_1} + A_2 x^{\alpha_2} y^{\beta_2} + ... + A_n x^{\alpha_n} y^{\beta_n}.$
в котором, однако, не более одного слагаемого для каждого набора степеней переменных. Тогда равенство нулю — это просто одновременное равенство нулю всех $A_i$. Это и для компьютерных вычислений практичнее, if any.

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение23.02.2017, 01:46 
Заслуженный участник
Аватара пользователя


30/01/06
72407
arseniiv в сообщении #1194697 писал(а):
Или «равен нулевому [многочлену]».

Ну, если альфы и беты, не дай бог, нецелые, то является ли это многочленом? (Вопрос риторический.)

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение23.02.2017, 01:56 
Заслуженный участник
Аватара пользователя


13/08/08
14463
arseniiv, привести подобные, как в 7 классе? :-)

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение23.02.2017, 09:00 


25/08/11

1074
arseniiv - согласен с Вами. Если спрашивается про тождественно, то по определению. Для немногочленов-непонятно. Для рациональных степеней можно свести дело к многочленам заменами, иначе это похоже безнадёжно, или как?

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение23.02.2017, 10:11 
Аватара пользователя


12/03/11
688
arseniiv в сообщении #1194697 писал(а):
Или «равен нулевому [многочлену]».

Кстати, не понимаю, зачем разбиения — нужно просто привести его к виду
DLL в сообщении #1194686 писал(а):
$F = A_1 x^{\alpha_1} y^{\beta_1} + A_2 x^{\alpha_2} y^{\beta_2} + ... + A_n x^{\alpha_n} y^{\beta_n}.$
в котором, однако, не более одного слагаемого для каждого набора степеней переменных. Тогда равенство нулю — это просто одновременное равенство нулю всех $A_i$. Это и для компьютерных вычислений практичнее, if any.

ОК, но на самом деле задача чуть сложнее.
Некоторые альфы и беты заданы как числа.
А некоторые как неизвестные, но максимум в виде линейной комбинации.
Например: $3m - 5n$ :roll:

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение23.02.2017, 14:42 
Аватара пользователя


12/03/11
688
Ну то есть речь скажем идет:
$F = A_1 x^{4m-5n} y^{n+2} + A_2 x^{m+n} y^{2n - 1}$.
P.S: альфы и беты зависят от неизвестных линейно!

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение23.02.2017, 15:11 
Заслуженный участник


27/04/09
28128
Munin в сообщении #1194721 писал(а):
Ну, если альфы и беты, не дай бог, нецелые, то является ли это многочленом? (Вопрос риторический.)
Вообще, конечно, вопрос темы допускает такое расширение с ровно аналогичным же решением, но я в формулировках оставался в рамках того, что написал ТС. :wink:

gris в сообщении #1194725 писал(а):
arseniiv, привести подобные, как в 7 классе? :-)
Да, именно.

sergei1961 в сообщении #1194742 писал(а):
иначе это похоже безнадёжно, или как?
Да вроде всё надёжно и для возможно иррациональных степеней, если ничего не упускаю.

DLL в сообщении #1194746 писал(а):
А некоторые как неизвестные, но максимум в виде линейной комбинации.
Например: $3m - 5n$ :roll:
Но общее решение этим не отменяется. Просто возникнет много условных конструкций, ну так и что?

Пример: $$ax^\alpha + a'x^{\alpha'} = (\alpha=\alpha') \mathbin? (a + a')x^\alpha : (ax^\alpha + a'x^{\alpha'}),$$где справа выражение в «каноническом» виде (что вообще уместно представлять как списки, множества или что-то в этом духе, если мы о вычислениях), а слева не обязательно. Или можно скобками Айверсона записать, тут уж зависит от того, чем будет удобнее манипулировать.

DLL в сообщении #1194786 писал(а):
P.S: альфы и беты зависят от неизвестных линейно!
Значит, в худшем случае придётся решать лишь линейные системы. :-)

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение23.02.2017, 19:31 
Заслуженный участник


27/04/09
28128
Да, разбиения всё-таки полезны оказываются, если писать реализацию. Например, для выражения
Код:
x^a[1] A[1] + x^a[2] A[2] + x^a[3] A[3] + x^a[4] A[4]
можно получить
Код:
(a[1] == a[2] == a[3] == a[4] && A[1] + A[2] + A[3] + A[4] == 0) ||
(a[1] == a[2] && a[3] == a[4] && A[1] + A[2] == A[3] + A[4] == 0) ||
(a[1] == a[4] && a[2] == a[3] && A[1] + A[4] == A[2] + A[3] == 0) ||
(a[1] == a[3] && a[2] == a[4] && A[1] + A[3] == A[2] + A[4] == 0) ||
(a[2] == a[3] == a[4] && A[1] == A[2] + A[3] + A[4] == 0) ||
(a[1] == a[3] == a[4] && A[1] + A[3] + A[4] == A[2] == 0) ||
(a[1] == a[2] == a[3] && A[1] + A[2] + A[3] == A[4] == 0) ||
(a[1] == a[2] == a[4] && A[1] + A[2] + A[4] == A[3] == 0) ||
(a[3] == a[4] && A[1] == A[2] == A[3] + A[4] == 0) ||
(a[2] == a[3] && A[1] == A[2] + A[3] == A[4] == 0) ||
(a[2] == a[4] && A[1] == A[2] + A[4] == A[3] == 0) ||
(a[1] == a[2] && A[1] + A[2] == A[3] == A[4] == 0) ||
(a[1] == a[3] && A[1] + A[3] == A[2] == A[4] == 0) ||
(a[1] == a[4] && A[1] + A[4] == A[2] == A[3] == 0) ||
A[1] == A[2] == A[3] == A[4] == 0

Это, конечно, без учёта того, что a[i] могут быть линейными комбинациями других переменных, в случае чего равенства могут давать несовместные системы, и для таких равенств можно будет выкидывать соответствующий член дизъюнкции.

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение23.02.2017, 23:15 
Аватара пользователя


12/03/11
688
Это в каком пакете получено?

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение24.02.2017, 00:54 
Заслуженный участник


27/04/09
28128
Немного кода на Mathematica 8. Но я схитрил, и на входе на самом деле вот такое:
Код:
{{A[1], a[1]}, {A[2], a[2]}, {A[3], a[3]}, {A[4], a[4]}}
А код работы с этим такой:
Код:
Needs["Combinatorica`"]; (* SetPartitions *)
Clear[zeroCondition, partitionEqMap, partitionEqMap2]
partitionEqMap[f_, p_List] := And @@ Map[Equal @@ # &, Map[f, p, {2}]]
partitionEqMap2[f_, p_List] := Equal @@ Append[Map[Plus @@ (f /@ #) &, p], 0]
zeroCondition[expr_] := Block[
    {len = Length[expr], pns},
    pns = SetPartitions[len];
    Or @@ Map[And[
        partitionEqMap[expr[[#, 2]] &, #],
        partitionEqMap2[expr[[#, 1]] &, #]] &, pns]]
Документация не прилагается. :roll:

 Профиль  
                  
 
 Re: Когда полином равен нулю?
Сообщение24.02.2017, 01:12 
Заслуженный участник
Аватара пользователя


30/01/06
72407
arseniiv в сообщении #1194792 писал(а):
Вообще, конечно, вопрос темы допускает такое расширение

Кто сказал, что это расширение?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



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

Сейчас этот форум просматривают: Bing [bot]


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

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