Бројчена анализа

Бројчена анализа (бројчена анализа) — област на математиката која изучува алгоритми кои користат бројчени апроксимации (за разлика од општите симболички манипулации) за задачите и проблемите на математичката анализа (која што се разликува од дискретна математика). 
Еден од најраните математички написи е Вавилонската плоча од  Вавилонската колекција во Јеил (од 1800г. -1600г. п.н.е.) која дава  бројчени апроксимации (приближувања) на   како  должина на дијагоналата во единечен квадрат во броен систем со основа 60.
Од исклучително значење е да може да се пресметаат страните на еден триаголник, а со тоа да може да се пресметаат и квадратни корени. 
Ова е од големо значење во областа на астрономијата, столаријата и градежништвото. Бројчената анализа ја продолжува долгогодишната традиција на практичните математички пресметки (пресметки).

Слично како Вавилонската апроксимација за  , модерната бројчена анализа не бара точни (егзактни) одговори бидејќи точните (егзактни) одговори е најчесто невозможнo да се добијат во пракса. Наместо тоа голем дел од бројчената анализа се концентрира на добивање на приближни решенија во рамките на разумните граници на грешки.
Бројчената анализа наоѓа примена во сите области на инжeнерството и физичките науки, но во 21-от век  исто така наоѓа примена и во општествените науки, па дури и во уметноста постојат  усвоени елементи од бројчени пресметки. 
Обичните диференцијални равенки се појавуваат во небесната механика (планети, ѕвезди и галаксии), бројчената линеарна алгебра е важна за анализата на податоци; стохастичките диференцијални равенки и Марковите вериги се од суштинско значење во симулирањето на однесувањето на живите клетки во медицината и биологијата. 
Пред појавата на современите компјутери, бројчените методи често зависеле од рачна интерполација на големи печатени табли. Наместо тоа од средината на 20 век компјутерите почнале да ги пресметуваат потребните функциски вредности. Меѓутоа интерполационите формули сепак продолжуваат да се користат како дел од софтверот за решавање на диференцијални равенки.
 Општ  вовед
Општата цел во полето на бројчената анализа е дизајн и анализа на техники потребни да се добијат приближни, со однапред зададена точност, решенија за сложени проблеми, чија разновидност  може да се види низ следново: 
 Напредните бројчени методи се од суштинско значење за временските предвидувања да бидат бројчени изводливи
 Пресметување на траекторијата на вселенското летало бара прецизни бројчени решенија на системи од обични диференцијални равенки.
 Автомобилските компании можат да ја подобрат безбедноста на нивните возила од сообраќајни несреќи со користење на компјутерски симулации на истите. Симулациите во суштина се состојат од бројчено решавање на парцијални диференцијални равенки.
 Приватните инвестициски фондови  користат алатки од сите области на бројчената анализа за да ги пресметуваат вредностите на акциите и производите од другите учесници на пазарот.
 Авионските линии користат софистицирани алгоритми за оптимизација при донесување на одлуките за цените на билетите, авионите и членовите на екипажот, како и потребите за гориво. Историски гледано, такви алгоритми се развиени во рамките на  областите кои се преклопуваат со операционите истражувања.
 Осигурителните компании користат бројчени програми за статистички анализи. 
 Историја 
Областа на бројчената анализа масовно се користела пред развојот на модерните компјутери. Линеарната интерполација била во употреба пред повеќе од 2000 години. Многу големи математичари од минатото биле преокупирани со бројчена анализа,  што се гледа од имињата на некои важни алгоритми како на пример Њутнов метод, Лагранжова интерполација на полином, Гаусова елиминација или Ојлеров метод.
За да се олеснат рачните пресметки, големите книги биле произведени со додатоци на формули и табели на податоци, како што се интерполација на точки и коефициенти на функции.
Користењето на овие табели кои се често пресметани до 16 децимални места или повеќе за некои  функции, можеле директно да се вклучат во веќе дадените формули и да се постигнат многу добри бројчени проценки и решенија на некои функции. Канонската работа во оваа област е дадена во книгата објавена од страна на Националниот институт за стандарди и технологија на САД, уредена од Абрамовиќ и Стегун. Тоа е книга со над 1000 страници во која се дадени и обработени голем број на најчесто користени формули и функции и нивните вредности во многу точки. 
Функциските вредности веќе не се користат многу често поради појавата на модерниот компјутер, меѓутоа голем број на формули сè уште можат да бидат корисни и користени.
Механичкиот калкулатор бил развиен како алатка за рачно пресметување. Овие калкулатори еволуирале во електронските компјутери во 1940 година, а потоа било откриено дека овие компјутери можат да бидат користени и за административни цели. Пронаоѓањето на компјутерите влијаело во областа   на бројчената анализа бидејќи оттогаш можеле да се вршат долги и сложени  пресметки за многу кратко време.
 Директни и итеративни методи
Директните методи го пресметуваат решението на еден проблем во конечен број чекори. Овие методи даваат прецизен одговор, кога би биле изведени во аритметика на бесконечна прецизност. Како пример за такви методи можат да се наведат Гаусовата елиминација, метод на QR-факторизација за решавање на систем на линеарни равенки и симплекс методот  на линеарно програмирање. Во пракса се користи конечна прецизност и резултат е апроксимација на вистинското решение.
мини|Пр: Да се реши равенката:
3x3 + 4 = 28
за непозната вредност x.
 Директна метода   3x3+4=28 Одземете  4 3x3=24 Поделете со 3 x3=8 Земете кубен корен  x =  2.
За итеративен метод се применува метод на преполовување f(x) = 3x3 − 24. Првичните вредности се и
a = 0, b = 3, f(a) = −24, f (b) = 57.
 Итеративен метод  a  b  средина  f(средина) 0 3 1.5 −13.875 1.5 3 2.25 10.17... 1.5 2.25 1.875 −4.22... 1.875 2.25 2.0625 2.32...
Од оваа табела можеме да заклучиме дека решението е помеѓу 1.875 и 2.0625. Решение може да биде било кој број  во тој опсег со грешка помала од  0.2.
За разлика од директните методи кај итеративните  методи не се очекува да завршат во конечен број чекори. Почнувајќи од почетно приближување, итеративните методи формираат сукцесивна апроксимација која конвергира до прецизното решение единствено во границата на однапред зададена точност. Тестот на конвергенција кој обично опфаќа остаток, се специфицира за да се одреди кога е најдено доволно прецизно решение. Дури кога би се користела и аритметика на бесконечна прецизност овие методи не би дошле до решение во конечен број чекори. Примерите ги опфаќаат Њутновиот метод, метод на преполовување и Јакобиевата итерација. Во компјутерската матрична алгебра, итеративните методи се генерално неопходни за решавање на големи проблеми.
Итеративните методи почесто се среќаваат отколку директните методи во бројчената анализа. Некои методи во принцип се директни, но обично се применуваат како итеративни на пример: GMRES (Метод за генерализација на минимални остатоци) и методот на конјугиран градиент. За овие методи бројот на чекори кои се неопходни за да се добие прецизно решение е толку голем што апроксимацијата се прифаќа исто како кај итеративната метода.
 Дискретизација
Континуираните проблеми понекогаш мора да се заменат со дискретни проблеми чие решение е познато, за да тоа решение се апроксимира на континуиран проблем. Овој процес се нарекува дискретизација. Еден пример за дискретизација е кога решението на диференцијална равенка, кое е функција, треба да биде претставено со ограничен број податоци, на пример преку нејзината вредност во ограничен број на точки како нејзин домен, иако вистинскиот домен е интервал, т.е. континуирано множество  вредности. 
= Дискретизација и бројчена интеграција  ====
Пример:Во двочасовна трка, ќе се мери брзината на автомобилот во три временски моменти  и податоците се евидентирани во следната табела
 Време 0:40 1:20 2:00 км/ч 140 150 180
Ако се направи дискретизација, би требало да каже дека брзината на автомобилот била константна од 0:00 до  0:40, а потоа од 0:40 до 1:20 и конечно од 1:20 до 2:00.  На пример, вкупното растојание во првите 40 минути е апроксимативно околу (2/3 h × 140 км/ч) = 93.3 км. Ова ќе ни овозможи да се процени вкупното поминато растојание како што е  93.3 км +100 км + 120 км = 313.3 км, што е пример за бројчена интеграција

== Генерирање и ширење на грешки==
При решавање на многу практични проблеми, теориската математика може да докаже дека постои решение или дека е единствено, ама не и да даде постапка со која се доаѓа до тоа решение. Затоа бројчената анализа има за цел да го пронајде приближното бројчено решение на одреден проблем кое би можело да се искористи во различни инженерски дисциплини, како на пример софтверското инженерство. 
Во софтверското инженерство најчесто се користат итеративни постапки, чие решение се приближува до точното, но заради конечниот број на повторувања секогаш отстапува од точното. Отстапувањето на приближното решение од точното решение претставува грешка која може да биде:
 апсолутна грешка
 релативна грешка
 грешка на приближните вредности на функцијата и сл.
Грешките се јавуваат заради бројчената постапка, како и заради грешките на дадените податоци. Според потеклото грешките можат да бидат:
 грешка од заокружување
 методска грешка
 системска грешка
Проучувањето на формите на грешките е значаен дел од бројчената анализа. Постојат неколку начини преку кои грешката може да биде вклучена во решението на проблемот.

=== Заокружување===
Грешките од заокружување се јавуваат бидејќи е невозможно прецизно да се претстават сите реални броеви на машина со конечна меморија 
(што е случај со сите  дигитални компјутери).
=== Грешки од отсекување и дискретизација===
Грешките од отсекување се појавуваат тогаш кога еден итеративен метод ќе заврши или математичката постапка се апроксимира, и приближното решение  се разликува од точното решение. Слично на тоа дискретизацијата вклучува дискретизациона грешка затоа што решението на дискретен проблем не се совпаѓа со решението на континуиран проблем. На пример, во итерацијата прикажана на горниот пример за да се пресмета решението на равенката 3х3+4=28, после 10  или повеќе итерации се заклучува дека се добива грубо решение на пример (1.99) . Со тоа имаме грешка од отсекување која изнесува 0.01.
Откако една грешка се генерира таа се зголемува низ целата пресметка. Повторно за пример да ја истакнеме операцијата собирање (,,+,, на калкулатор или компјутер) за која веќе имаме спомнато дека не е  прецизна,  од тука следува дека и пресметката од видот   a+b+c+d+e е уште понепрецизна.
Горе е спомнато дека доаѓа до грешка од скратување  кога апроксимираме математичка постапка. Познато е дека за прецизна интеграција на функција неопходно е да се најде збирот на бесконечен број трапезоиди. Но, во пракса меѓутоа  можно е да се најде сумата (збирот) само на конечен број на трапезоиди, а со тоа да се приближиме кон точната вредност на интегралот.
Слично на тоа, за да се најде извод на функцијата, диференцијалниот елемент се приближува кон нула, но бројчено може да се избере само ограничена вредност на диференцијалниот елемент.
=== Бројчена стабилност и добро условени проблеми===
Бројчената стабилност е важен поим во бројчената анализа. Еден алгоритам се нарекува бројчено стабилен ако една грешка, без разлика како е предизвикана, не расте многу во текот на пресметувањето. Ова се случува кога проблемот е добро условен што значи дека решението се менува со мала промена на влезните податоци. Во спротивно, ако проблемот е лошо условен тогаш секоја мала грешка во влезните податоците ќе предизвикува  поголема грешка во решението.
Заедно и оригиналниот проблем и алгоритмот се користат да се реши проблем кој може да биде добро условен и/или лошо условен и секоја од овие комбинации може да биде возможна.
Значи еден алгоритам кој решава добро условен проблем може да биде бројчено стабилен или нестабилен. Уметноста на бројчената анализа е да се најде стабилниот алгоритам за решавање на добро поставен математички проблем. На пример, пресметувањето на    (кој грубо изнесува 1.41421) е добро поставен проблем. Многу алгоритми го решаваат овој проблем почнувајќи со почетна апроксимација
(приближување) на х1 кон  , на пример х1=1.4,  и потоа со х2, х3, х4 итн. Еден таков метод е познат како Вавилонски метод, кој е претставен како xk+1=xk/2 + 1/xk. Уште еден итеративен пристап, кој ќе го наречеме Метод Х, кој е даден со  . 
Пресметани се неколку итерации од секој од методите и прикажани во табелата подолу со почетни вредности за x1=1.4 и x2=1.42.
 Вавилонски  Вавилонски  Метод X  Метод X x1 = 1.4 x1 = 1.42 x1 = 1.4 x1 = 1.42 x2 = 1.4142857... x2 = 1.41422535... x2 = 1.4016 x2 = 1.42026896 x3 = 1.414213564... x3 = 1.41421356242... x3 = 1.4028614... x3 = 1.42056...   ... ..   x1000000 = 1.41421... x28 = 7280.2284...
Може да се воочи дека  вавилонскиот метод конвергира бргу без оглед на почетната вредност, додека пак Методот  Х конвергира екстремно бавно со почетната вредност за х0=1.4 и дивергира за вредност за х0=1.42. Од тука Вавилонскиот метод претставува бројчено стабилен алгоритам за разлика од методот Х кој е бројчено нестабилен.Лошо условен проблем: Ако ја земеме функцијата  . Забележи дека f(1.1) = 10   и   f(1.001) = 1000: Промената во х од помалку од 0.1 преминува во промена во  f(x) од приближно 1000. Евалуацијата на  f(x) за приближно   x = 1 претставува лошо условен проблем.Добро условен проблем: Спротивно на тоа, проценка на истата функција    во близина на  x = 10 е добро условен проблем. На пример, f(10) = 1/9 ≈ 0.111 и f(11) = 0.1: скромна промена на х води до скромна промена во  f(x).

Бројчената стабилност е зависна од бројот на значајни цифри којшто машината (компјутерот) го поддржува.
Доколку користиме компјутер којшто поддржува само четири значајни децимални цифри (после децималната точка), тоа може да претставува добар пример за губење на значајните децималните места коешто може да се увиди преку овие две еквивалентни функции:

         и            

Ако го споредиме резултатот од:

и

се воочува дека се  губат значајни цифри, кое  исто така  се нарекува поништување поради одземање на два многу блиски броја и  има огромно влијание на резултатите иако двете функции се еквивалентни како што е покажано подолу, т.е равенството поаѓа од f(x) и завршува со g(x), така што:

Бараната вредност е пресметана со користење на бескрајна точност и изнесува 11.174755....., што е точно  g(500)=11.1748 после заокружување на резултатот на 4 децимални места.
Сега да замислиме дека користиме многу операнди, како што се овие функциски вредности погоре; грешките ќе се зголемуваат во текот на програмата за работа, освен ако не користиме  соодветна формула за овие две функции, секој пат кога пресметуваме f (x),или g (x); 
Примерот претставува модификација преземена од Mathew;Numerical methods using  Mathlab 3rd (трето издание).
== Области на проучување==
Полето на бројчената анализа вклучува многу поддисциплини меѓу кои едни од најважните се:
=== Пресметување вредности на функции ===
Еден од наједноставните проблеми е пресметување на  функција во дадена точка. Наједноставен пристап е само додавање на број во формула меѓутоа понекогаш тој пристап не е ефикасен. За полиноми, подобар пристап е користење на Хорнеровата шема бидејќи таа ги редуцира бројот на множења и собирања. Општо земено важно е да се проценат и контролираат грешките од заокружување кои произлегуваат од употребата на аритметика на подвижна точка.
=== Интерполација, екстраполација и регресија===
мини|
Интерполација: забележано е дека температурата варира од 20 степени Целзиусови во 1:00 до 14 степени во 3:00. Со линеарна интерполација на овие податоци се доаѓа до заклучок дека во 2:00 биле 17 степени и 18.5 степени во 1:30.

Екстраполација: Ако бруто-домашниот производ на земјата пораснал за 5% годишно и ако биле 100 милијарди денари минатата година, со екстраполација може да се заклучи дека ќе биде 105 милијарди денари оваа година.

Регресија: Во линеарна регресија , поаѓајќи од n точки, пресметуваме равенка на права која поминува колку што е можно поблизу до тие n точки.

Оптимизација:Да претпоставиме дека продаваме лимонада на тезга, и воочуваме дека при цена 10 денари, можеме да продадеме 197 чаши лимонади на ден, и за секои 0.1денари зголемена цена, продажбата опаѓа за една чаша лимонада на ден. Ако пак продаваме по цена од 14.85 денари, доаѓаме до максимален профит, но поради ограничувањето да наплатуваме целобројна цена во дени (десетти дел од денарот), наплатуваме 14.8 денари или 14.9 денари за чаша ќе добиеме максимален приход од 2205.2 денари на ден.

Диференцијална равенка: Ако 100 луѓе се насочат да дуваат воздух од еден крај на собата на другиот крај и потоа се пушти перо во воздухот, тогаш што ќе се случи? Перото ќе ја следи струјата на воздухот, која може да биде многу комплексна. Една апроксимација е да се измери брзината со која се дува воздухот во близина на перото во секоја секунда, и да се симулира поместувањето на перото како да се движи во права линија со иста брзина во тек на една секунда, пред повторно да се измери брзината на ветерот. Тоа се нарекува Ојлерова метода на решавање на обична диференцијална равенка.Интерполацијата го решава следниот проблем: со дадени вредности на некоја непозната функција во голем број на точки, која вредност ја има функцијата во некоја друга точка која се наоѓа помеѓу веќе дадени точки.Екстраполацијата е многу слична на интерполацијата , со таа разлика што сега сакаме да ја најдеме вредноста на непознатата функција во точка која е надвор од дијапазонот на веќе дадените точки.Регресијата е исто така слична, но  таа зема предвид дека дадените податоци се непрецизни. Со оглед на некои дадени точки и мерења на вредноста на некоја функција во тие точки (со грешка) ние сакаме да се детерминира (утврди) непозната функција. Методот на најмали квадрати е еден од попопуларните методи за да се постигне оваа цел. 
=== Решавање на равенки и систем од равенки===
Друг основен проблем е пресметување на решението на дадена равенка. Два случаи најчесто се разликуваат во зависност од тоа дали равенката е линеарна или нелинеарна. На пример, равенката  2х + 5 =3 е линеарна, додека  2х2 + 5 = 3 е нелинеарна равенка.
Многу напор е вложен во развојот на методи за решавање на системи од линеарни равенки. Стандардни директни методи односно методите кои користат некои матрични разложувања се Гаусовата елиминација , LU декомпозиција (на долно триаголна матрица L и горно триаголна матрица U), Клоески разложувањe, QR разложување за неквадратни матрици. Итеративните методи како што се Јакоби методот, Гаус-Сејдел метод, последователна над-релаксација и методот на конјугиран градиент најчесто се користат за поголеми системи. 
Алгоритмите за наоѓање на корени се користат за решавање на нелинеарни равенки (тие се така наречени затоа што коренот на функцијата е аргумент за кој вредноста на функцијата е нула). Ако функцијата е диференцијабилна и изводот е познат тогаш Њутновиот метод е популарен избор за решавање. Линеаризацијата е уште една техника за решавање на нелинеарни равенки.
=== Наоѓање на сопствени вредности или сингуларни вредности на даден проблем===
Неколку важни практични проблеми можат да бидат изразени преку декомпозиција на сопствените вредности или декомпозиција на сингуларни вредности. На пример, спектрален алгоритам за компресија на слика е заснован врз декомпозиција на сингуларни вредности. Соодветната алатка во статистиката се нарекува анализа на главни компоненти.
=== Оптимизација===
Оптимизирачките проблеми бараат точка во која дадената функција е достигнува максимална или минимална вредност. Често точката во која што се достигнува минимум или максимум исто така мора да задоволува некои ограничувања. 
Полето на оптимизација се дели на неколку подобласти, во зависност од формата на функцијата на целта и од ограничувањата. На пример, линеарното програмирање е такво што функција на целта и ограничувањата се линеарни. Познат метод во линеарното програмирање е Симплекс алгоритам (метод).
Методот на Лагранжови множители може да биде користен за редуцирање на оптимизирачки проблеми со ограничување, до оптимизирачки проблеми без ограничување.
===Бројчена интеграција===
Еден од најчестите проблеми со кои се сретнуваме во бројчената анализа е пресметување на вредности на . Бројчената интеграција во некои случаи е позната како бројчена квадратура. Познатите методи користат една од Њутн-Котесови формули (како правило на средна точка или Симсоново правило) или Гаусова квадратура. Тие методи се потпираат на стратегијата ,,раздели па владеј,, , т.ш интегралот на релативно голем интервал се дели на повеќе интеграли на мали интервали. Во случаите на голем број величини, каде тие методи се недопустливо скапи и во поглед на компјутерските барања, се приоѓа на примена на Монте-Карловиот или Квази Монте-Карловиот метод или кај умерено голем број величини, се применува методот на ретка мрежа.

Методите на ретки мрежи се множество од бројчени техники коишто претставуваат, интегрираат или интерполираат високо димензионални функции. Тие првично биле развиени од страна на рускиот математичар Сергеј Смолак, ученик на Лазар Листерник, и тие се засноваат на конструкција на „редок“ тензорски производ. Компјутерските алгоритми за ефикасно имплементирање на таквите мрежи подоцна биле развиени од страна на Мајкл Грибл и Кристоф Зенгер.

=== Диференцијални равенки
Бројчената анализа се занимава со пресметување на решението на диференцијални равенки, без разлика дали се обични или парцијални диференцијални равенки. 
Парцијалните диференцијални равенки се решаваат со првата дискретизација на равенката, доведувајќи ја во конечни димензии.
Ова може да биде направено со користење на методот на конечни елементи, методот на конечни разлики или (особено во областа на инженерството) со користење на методот на конечни волумени. Ова го редуцира проблемот на решението на една алгебарска равенка. Две основни методи за бројчено решавање на диференцијални равенки се Ојлеровата метода и фамилијата Рунге-Кута методи.

 Софтвер
Од крајот на 20 век повеќето алгоритми од бројчена анализа се имплементираат во различни програмски јазици. Netlib-библиотеката содржи различни колекции на програмски рутини за бројчени проблеми, најмногу во FORTRAN и C. Комерцијалните производи имплементираат многу различни бројчени алгоритми вклучувајќи ги и IMSL и NAG библиотеките; бесплатен начин е GNU научната библиотека.
Постојат неколку популарни бројчени компјутерски апликации како што се MATLAB , TK Solver, S-PLUS, Lab View i IDL како подобар од бесплатните и отворени алтернативни извори како што се Free MAT, Scilab, GNU Oktave, (слично како MATLAB), IT ++ (C++ библиотека), R (слично на S-PLUS) и одредени варијанти на Пајтон(Python). Перформансите значително  варираат во голема мера: кога векторските и матричните операции се најчесто брзи, скаларните јамки може да се разликуваат по брзина од повеќе од еден ред на големина.
Многу системи за компјутерска алгебра како Mathematica имаат достапност на аритметика со произволна прецизност која што може да обезбеди повеќе точни резултати. Исто така секој софтвер за табеларни пресметувања (како MS Excel) може да се користи за решавање на едноставни проблеми поврзани со бројчената анализа.

 Трапезна и Симсонова формула во бројчено интегрирање

Две основни методи на бројчената интеграција се: проширената трапезна формула и проширената Симсонова формула.
Кај проширената трапезна формула, интервалот на интеграција  [a,b] се дели на n-подинтервали со следнава ознака:  а=x0 < x1 <....< xn=b. Во сите точки на поделба се пресметуваат вредноста на подинтегралната функција yi=f(xi), т.ш над секој подинтеграл се формира трапез со спојување на точките  Ti(xi,yi) и Ti+1(xi+1,yi+1). 
Со тој трапез чијашто плоштина Pi=(xi+1-xi)(yi+yi+1)/2 се апроксимира вистинската плоштина под функцијата f(x) на тој интервал. Покрај вообичаената постапка на еквидистантна поделба, т.е  xi+1-xi=(b-a)/n , со собирање на плоштината на трапезите конструирани над сите интервални поделби добиваме трапезна формула:

Оценката на грешката со оваа бројчена апроксимација е дадена со :

Проширената Симсонова формула како и трапезната формула почнува со поделба на интервалот    [ а,b]  на  n, не секогаш еднакви подинтервали, но овој пат на секои два подинтервали односно низ точките Ti-1(xi-1,yi-1), Ti(xi,yi) и Ti+1(xi+1,yi+1) се конструира единствена квадратна функција, чиј график е парабола.
Оваа парабола е означена со црвена боја (P(x)).
Заради тоа кај примена на Симпсоновата формула имаме дополнителен услов, бројот на подинтервали да биде парен број n. По пресметувањето на плоштините под така конструираните параболи, со нивно собирање добиваме проширена Симпсонова формула:

Оценката на грешката на проширената Симпсонова формула е дадена со изразот:


Како што најчесто во правилото на парабола, подобра апроксимација на функцијата од правецот има, така Симпсоновата формула најчесто  дава поточен резултат од трапезната формула.