Как да конвертирате математическа формула в код на Python?

Има ли лесни начини за конвертиране на математически формули в код на Python? Може би преводачи, уеб справки, конкретни глави от книги, всичко ~

За регулярни изрази има програми като Kodos и сайтове като pythonregex.com, така че се надявах, че ще има нещо подобно за нотация на формули и Python.


person T Carrasco    schedule 06.02.2011    source източник
comment
Как точно би изглеждало конвертирането на математическа формула в код на Python? Какво представлява кодът на Python за математическа формула?   -  person Falmarri    schedule 06.02.2011
comment
Подозирам, че ще зависи от това какво имате предвид под математическа формула. Преводът на чисти изчисления (с някои променливи, вероятно) е, най-общо казано, доста лесен. Сумата може да бъде изразена като for цикъл.   -  person Vatine    schedule 06.02.2011
comment
Има определени формули, които не са толкова лесни за превод. Примери: \sum_{n=0}^\infty 1/n^2, \int_0^1 \sin x dx, \lim_{x\to 0} (e^x - 1)/x.   -  person Vlad    schedule 06.02.2011
comment
Можете да проверите sagemath.org и свързаните sagenb.com   -  person eat    schedule 06.02.2011
comment
@Falmarri трябваше да провериш моите примери за програми, които правят същото за регулярни изрази ~ @Vlad да, затова беше дълъг шанс, някои формули (макар и не непременно строго математически, както поисках) не са възможни за преведете, както посочва Павел   -  person T Carrasco    schedule 08.02.2011
comment
@Mleep: Да, но регулярните изрази са интегрирана част от езика. Така че pythonregex вече е в python. Няма нищо за конвертиране. Какъв точно е вашият очакван вход/изход?   -  person Falmarri    schedule 08.02.2011
comment
Разгледайте тази статия. Може да помогне: matt.might.net/articles/discrete-math-and -код   -  person    schedule 15.11.2011


Отговори (2)


Не, това по принцип не е възможно. Има математически функции, които не са изчислими (например вижте wikipedia/Halting_problem). Има други математически функции, при които просто не е очевидно как да ги кодирате (помислете за труден интеграл или диференциални уравнения). Има много книги, написани за намиране на числени решения на този вид проблеми (можете да намерите някои връзки тук: wikipedia/Numerical_analysis).

За прости случаи можете да транскрибирате математически формули директно, но всяко автоматизирано средство за превод би изисквало формален език за писане на математически формули на това, което само по себе си би било език за програмиране. Това би повдигнало въпроса, тъй като бихте заменили писането на математически формули на един език с писането им на друг.

person Community    schedule 06.02.2011
comment
има смисъл, въпреки че регулярните изрази не са специални символи, може да се твърди, че тъй като използват регулярни граматики, те са формален език. численият анализ щеше да бъде следващата ми стъпка; това е проста, ясна, но натоварена работа. надявах се да има по-бързо решение. Благодаря за вашия отговор! - person T Carrasco; 08.02.2011
comment
@Mleep: Численият анализ не е прост, директен и не е просто натоварена работа. на каква математика си? Това нещо ли се опитвате да направите за проект или нещо подобно? - person Falmarri; 08.02.2011
comment
@Falmarri Е, за някои това е доста линеен процес. Работя в набори от нива, правейки 2d и 3d симулации на течности, формулите са дразнещи за пренаписване на python и се надявах на преводач. Няма нужда да вървите по-високо от вашия маршрут тук. Когато знам формула или вече е била направена преди, конвертирането й е натоварена работа. Това не е мнение. - person T Carrasco; 23.02.2011
comment
@Morvern: Не се опитвах да отида по-високия от твоя маршрут. Просто бях любопитен, тъй като има разлика дали сте в първия семестър по изчисление или пишете докторската си дисертация върху диференциалните уравнения в многомерната хиперболична геометрия или нещо подобно. - person Falmarri; 23.02.2011

Можете да опитате да направите свой собствен с sympy и pyparsing.

person user3064246    schedule 04.12.2013