Strona 1 z 1
Biblioteka do obliczania całek w C++
: 12 sty 2010, o 18:28
autor: daro256
Witam wszystkich !
Mam do napisania program, przy którym będę musiał wyliczyć całkę nieoznaczoną. Program będę pisał w Microsoft Visual C++, albo w Borland C++ Builder. Czy są jakieś biblioteki do visuala, albo buildera które pozwalają na wyliczenie całki ?
Jeżeli nie, to jak realizuje się programowo liczenie całki nieoznaczonej ?
Biblioteka do obliczania całek w C++
: 13 sty 2010, o 01:15
autor: soku11
Nie ma takiej rzeczy. Za dobrze by było. Ogólnie liczenie całek nieoznaczonych polega na znaniu jakichś schematów rozwiązań ogólnych, które można zastosować. Problemem jest też to, że nie każdą funkcję da się scałkować do funkcji elementarnych :/
Pozdrawiam.
Biblioteka do obliczania całek w C++
: 18 sty 2010, o 01:49
autor: daro256
Tak myślałem że nie ma łatwego rozwiązania... A co z całkami niewłaściwymi ? W tym wypadku pojawia się problem obliczenia granicy, może na to jest jakiś sprytny sposób ?
Biblioteka do obliczania całek w C++
: 18 sty 2010, o 06:32
autor: Althorion
Najpopularniejszym sposobem jest chyba całkowanie Monte Carlo. W dużym skrócie - "strzelasz" w wykres w podanym przedziale i porównujesz ilość "trafień" (wyników mniejszych bądź równych wartości funkcji) z ilością wszystkich "strzałów", przez co w przybliżeniu wiesz, jaki procent przedziału "wypełnia" wykres.
Musisz do tej metody oszacować minimum i maksimum w zadanym przedziale.
EDYTOWANO.
Dzięki, zawsze mi się to myli.
Biblioteka do obliczania całek w C++
: 18 sty 2010, o 08:16
autor: klaustrofob
daro256 pisze: będę musiał wyliczyć całkę nieoznaczoną.
w tej postaci problem jest bardzo ogólny. ale może wiesz coś o funkcjach (funkcji?), którą będziesz miał całkować? jeżeli jest to klasa "porządnych" funkcji, to można oprogramować dowolną z metod całkowania przybliżonego.
Biblioteka do obliczania całek w C++
: 18 sty 2010, o 09:33
autor: filip.wroc
chyba najlatwiej jest to pociagnac Riemannem:
Kod: Zaznacz cały
for (int i=a; i<b; i+=skok)
suma+=f(i)*skok;
gdzie calkujesz funkcje f(x) na przedziale [a, b], dyskretyzujac ten przedzial skokiem rownym zmiennej skok (warto ustawic skok jako dzielnik liczby b-a). suma bedzie oznaczac wlasnie ta calke.
ostatecznie
\(\displaystyle{ \lim_{skok\to0}suma = \int_{a}^{b}f(i)}\) wiec dla dowolnie malego skoku (ograniczanego rozdzielczoscia reprezentacji liczb zmiennoprzecinkowych) dostaniesz dowolnie dokladna calke.
ew. mozesz to metoda trapezow tez zrobic:
Kod: Zaznacz cały
for (int i=a; i<b; i+=skok)
suma+=(f(i)+f(i+skok))*skok/2;
==edit==
yyy... przeczytalem temat raz jeszcze i sie zorientowalem ze o oznaczonych nikt tu nie mowil. nie wiem skad mi sie wzielo, ze przyda sie taki post. sory. ale moze i tak sie przyda
Biblioteka do obliczania całek w C++
: 18 sty 2010, o 12:27
autor: Sokół
skoro mowa o metodach przybliżonych, to polecam bibliotekę GiNaC, która ma wbudowane całkowanie numeryczne oraz miljart innych funkcji:
polecam zapoznać się z tutorialem, biblioteka jest zaiste genialna.
Biblioteka do obliczania całek w C++
: 18 sty 2010, o 13:19
autor: Emiel Regis
Althorion pisze:Najpopularniejszym sposobem jest chyba całkowanie Monte Casino.
Monte Carlo; )
Biblioteka do obliczania całek w C++
: 18 sty 2010, o 22:48
autor: daro256
Althorion pisze:Najpopularniejszym sposobem jest chyba całkowanie Monte Carlo...
Jak zastosować tą metodę skoro nie znam funkcji, która wyjdzie po obliczeniu całki nieoznaczonej ?
A jeżeli mowa o całkach niewłaściwych to co z sytuacją kiedy granicą przedziału jest nieskończoność ?
klaustrofob pisze:daro256 pisze: będę musiał wyliczyć całkę nieoznaczoną.
w tej postaci problem jest bardzo ogólny. ale może wiesz coś o funkcjach (funkcji?), którą będziesz miał całkować? jeżeli jest to klasa "porządnych" funkcji, to można oprogramować dowolną z metod całkowania przybliżonego.
Funkcje na pewno będą porządne. Mógłbyś podać którąś z metod całkowania przybliżonego, która nadaje się do całek nieoznaczonych, lub do niewłaściwych.
Sokół pisze:skoro mowa o metodach przybliżonych, to polecam bibliotekę GiNaC, która ma wbudowane całkowanie numeryczne oraz miljart innych funkcji:
polecam zapoznać się z tutorialem, biblioteka jest zaiste genialna.
Z tego co wyczytałem to biblioteka radzi sobie tylko z całkami oznaczonymi. Jeżeli się mylę to mnie popraw.
Biblioteka do obliczania całek w C++
: 19 sty 2010, o 00:02
autor: Emiel Regis
daro256, Ty w ogóle umiesz całkować? Bo odnoszę wrażenie, że dostałeś projekt z informatyki ale o jego matematycznej części to nie masz bladego pojęcia. Wiesz co to całka nieoznaczona albo niewłaściwa? I w szczególności co rozumiesz przez "metodę całkowania przybliżonego" w kontekście obliczania całki nieoznaczonej?
Jeśli chcesz zaimplementować coś co będzie liczyło całkę nieoznaczoną z dowolnej funkcji ciągłej (wiemy, że taka istnieje) to nie zdajesz sobie w ogóle sprawy z trudności problemu, ergo nie wiesz o czym mówisz.
A to co wyżej większość osób pisała to nie czytaj, bo tyczy się to wszystko całek oznaczonych. Pierwszy post soku11 załatwił tutaj w zasadzie wszystko.
Możesz napisać maila do autorów Maple'a albo Mathematici z prośbą o algorytm: ]
Jako ciekawostkę podaję:
Biblioteka do obliczania całek w C++
: 19 sty 2010, o 01:50
autor: daro256
Emiel Regis pisze:daro256, Ty w ogóle umiesz całkować?...
Umiem i wiem co to jest całka nieoznaczona i niewłaściwa, również zdaję sobie sprawę ze złożoności problemu. Ale zanim zacznie się rozwiązywać złożony problem dobrze jest sprawdzić, czy ktoś już tego nie zrobił.
A teraz mam pytanie do Ciebie. Czy wiesz co oznacza układ w postaci: cytat użytkownika a pod nim wypowiedź ? Bo odnoszę wrażenie, że nie. Gdybyś wiedział to pytania:
Emiel Regis pisze:I w szczególności co rozumiesz przez "metodę całkowania przybliżonego" w kontekście obliczania całki nieoznaczonej?
byś nie kierował do mnie.
Moim zdaniem "całkowanie przybliżone" nie nadaje się do całek nieoznaczonych, ale jako że nigdy nie pisałem programu do tego celu, oraz nie wydaje mi się żebym znał wszystkie metody całkowania przybliżonego, wolę się zapytać. Może
klaustrofob mnie zaskoczy.
Emiel Regis pisze:
A to co wyżej większość osób pisała to nie czytaj, bo tyczy się to wszystko całek oznaczonych...
[/quote]
Dobrze, będę czytał tylko twoje posty
Biblioteka do obliczania całek w C++
: 19 sty 2010, o 08:47
autor: Emiel Regis
Wiem co pisał klaustrofob, po prostu mi chodziło, że ktoś kto rozróżnia operacje liczenia całek nieoznaczonych i oznaczonych to powinien posiadać sito przez które przesiewa informacje i może poznać, która część wypowiedzi czego się tyczy. Choć zgadzam się, że jego wypowiedź bynajmniej nie wskazuje aby czynił jakiekolwiek rozróżnienie między nimi.
Oczywiście teoretycznie można sobie wyobrazić, że bierzemy jakąś metrykę, i w tej metryce poszukujemy funkcji pierwotnych, które należą do pewnej kuli i w ten sposób są w jakimś sensie "bliskie" naszemu rozwiązaniu. Choć im więcej o tym myślę to coraz więcej problemów z tym widzę, choćby taki, że na całej dziedzinie może być kłopot aproksymować przyzwoicie funkcję elementarną przez inną funkcję elementarną. Gdyby się ograniczyć do przedziału to by można choćby wielomianami każdą funkcję dobrze przybliżyć. Ale przecież nie o to tu chodzi.
Zresztą jak przeczytałeś mój ostatni link to już wiesz, że to nie jest łatwa rzecz.
Biblioteka do obliczania całek w C++
: 19 sty 2010, o 14:26
autor: klaustrofob
przepraszam wszystkich - nieuważnie przeczytałem pierwszy post daro256, a że do głowy mi nie przyszło, by ktoś chciał (miał jako projekt) napisać bibliotekę/program do całkowania symbolicznego, resztę - tj. całkowanie numeryczne/oznaczone - dopowiedziałem sobie sam. dalej po prostu nie chciało mi się prostować wypowiedzi, jak zrobił to filip.wroc.