Представление числа суммой слагаемых

Форум пользователей пакета Maple

Модератор: Admin

berg
Сообщения: 37
Зарегистрирован: Чт янв 19, 2012 8:33 pm

Представление числа суммой слагаемых

Сообщение berg » Вт дек 04, 2012 2:58 pm

Элементарная задача:найти сумму числового ряда.
Элементарное решение:
> sum((2*n-1)^3,n=1..5);

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

Kitonum
Сообщения: 2084
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Сообщение Kitonum » Вт дек 04, 2012 6:34 pm

solve({sum((2*n-1)^3,n=1..k)=1225, k>0});
{k = 5}

Markiyan Hirnyk
Сообщения: 1366
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Сообщение Markiyan Hirnyk » Вт дек 04, 2012 7:55 pm

A:=proc (a::real)
local n, k;
if abs(eval(sum((2*n-1)^3, n = 1 .. k)-a, k = floor(rhs(op(solve({sum((2*n-1)^3, n = 1 .. k) = a, 0 < k})))))) <= abs(eval(sum((2*n-1)^3, n = 1 .. k)-a, k = 1+floor(rhs(op(solve({sum((2*n-1)^3, n = 1 .. k) = a, 0 < k}))))))
then floor(rhs(op(solve({sum((2*n-1)^3, n = 1 .. k) = a, 0 < k}))))
else 1+floor(rhs(op(solve({sum((2*n-1)^3, n = 1 .. k) = a, 0 < k}))))
end if
end proc:

A(1367);

5

berg
Сообщения: 37
Зарегистрирован: Чт янв 19, 2012 8:33 pm

Сообщение berg » Ср дек 05, 2012 2:41 pm

Kitonum писал(а):solve({sum((2*n-1)^3,n=1..k)=1225, k>0});
{k = 5}

Каким будет решение данной задачи, если заданное число 1227?

Kitonum
Сообщения: 2084
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Сообщение Kitonum » Ср дек 05, 2012 4:15 pm

berg писал(а):
Kitonum писал(а):solve({sum((2*n-1)^3,n=1..k)=1225, k>0});
{k = 5}

Каким будет решение данной задачи, если заданное число 1227?


solve({sum((2*n-1)^3,n=1..k)=1227, k>0});

rhs(op(%))=evalf(rhs(op(%)));

berg
Сообщения: 37
Зарегистрирован: Чт янв 19, 2012 8:33 pm

Сообщение berg » Ср дек 05, 2012 8:18 pm

solve({sum((2*n-1)^3,n=1..k)=1227, k>0});
rhs(op(%))=evalf(rhs(op(%)));
[/quote]

Выдается результат k=5.002018970. Это не то, что надо.
Можно ли получить решение в таком виде:
1227=1^3+3^3+5^3+7^3+9^3+2

Markiyan Hirnyk
Сообщения: 1366
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Да

Сообщение Markiyan Hirnyk » Ср дек 05, 2012 10:11 pm

berg писал(а):Выдается результат k=5.002018970. Это не то, что надо.
Можно ли получить решение в таком виде:
1227=1^3+3^3+5^3+7^3+9^3+2?

A := proc (a::positive) local n, k; k := floor(rhs(op(solve({sum((2*n-1)^3, n = 1 .. k) = a, 0 < k})))); a = Sum((2*n-1)^3, n = 1 .. k)+a-(sum((2*n-1)^3, n = 1 .. k)) end proc;
A(1227);

1227 = Sum((2*n-1)^3, n = 1 .. 5)+2

volmike
Сообщения: 235
Зарегистрирован: Вс июн 05, 2005 2:42 pm
Контактная информация:

Сообщение volmike » Чт дек 06, 2012 4:25 pm

Эта сумма имеет аналитическое представление:
sum((2*n-1)^3,n=1...k)=2*k^4-k^2.
Поэтому для нахождения необходимого представления числа с достаточно решить биквадратное уравнение 2*k^4-k^2=с относительно k, при необходимости взяв целую часть от решения,при этом решению будет удовлетворять только одно значение k=1/2*sqrt(1 + sqrt(1 + 8*c)).
Лысый пешему не конный...

berg
Сообщения: 37
Зарегистрирован: Чт янв 19, 2012 8:33 pm

Re: Да

Сообщение berg » Чт дек 06, 2012 7:45 pm

Markiyan Hirnyk писал(а):
berg писал(а):Выдается результат k=5.002018970. Это не то, что надо.
Можно ли получить решение в таком виде:
1227=1^3+3^3+5^3+7^3+9^3+2?

A := proc (a::positive) local n, k; k := floor(rhs(op(solve({sum((2*n-1)^3, n = 1 .. k) = a, 0 < k})))); a = Sum((2*n-1)^3, n = 1 .. k)+a-(sum((2*n-1)^3, n = 1 .. k)) end proc;
A(1227);

1227 = Sum((2*n-1)^3, n = 1 .. 5)+2


Огромное спасибо, Markiyan Hirnyk!!!
Именно такое решение я искал.