Witam.
Poszukuję algorytmu, który obliczy mi całkę oznaczoną. Dane z których należy ja obliczyć to: punkt i wartość funkcji w tym punkcie oraz wartości pochodnych funkcji w tym punkcie.
Mile widziany jakiś pseudokod lub wskazówki.
Dziękuję i życzę zdrowia :)
Algorytm obliczania całki oznaczonej
- Rejestracja: dni
- Ostatnio: dni
- Postów: 161
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Genewa
- Postów: 597
Generalnie w zadaniach analitycznych wykorzystuje się metodę trapezów/trójkątów, ale...
Ale całka oznaczona to jest wartość wyrażająca pole pod wykresem funkcji w zakresie punkt-punkt. Z jednym punktem moim zdaniem może być problem, chyba, że szukamy pod całą funkcją? Coś mi mało tych danych, chociaż może coś przeoczyłem.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 161
http://ideone.com/oGBQvs - proszę bardzo :)
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
http://pl.wikipedia.org/wiki/Ca%C5%82kowanie_numeryczne - polecam lekturę
O ile dobrze rozumiem całka to odwrotność pochodnej. W jaki sposób znajomość f(x) i f'(x) (szczególnie tego drugiego) dla konkretnego x ma pomóc w obliczeniu ∫f(x)?
- Rejestracja: dni
- Ostatnio: dni
Te pochodne mają posłużyć zastosowaniu czegoś na wzór metody parabol (Simpsona).
mając dwa punkty i pochodne w tych miejscach można wyznaczyć wielomian trzeciego stopnia.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
@Ursinus OMG widzisz ty różnicę między listą punktów i pochodnych a JEDNĄ wartością (o której napisałeś w pierwszym poście)? Bo ja widzę dość sporą...
Mi to wygląda raczej na http://pl.wikipedia.org/wiki/Interpolacja_Hermite'a ;]
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Genewa
- Postów: 597
No właśnie - LISTA. Tutaj już trapezy można stosować, a idąc dalej również metoda interpolacji jest osiągalna.
Zrozumienie zadania jest kluczem do napisania dobrego programu.
- Rejestracja: dni
- Ostatnio: dni
Trapezy to za mało, bo nie wykorzystasz pochodnych, więc tracisz dane.
Trzeba podzielić całkę na mniejsze przedziały określone przez przedziały funkcji i treść zadania i interpolować funkcję przez wielomian co najmniej trzeciego stopnia, rozwiązując takie równanie liniowe:
Gdzie p to dane wyrazy wielomianu. indeksy 1 i 2 odróżniają sąsiednie punkty funkcji wybrane do interpolacji.
Wszelkie sytuacje, gdzie rozwiązań jest więcej niż jedno trzeba potraktować jako obniżenie stopnia wielomianu.
- Rejestracja: dni
- Ostatnio: dni
Mote Carlo sprawdza się dla całek przy większej liczbie wymiarów.
A w tym przypadku i tak problem będzie wyglądał dokładnie tak samo.
- Rejestracja: dni
- Ostatnio: dni
Normalnie to obliczasz wprost z definicji, tz. z rozwinięcia funkcji w szereg potęgowy:
f(x+a) = f(a) + f'(a)x + f''(a)x2/2! + ...
tam masz dane f(a), f'(a), f''(a), ... zatem możesz sobie obliczać co chcesz, bezpośrednio z tego szeregu.
Np. całka z takiego f będzie taka: F = xf(a) + f'(a)x2/2 + ... + C.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
@fur też przez chwilę tak myślałem ale wydaje mi się ze on tam ma tylko pierwsze pochodne (ot zwykłe nieprecyzyjne zadanie) i chodzi o interpolacje hermita :) Poza tym to co podałeś to jest sposób na wyliczenie wartości przybliżonej wartości funkcji w punkcie a nie całki ;)
- Rejestracja: dni
- Ostatnio: dni
Shalom napisał(a):
@fur też przez chwilę tak myślałem ale wydaje mi się ze on tam ma tylko pierwsze pochodne (ot zwykłe nieprecyzyjne zadanie) i chodzi o interpolacje hermita :)
I dobrze myślałeś.
To jest tylko szczególny - skrajny przypadek interp. Hermita.
Masz dany tylko jeden punkt x0 = a, oraz wartości w tym punkcie: y(a), y'(a), itd.
Nie masz danych dla innych punktów, czyli to jest po prostu szereg potęgowy (to powinno wyjść po zastosowaniu wzorów Hermita).
Shalom napisał(a):
Poza tym to co podałeś to jest sposób na wyliczenie wartości przybliżonej wartości funkcji w punkcie a nie całki ;)
Mając funkcję masz wszystko, więc w tym i całkę i pochodne dowolnego rzędu.
y = f(x) = b + cx + dx2/2 + ...
z tego możesz sobie obliczyć dowolną pochodną jak i całkę (oznaczoną), czyli: yn, dla n całkowitych.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 161
A czy zamiast interpolacji Hermita można by użyć interpolacji Lagrange'a ?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Lagrange nie bierze pod uwagę pochodnych ;)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 161
A gdzie mógłbym znaleźć algorytm tej interpolacji Hermite'a? Lagrange'a mam w książce ale tego Hermite'a nigdzie nie mogę znaleźć :)
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Ty tak poważnie? Google wyrzuca milion pdfów z wykładów z metod numerycznych na ten temat...
- Rejestracja: dni
- Ostatnio: dni
- Postów: 161
No najlepsze jest to że w materiałach do tego zadania znalazłem coś o interpolacji Lagrange'a a o Hermite'a nic :)