Akordová metoda

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 15. října 2019; kontroly vyžadují 12 úprav .

Akordová metoda  je iterativní numerická metoda pro nalezení přibližného kořene rovnice.

Geometrický popis metody sečny

Budeme hledat nulu funkce . Zvolme si dva výchozí body a nakreslete je čárou. Bude protínat osu x v bodě . Nyní najdeme hodnotu funkce s abscisou . Dočasně budeme uvažovat kořen na segmentu . Nechť má bod úsečku a leží na grafu. Nyní místo bodů a vezmeme bod a bod . Nyní s těmito dvěma body uděláme stejnou operaci a tak dále, to znamená, že získáme dva body a operaci s nimi zopakujeme. Úsek spojující poslední dva body protíná osu úsečky v bodě, jehož hodnotu úsečky lze přibližně považovat za kořen. Tyto akce je nutné opakovat, dokud nezískáme kořenovou hodnotu s požadovanou aproximací.

Algebraický popis metody sečny

Nechť jsou  úsečky konců tětivy,  buď rovnice funkce řešené metodou sečny. Najděte koeficienty a ze soustavy rovnic

Odečtěte druhou od první rovnice:

pak najdeme koeficienty a :

pak

Rovnice má tvar

Nyní tedy můžeme najít první přiblížení ke kořeni získané metodou sečny:

Nyní vezmeme souřadnice a zopakujeme všechny provedené operace a najdeme novou aproximaci ke kořenu. Iterační vzorec metody secant má tedy tvar:

Operace by se měla opakovat, dokud nebude menší nebo rovna zadané chybové hodnotě.

Akordová metoda s iterativním vzorcem

Někdy se metoda sečny nazývá metoda s iteračním vzorcem

Tuto metodu lze považovat za variaci jednoduché iterační metody a má pomalejší rychlost konvergence. Dále, pro jednoznačnost, bude tato metoda nazývána metodou akordů a metoda popsaná v předchozí části metodou sečen.

Příklad použití metody secant

Rovnici řešíme metodou sečny. Nastavíme přesnost ε=0,001 a vezmeme jako počáteční aproximace konce segmentu, na kterém je kořen oddělen: a , číselné hodnoty a jsou zvoleny libovolně. Výpočty se provádějí, dokud není nerovnost splněna .

V našem příkladu je hodnota nahrazena a hodnota je nahrazena . Hodnota bude číselná hodnota získaná tímto vzorcem. V budoucnu dosadíme do vzorce v hodnotě , a v hodnotě .

Pomocí tohoto vzorce důsledně dostáváme (správné platné číslice jsou podtrženy): (obrázek z metody akordů, nikoli však sečny, prosím oddělte sekce)

; ; ; ; ; ; ; ; ; ;

Zkontrolujme, že metoda funguje, i když a jsou zvoleny na stejné straně odmocniny (tedy pokud odmocnina není oddělena na segmentu mezi počátečními aproximacemi). Vezměte pro stejnou rovnici a . Pak: (obrázek už není z metody secant, ale z metody dichotomie )

; ; ; ; ; ; ; ;

Získali jsme stejnou kořenovou hodnotu ve stejném počtu iterací.

Konvergence metody sečny

Iterace metody secant konvergují ke kořenu , pokud jsou počáteční hodnoty a dostatečně blízko kořenu. Metoda secant je rychlá. Řád konvergence α se rovná zlatému řezu :

Řád konvergence je tedy větší než lineární, ale ne kvadratický, jako u příbuzné Newtonovy metody .

Tento výsledek je platný, pokud je dvakrát diferencovatelný a kořen není násobkem - .

Stejně jako u většiny rychlých metod je obtížné formulovat podmínky konvergence pro metodu sečny. Pokud jsou počáteční body dostatečně blízko kořenu, pak metoda konverguje, ale neexistuje žádná obecná definice „dostatečně blízko“. Konvergence metody je určena tím, jak "vlnitá" funkce je v . Pokud je například v intervalu bod, ve kterém , pak proces nemusí konvergovat.

Kritérium a rychlost konvergence metody akordů

Je-li  funkce dvakrát spojitě diferencovatelná a znaménko je na uvažovaném intervalu zachováno, pak budou získané aproximace monotónně konvergovat ke kořeni. Je-li kořen rovnice na intervalu , derivace a na tomto intervalu jsou spojité a zachovávají si konstantní znaménka a , pak lze dokázat [1] , že chyba přibližného řešení má tendenci k nule v , tedy metoda konverguje a konverguje rychlostí geometrické progrese (v tomto případě říkají, že má lineární rychlost konvergence ).

Historické pozadí

První, kdo byl schopen najít přibližná řešení kubických rovnic , byl Diophantus , čímž položil základ pro metodu akordů. Uvádějí to dochovaná díla Diophanta. První, kdo však pochopil jeho metody, byl Fermat v 17. století a první, kdo vysvětlil metodu akordů, byl Newton (70. léta 17. století). [2]

Implementace

C++

#include <iostream> #include <math.h> double f ( double x ) { return sqrt ( fabs ( cos ( x ))) - x ; // Nahraďte funkcí, jejíž kořeny hledáme } // a, b - akord limity, epsilon - požadovaná chyba double findRoot ( double a , double b , double epsilon ) { while ( fabs ( b - a ) > epsilon ) { a = b - ( b - a ) * f ( b ) / ( f ( b ) - f ( a )); b = a- ( a - b ) * f ( a ) / ( f ( a ) -f ( b ) ) ; } // a, b — (i - 1)-tý a i-tý člen návrat b ; }

Python

z matematiky import hřích z psaní import Callable import unittest def secant ( f : Callable [[ float ], float ], x0 : float , eps : float = 1e-7 , kmax : int = 1e3 ) -> float : """ řeší f(x) = 0 metodou secant s přesnost eps :param f: f :param x0: výchozí bod :param eps: požadovaná přesnost :návrat: kořen z f(x) = 0 """ x , x_prev , i = x0 , x0 + 2 * eps , 0 zatímco abs ( x - x_prev ) >= eps a i < kmax : x , x_prev , i = x - f ( x ) / ( f ( x ) - f ( x_prev )) * ( x - x_prev ), x , i + jeden vrátit x class TestSecant ( unittest . TestCase ): def test_0 ( self ): def f ( x : float ) -> float : return x ** 2 - 20 * sin ( x ) x0 , x_star = 2 , 2,7529466338187049383 sebe . claimAlmostEqual ( sečna ( f , x0 ), x_star ) if __name__ == '__main__' : unittest . hlavní ()

Úpravy

Metoda false position se liší od metody secant pouze v tom, že se pokaždé nezaberou poslední 2 body, ale ty body, které jsou kolem kořene.

Viz také

Literatura

  1. Demidovich B. P. a Maron I. A. Základy výpočetní matematiky. - Věda, 1970. - S. 664.
  2. Bakhvalov, Židkov, Kobelkov. Numerické metody. - Věda. — ISBN 5-94774-060-5 .

Poznámky

  1. Algebra (nepřístupný odkaz) . Získáno 24. listopadu 2009. Archivováno z originálu 3. prosince 2007. 
  2. Matematika a její historie. John Stillwell

Odkazy