r_green Цитата: следует ввести какие-то допущения (assumptions) для математики на более ранних этапах вычисления?
до самого конца держу всё в аналитическом виде, пока уже не рисую чего-нибудь. Проблема в том, что любое вычисление начнёт вычислять
поотдельности этот миллион корней, в результате все цифры немного поедут и где должны быть ровно нули, возникнут 10^-15. А любое ненулевое значение меняет то, как себя ведут решения. Такая интересная чувствительность - пожалуй весьма жгучее исключение, я сам первый раз на такое наткнулся, когда оцифровка результата становится багом. Как правильный результат получить? Вот тут и проблемка: пока получается так, что если формула получилась "неудачная" после сворачивания, то ничто не поможет. Т.е. если (от балды) корень удалось вынести за тригонометрическую функцию, скажем, решение будет давать правильный результат, а если где-нибудь в аргументе этот корень аккумулировался - не вычислится. У меня есть такие 2 разных решения одной задачи, в которых результат аналитически абсолютно идентичен, но если один параметр поставить = 0, то одно решение сойдётся в числах к правильной физике, а другое нет, хоть убейся.
Чтобы избегать ошибок, пользуюсь пока самой физикой явления: модулирую параметр и смотрю, как он себя ведёт. Когда это ошибочный "неноль", реакции на модуляцию нет, а физичные особенности решения ведут себя правильно - следуют модуляции.
Возможно следует интегратор Plot регулировать, но это шансы всё-равно: иногда попадёт, иногда нет. Тоже мне известны такие задачи, когда люди ищут бесконечно узкий резонанс, и любой интегратор с любым шагом их все пропустит. Поэтому чтобы увидеть резонансы, они задают дробные шаги, которые в точности попадают в нужные места, но это они знают корни системы... а если не знают, то фиг найдёшь их в численном решении.
В общем, отвлёкся немного...