2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:09 


26/09/17
294
kotenok gav в сообщении #1458165 писал(а):
maximkarimov в сообщении #1458162 писал(а):
s=3.980154972736918e+18

Это при $n=89$?


Да.

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:09 


21/05/16
4157
Аделаида
maximkarimov в сообщении #1458166 писал(а):
Да.

И параллельно вы говорите, что $a006206(89)=1$.

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:15 


26/09/17
294
kotenok gav в сообщении #1458165 писал(а):
maximkarimov в сообщении #1458162 писал(а):
s=3.980154972736918e+18

Это при $n=89$?

Да.
После деления на n получаю 4.472084239030245e+16 - это неверное значение. Вот собственно и проблема.

-- 27.04.2020, 12:22 --

kotenok gav в сообщении #1458167 писал(а):
maximkarimov в сообщении #1458166 писал(а):
Да.

И параллельно вы говорите, что $a006206(89)=1$.

Сорри! Это значение, которое для любого простого числа дает A000358 минус A006206.
Это позволяет проверять верность вычисления численными методами.
Для вычисления членов A000358 получилось задействовать Symbol toolbox - там целое число на выходе сколь угодно большое без проблем получаю. А для вычисления членов A006206 использовать символьные вычисления у меня не получается. В этом собственно и прошу помощи.

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:22 


21/05/16
4157
Аделаида
maximkarimov в сообщении #1458168 писал(а):
После деления на n получаю 4.472084239030245e+16 - это неверное значение. Вот собственно и проблема.

Что вы знаете о такой вещи, как потеря точности при делении больших чисел на малые?

-- 27 апр 2020, 19:00 --

maximkarimov в сообщении #1458168 писал(а):
4.472084239030245e+16

Вы, наверное, удивитесь, но это правильное значение.

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:31 


26/09/17
294
kotenok gav в сообщении #1458170 писал(а):
maximkarimov в сообщении #1458168 писал(а):
После деления на n получаю 4.472084239030245e+16 - это неверное значение. Вот собственно и проблема.

Что вы знаете о такой вещи, как потеря точности при делении больших чисел на малые?

Нет, не слышал. Но вижу. Хочу решить проблему вычисления членов А006206 задействуя символьные вычисления, но не получается.
Можете предложить другой путь?
Вот работающий код для точного (символьного) вычисления членов А000358 (на всякий случай):
Используется синтаксис Matlab M
function [a] = calcType1Total (n)
    % подсчитывает А000358 по формуле Ходжикостаса
    n=sym(n);
    s=0;
    for i=1:n
        if mod(n,i)==0
            s=s+totient(n/i)*(fibonacci(i+1)+fibonacci(i-1));
        end
    end
    a=s/n;
end
 

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:32 


21/05/16
4157
Аделаида
maximkarimov в сообщении #1458171 писал(а):
Хочу решить проблемы задействуя символьные вычисления, но не получается.

Давайте по-другому. Зачем вам вообще вычислять эту последовательность?

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:34 


26/09/17
294
kotenok gav в сообщении #1458170 писал(а):
maximkarimov в сообщении #1458168 писал(а):
После деления на n получаю 4.472084239030245e+16 - это неверное значение. Вот собственно и проблема.

Что вы знаете о такой вещи, как потеря точности при делении больших чисел на малые?

-- 27 апр 2020, 19:00 --

maximkarimov в сообщении #1458168 писал(а):
4.472084239030245e+16

Вы, наверное, удивитесь, но это правильное значение.

Угу, но не точное.
Помогите получить точное.

-- 27.04.2020, 12:35 --

kotenok gav в сообщении #1458172 писал(а):
maximkarimov в сообщении #1458171 писал(а):
Хочу решить проблемы задействуя символьные вычисления, но не получается.

Давайте по-другому. Зачем вам вообще вычислять эту последовательность?

Любопытно. Вас такой ответ устроит?

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:35 


21/05/16
4157
Аделаида
maximkarimov в сообщении #1458174 писал(а):
Угу, но не точное.

Вы, наверное, удивитесь, но это точное значение.

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:38 


26/09/17
294
kotenok gav в сообщении #1458175 писал(а):
maximkarimov в сообщении #1458174 писал(а):
Угу, но не точное.

Вы, наверное, удивитесь, но это точное значение.

То есть ошибка возникает при делении этого числа на 89?
А как ее избежать? Умоляю, скажите!!! Очень нужно!

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:39 


21/05/16
4157
Аделаида
maximkarimov в сообщении #1458176 писал(а):
То есть ошибка возникает при делении этого числа на 89?

Вы, наверное, удивитесь, но она не возникает.
maximkarimov в сообщении #1458174 писал(а):
Любопытно. Вас такой ответ устроит?

Если вы хотите найти какую-то закономерность - есть http://oeis.org/A006206/b006206.txt.

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 11:58 


26/09/17
294
kotenok gav в сообщении #1458177 писал(а):
maximkarimov в сообщении #1458176 писал(а):
То есть ошибка возникает при делении этого числа на 89?

Вы, наверное, удивитесь, но она не возникает.
maximkarimov в сообщении #1458174 писал(а):
Любопытно. Вас такой ответ устроит?

Если вы хотите найти какую-то закономерность - есть http://oeis.org/A006206/b006206.txt.


Вот!!! Смотрим 89 член по этой ссылке: 44720842390302450
Далее смотрим А000358 (89): 44720842390302451
Разница равна 1 (как и для любого n=p).
Второе число я вычисляю точно, а первое - не получаецца!
Как вычислить первое число в Матлабе - подскажите, прошу Вас!

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 12:05 


21/05/16
4157
Аделаида
maximkarimov в сообщении #1458181 писал(а):
44720842390302450

maximkarimov в сообщении #1458168 писал(а):
4.472084239030245e+16

Вы видите разницу между этими значениями?

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 12:14 
Заслуженный участник


12/07/07
4135
Донецк, Украина
maximkarimov, можно проще в MuPAD
Matlab R2013b::MuPAD
Код:
A006206 := proc(n)
  local sum, d;
begin
     sum := 0;
     for d in numlib::divisors(n) do
       sum := sum + numlib::moebius(n/d)*(numlib::fibonacci(d+1)+numlib::fibonacci(d-1))
     end;
    sum/n;
end;

A006206(89)
    44720842390302450
Вложение:
Комментарий к файлу: Matlab R2013b::MuPAD
A006206.PNG
A006206.PNG [ 6.18 Кб | Просмотров: 1020 ]

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 12:17 


26/09/17
294
kotenok gav в сообщении #1458182 писал(а):
maximkarimov в сообщении #1458181 писал(а):
44720842390302450

maximkarimov в сообщении #1458168 писал(а):
4.472084239030245e+16

Вы видите разницу между этими значениями?



У числа 4.472084239030245e+16 не видно значение в разряде, который следует за 5 в конце.
Должна быть 1, но когда я вычитаю из него 44720842390302450, то получаю то 3, то 2.

 Профиль  
                  
 
 Re: Matlab: символьное вычисление членов посл-ти A006206
Сообщение27.04.2020, 12:19 


21/05/16
4157
Аделаида
maximkarimov в сообщении #1458184 писал(а):
Должна быть 1, но когда я вычитаю из него 44720842390302450, то получаю то 3, то 2.

Это называется "потерей точности".

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

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



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

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


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

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