Pull to refresh

Comments 6

  for i = 1 : 50
         z = z^(2) / (1 + z + z^(4)) + constant; % используемая рекурсивная зависимость

        if real(z) < -2 || real(z) > 1 || imag(z) > 1.5 || imag(z) < -1.5
                color = 255 - 5.5 * (i - 1);
                return;
        end
    end

Не очень понятно каким образом выбраны константы [-2, 1] [-1.5; 1.5] и почему бы не использовать модуль комплексного числа для определения расходимости ряда. Другими словами, для каждой рекуррентной формулы, границы расходимости свои, и эти границы математически строго доказываются. Более того, на вашем рисунке видно, что существуют С вне этой границы такие, что последовательность на основе этого С не расходится.

Константа 5.5 для цвета нарушает непрерывность. Для i = 50, color будет -14.5. Это специально?

Не уверен, но похоже термин рекурсивной зависимости тут не уместен. Следует использовать «рекуррентная формула»
Вообще говоря константы [-2, 1] [-1.5; 1.5] были выбраны когда я строил множество Мондельброта, это просто начальная область в которой мы начинаем рассматривать фрактал. Можете другие выбрать. Про рекуррентную формулу — согласен.
Про цвет — нет не специально, константа -14.5 для матлаба эквивалентна 0 (черному). Вообще я ее (константу 5.5) подбирал экспериментально из собственных эстетических воззрений.
Для множества Мандельброта математически доказано, что последовательность расходится, когда |z| > 2.
Если рассматривать произвольный случай может просто имеет смысл расширить границы расходимости и надеяться, что их неточное указание для произвольного случая не сильно исказит картину? (хотя итак со скоростью проблемы) Для множества Мандельброта тогда надо было рассматривать границы [-2, 2] [-2; 2], хотя картина вроде не сильно меняется по сравнению [-2, 1] [-1.5; 1.5]. Спасибо, что прояснили.
В случае наличия неуверенности, нужно выбирать границу крайне большую (например |z| > 10^5), это практически гарантирует, что в случае наличия границы — все будет отлично, и на скорость не сильно повлияет, поскольку расхождение обычно происходит крайне быстро.

(|z| > 2 ) !<-> (z > [-2,2] [-2,2])
да, я понимаю, что не эквивалентно. спасибо большое, надо код функции определения принадлежности точки переписать след образом
function [ color] = is_a_m_point( constant )
    color = 0;
    z = 0; 
    for i = 1 : 100
          z = z^(2)  + constant;
        if abs(z) > 10^5
                color = 255 - 2.55 * (i - 1);
                return;
        end
    end
end
Sign up to leave a comment.

Articles