Algorytm obliczania całki oznaczonej

0

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 :)

0

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.

0

@Ursinus a może jednak pokażesz co tak faktycznie masz zrobić i co masz dane? Bo z tego co opisałeś to guzik możesz policzyć ;]

0

http://ideone.com/oGBQvs - proszę bardzo :)

0

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)?

1

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.

2

@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 ;]

1

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.

3

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:
\begin{pmatrix} a_1<sup>3 &amp;  a_1</sup>2 &amp;  a_1 &amp; 1 \<br> 3 a_1^2 &amp; 2 a_1 &amp; 1 &amp; 0\<br> a_2<sup>3 &amp;  a_2</sup>2 &amp;  a_2 &amp; 1 \<br> 3 a_2^2 &amp; 2 a_2 &amp; 1 &amp; 0 \end{pmatrix} \cdot<br> \vec{p} =<br> \begin{pmatrix}b_1 \ c_1 \ b_2 \ c_2 \end{pmatrix}
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.

0

A jak by to wyglądało dla metody Monte Carlo?

0

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.

0

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.

0

@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 ;)

0
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.

0

A czy zamiast interpolacji Hermita można by użyć interpolacji Lagrange'a ?

1

Lagrange nie bierze pod uwagę pochodnych ;)

0

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źć :)

0

Ty tak poważnie? Google wyrzuca milion pdfów z wykładów z metod numerycznych na ten temat...

0

No najlepsze jest to że w materiałach do tego zadania znalazłem coś o interpolacji Lagrange'a a o Hermite'a nic :)

0

Dobra Panowie śliczne dzięki za pomoc i rozmowę he he :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1