Отговори на тема  [ 8 мнения ] 
Математическа формула вместо алгоритъм 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 8:04 pm
Мнения: 2663
Местоположение: София / Велико Търново
Мнение Математическа формула вместо алгоритъм
Днес правихме едни измервания с колегата, нанесохме едни данни във Excel. Направихме и графика - линейна зависимост. Накрая накара Excel-а да генерира някакъв полином да проверял дали зависимостта е линейна...
Стана ми много любопитно това. Той каза, че може да се опише произволна крива със полином (разбира се доста сложен).

Сега разпитвам, chat-GPTто новото o1-preview и то казва същото. Даже можело да се опише някакъв алгоритъм със математическа формула. Това изглежда невероятно, формулата изглежда някак си статична, докато един алгоритъм има някаква последователност на действията. :roll:

_________________
https://github.com/slav4ocom/


Сря Сеп 18, 2024 4:52 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение Re: Математическа формула вместо алгоритъм
Ами в общи линии е точно така. Въпросът е какво от това :) Да смяташ формула, особенно дълга не е много ефективно, ако можеш да я опишеш с прост алгоритъм. Не знам ексела как се справя с генериране на функции, има доста други средства които го правят достатъчно точно. Аз покрай нея помагането на голямата щерка се сдобих с няколко акаунта но не знам дали още са активни.


Сря Сеп 18, 2024 9:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 06, 2018 5:18 pm
Мнения: 1750
Мнение Re: Математическа формула вместо алгоритъм
По принцип най-ефективният метод е референтна таблица - не съм сигурен за термина, на английски е LUT - look-up table. На компютъра си използваш формулата да си генерираш една база данни от стойности, които по-късно процесора ползва за да конвертира измерената величина. Пример - за да се линеаризира измерената температура посредством термистор (платина 100) се използва полинома на Callendar–Van Dusen, който е доста сложен и отнема много процесорно време за изчисление. Вместо това стойностите могат да се извлекат на компютър и да се запишат на флаш/ром памет за директно преобразуване като за адрес на паметта се използва измереното съпротвление a на съответната клетка от паметта е записана съответстващата на измереното съпротивлението температура.

_________________
“Intelligence is the ability to adapt to change.” Stephen Hawking


Чет Сеп 19, 2024 8:30 am
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Съб Апр 01, 2023 9:59 am
Мнения: 302
Мнение Re: Математическа формула вместо алгоритъм
Мисля си че формулата също е алгоритъм, тъй като и тя се изпълнява в поредица от инструкции. Така че в крайна сметка нещата опират до това кой метод е най-бърз.


Чет Сеп 19, 2024 11:01 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение Re: Математическа формула вместо алгоритъм
VPavlov написа:
Мисля си че формулата също е алгоритъм, тъй като и тя се изпълнява в поредица от инструкции. Така че в крайна сметка нещата опират до това кой метод е най-бърз.

Ами той въпроса май имаше малко по друг характер, иначе то всичко което изпълня яш като код е някакъв алгоритъм.
Сметките винаги отнемат време, в някои случаи може и да смяташ, ако имаш достатъчно ресурс


Чет Сеп 19, 2024 3:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11265
Местоположение: Добрич
Мнение Re: Математическа формула вместо алгоритъм
Алгоритъмът представлява набор от инструкции как да извършваш изчисления.
Малко история - механични "компютри" има на хиляди години, но терминът навлиза в началото на миналия век, когато се наемат предимно жени-компютри, които да смятат разни неща по зададени инструкции. Цялата наука информатика се базира именно на тоя тип "компютри". За по-научному, всъщност жените се заместват с абстрактни машини (машините на Тюринг), но концепцията е същата.
Примерен алгоритъм - да се намерят първите 100 прости числа. Предполагам всеки може да измисли такъв, тръгваш от числото 1 проверяваш дали е просто, ако не пробваш следващото... и т.н. докато станат 100.
Още един пример - да се намери най-голямото просто число...
Очевадно първия пример е елементарен и очевадно вторият е капан. Проблемът, който е тровел колегите програмисти от миналия век е, че реалните задачи пред тях не са били толкова очевидни. Демек може женичките да тръгнат да смятат и да смятат и никога да не стигнат до резултат. Днес на това му викаме да ти зацикли програмата. Но едно време на "компютрите" са работили бавно и е било малко кофти няколко месеца да нямаш резултат. Та затова са се замислили над темата дали може да се провери даден алгоритъм дали зацикля или не. Идеалното решение би било алгоритъм по който да се проверява друг алгоритъм. Уви, другарят Тюринг доказва че тая работа няма как да стане. И даже и днес няма как да проверим дали една програма ще зацикли или не.
Та така... алгоритмите се разделят на два вида - такива които приключват и дават резултат и такива, които изпадат в безкраен замисъл. От там пък имаме два вида задачи - такива, които могат да се решат с алгоритъм, който не зацикля. И такива, които не могат. Първите се наричат "изчислими", а другите не.

Сега на въпроса дали може да се опише алгоритъм с някаква формула... В буквалния смисъл не може, защото алгоритъмът е последователност от изчисления. В математиката, последователността не само не се описва, в много случаи тя е без значение. Примерно 5*a + 7*b няма значение кое умножение ще извършим първо. Освен това при алгоритмите "изчисление" е доста широко понятие, по-скоро "операция" някаква.
В по-широк смисъл, обаче, една формула може да описва резултат от алгоритъм. Особено ако алгоритъмът е за пресмятане на същата формула ;-)
Нещо повече, формулата може да описва безброй изчисления и това е малко по-полезно, отколкото алгоритъм с безкраен цикъл.

Що се отнася до интерполация... Ми за Ν на брой точки винаги може да се напише полином от Ν-та степен, поне по мои спомени. Затова според мен няма нищо удивително. Но някой по-добър в математиката може и да се удиви (на спомените ми ;-))


Чет Сеп 19, 2024 4:52 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение Re: Математическа формула вместо алгоритъм
Bai Ui написа:
По принцип най-ефективният метод е референтна таблица - не съм сигурен за термина, на английски е LUT - look-up table. На компютъра си използваш формулата да си генерираш една база данни от стойности, които по-късно процесора ползва за да конвертира измерената величина. Пример - за да се линеаризира измерената температура посредством термистор (платина 100) се използва полинома на Callendar–Van Dusen, който е доста сложен и отнема много процесорно време за изчисление. Вместо това стойностите могат да се извлекат на компютър и да се запишат на флаш/ром памет за директно преобразуване като за адрес на паметта се използва измереното съпротвление a на съответната клетка от паметта е записана съответстващата на измереното съпротивлението температура.


Всичко опира до ресурсите с които разполагаш. Ако ти трябва много голяма точност, таблицата съответно също става голяма и заема много памет. Ако нямаш памет, но имаш проц (в днешно време е напълно възможно, с тия 100+ MHz микроконтролерчета) може да е по-добре да си го смяташ.


Чет Сеп 19, 2024 5:05 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 06, 2018 5:18 pm
Мнения: 1750
Мнение Re: Математическа формула вместо алгоритъм
Реконструктор написа:
Всичко опира до ресурсите с които разполагаш. Ако ти трябва много голяма точност, таблицата съответно също става голяма и заема много памет. Ако нямаш памет, но имаш проц (в днешно време е напълно възможно, с тия 100+ MHz микроконтролерчета) може да е по-добре да си го смяташ.

За по-висока резолюция интерполираш между стойностите, което отнема много по-малко изчислителна мощ от смятане на полиноми от 3-та, 4-та степен. Ако процесора прави само това - да, по-добре е да смята, ако върши други неща ще се бави много. Напоследък работя основно с FPGA, там изчисленията хабят много ценен ресурс, има такива с DSP слоеве които са ОК за умножения и деления но не и за по-сложни изчисление, особенно с плаваща запетая, имах случай навремето, трябваше да правя прецизно позициониране на BLDC двигател, има един алгоритъм за това - Cordic, сорса дори беше публикуван в списанието на Xilinx -
Xcell (вече не съществува), но когато програмирах FPGA-то (Spartan-6) ми се запълниха 60% от ресурсите. Направих го с референтна таблица за което се наложи да добавя малък ЕЕPROM за някакви стотинки.

_________________
“Intelligence is the ability to adapt to change.” Stephen Hawking


Чет Сеп 19, 2024 5:55 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 8 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни