Микроконтроллеры | Оптимизация математических выражений для МК |
|
---|---|---|
Для уменьшения объема ПО я использую таблицы с последующей аппроксимацией, для которой тоже использую таблицы. В ячейки таблицы заносятся точные значения функции F(X1, X2 ...) для дискретных значений аргументов Xi. Далее - обычная аппроксимация. Вычисление сводится к поиску приблизительных (табличных) значений F() и ее апроксимация до значения с заданной точностью. Процессор используеет только. вычитание и сложение. Для уменьшения число таблиц можно использовать умножение и деление. И, конечно, максимально использую подпрограммы. |
|
|
Vlad_Petr: Если при мысле об assm возникает токсикоз , то упрощать задачу или взять кристалл с большими ресурсами.. To Сергей К : Думаю, что вряд ли такую программу найдете, процесс слабоалгоритмизируемый. И вообще, imho, это тупиковый путь, если предстоит развитие проекта, а ресурсы жмут уже в самом начале. Кристалл помощнее, однозначно. To dmitriy2 : Тут палка с двумя кончиками : уменьшится объем кода, но за счет таблиц суммарный объем может увеличиться. Быстродействие - увеличится, факт, а насчет памяти - тут еще бабка на троих сообразила. |
|
|
Bul_d_Ozer: Я на одном форуме высказал такую мысль, но меня затоптали. Утверждают, что если влезло в кристалл на асме, то и на С влезет, Не удивительно, форумов нынче много...любую глупость можно прочитать.. |
|
|
Ну если вопрос теоретический, то насколько я помню курс математики, любую функцию можно разложить в ряд с заданной точностью. Все калькуляторы (и наверняка и компиляторы) именно так вычисляют значения фукций. То есть любую как-угодно сложную функцию можно свести к арифметическим операциям- сложение, умножение и т.д. Звучит это примерно так "Численные методы решения каких-то там уравнений", -поищите в учебниках, наверняка найдёте. |
|
|
найти, то я найду, но вот нет желания самому раскладывать огромную в ряд. Хочется ПК заставить этим заниматься. |
|
|
Сергей К: Хочется ПК заставить этим заниматься. |
|
|
Сергей К: Вот пример формул |
|
|
Я вот в раздумиях, а можно ли раскладывать в ряд функцию двух аргументов? Я встречал разложение только с одним аргументом. caddr: Использовать 32-битные числа с плавающей точкой (float) caddr: В частности, константы задавать в формате 3740.78f, 227.02f и т.д |
|
|
Сергей К: Это явное указание типа константы (float). По дефолту - double. |
|
|
Сергей К: можно ли раскладывать в ряд функцию двух аргументов? |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |