Algoritmul metodei tangente. Metode numerice: rezolvarea ecuaţiilor neliniare

Algoritmul metodei tangente. Metode numerice: rezolvarea ecuaţiilor neliniare

05.07.2020

La fel ca aproximarea. Termenul P. este folosit uneori în sensul de a apropia un obiect (de exemplu, inițial P.) ... Enciclopedie matematică

metoda lui Newton- Metoda lui Newton, algoritmul lui Newton (cunoscut și ca metoda tangentei) este o metodă numerică iterativă pentru găsirea rădăcinii (zero) funcţie dată. Metoda a fost propusă pentru prima dată de fizicianul, matematicianul și astronomul englez Isaac Newton... ... Wikipedia

O metodă tangentă

Metoda Gauss-Newton- Metoda lui Newton (cunoscută și ca metoda tangentei) este o metodă numerică iterativă pentru găsirea rădăcinii (zero) unei anumite funcții. Metoda a fost propusă pentru prima dată de fizicianul, matematicianul și astronomul englez Isaac Newton (1643 1727), sub numele de ... ... Wikipedia

Metoda Newton-Raphson- Metoda lui Newton (cunoscută și ca metoda tangentei) este o metodă numerică iterativă pentru găsirea rădăcinii (zero) unei anumite funcții. Metoda a fost propusă pentru prima dată de fizicianul, matematicianul și astronomul englez Isaac Newton (1643 1727), sub numele de ... ... Wikipedia

Metoda Newton-Raphson- Metoda lui Newton (cunoscută și ca metoda tangentei) este o metodă numerică iterativă pentru găsirea rădăcinii (zero) unei anumite funcții. Metoda a fost propusă pentru prima dată de fizicianul, matematicianul și astronomul englez Isaac Newton (1643 1727), sub numele de ... ... Wikipedia

Metoda tangentei- Metoda lui Newton (cunoscută și ca metoda tangentei) este o metodă numerică iterativă pentru găsirea rădăcinii (zero) unei anumite funcții. Metoda a fost propusă pentru prima dată de fizicianul, matematicianul și astronomul englez Isaac Newton (1643 1727), sub numele de ... ... Wikipedia

Metoda tangentei (metoda lui Newton)- Metoda lui Newton (cunoscută și ca metoda tangentei) este o metodă numerică iterativă pentru găsirea rădăcinii (zero) unei anumite funcții. Metoda a fost propusă pentru prima dată de fizicianul, matematicianul și astronomul englez Isaac Newton (1643 1727), sub numele de ... ... Wikipedia

Metoda tangentei- Metoda lui Newton (cunoscută și ca metoda tangentei) este o metodă numerică iterativă pentru găsirea rădăcinii (zero) unei anumite funcții. Metoda a fost propusă pentru prima dată de fizicianul, matematicianul și astronomul englez Isaac Newton (1643 1727), sub numele de ... ... Wikipedia

Rezolvarea numerică a ecuațiilor- iar sistemele lor constă într-o determinare aproximativă a rădăcinii sau rădăcinilor unei ecuații sau unui sistem de ecuații și este utilizat în cazurile în care este imposibil sau foarte laborios să se calculeze valoarea exactă. Cuprins 1 Enunțarea problemei 2 Metode numerice ... Wikipedia

Metoda aproximării succesive- metoda de rezolvare probleme matematice folosind o succesiune de aproximări care converge către o soluție și este construită în mod recurent (adică, fiecare nouă aproximare este calculată pe baza celei anterioare; aproximarea inițială este aleasă în ... ... Marea Enciclopedie Sovietică

Metoda lui Newton (tangente) pentru găsirea rădăcinilor

Aceasta este o metodă iterativă inventată Isaac Newton(Isaak Newton) în jurul anului 1664. Cu toate acestea, această metodă este uneori numită metoda Newton-Raphson, deoarece Raphson a inventat același algoritm cu câțiva ani mai târziu decât Newton, dar lucrarea sa a fost publicată mult mai devreme.

Sarcina este după cum urmează. Având în vedere ecuația:

Este necesar să se rezolve această ecuație, sau mai precis, să se găsească una dintre rădăcinile ei (presupunând că rădăcina există). Se presupune că este continuă și diferențiabilă pe interval.

Algoritm

Parametrul de intrare al algoritmului, pe lângă funcție, este de asemenea aproximare initiala— unele , de la care algoritmul începe să procedeze.

Să-l calculăm deja după cum urmează. Să desenăm o tangentă la graficul funcției în punctul , și să găsim punctul de intersecție al acestei tangente cu axa absciselor. să-l setăm egal cu punctul găsit și să repetăm ​​întregul proces de la început.

Este ușor să obțineți următoarea formulă:

Este clar intuitiv că dacă funcția este suficient de „bună” (netedă) și este situată suficient de aproape de rădăcină, atunci va fi și mai aproape de rădăcina dorită.

Rata de convergenţă este pătratică, ceea ce, relativ vorbind, înseamnă că numărul de cifre exacte din valoarea aproximativă se dublează cu fiecare iterație.

Aplicație pentru calcularea rădăcinii pătrate

Să luăm în considerare metoda lui Newton folosind exemplul de calcul al rădăcinii pătrate.

Dacă înlocuim , atunci după simplificarea expresiei obținem:

Prima versiune tipică a problemei este atunci când este dat un număr fracționar și trebuie să-i calculați rădăcina cu o oarecare precizie:

dublu n;< EPS) break ; x = nx; } printf ("%.15lf" , x) ;

cin >> n;

const dublu EPS = 1E-15 ;< x; x = nx; } cout << x;

dublu x = 1 ;

pentru (;; ) ( dublu nx = (x + n / x) / 2 ; dacă (abs (x - nx) O altă versiune comună a problemei este atunci când trebuie să calculați o rădăcină întreagă (pentru una dată, găsiți cea mai mare astfel încât ). Aici trebuie să modificăm puțin condiția de oprire a algoritmului, deoarece se poate întâmpla ca acesta să înceapă să „sare” în apropierea răspunsului. Prin urmare, adăugăm o condiție că dacă valoarea la pasul anterior a scăzut, dar la pasul curent încearcă să crească, atunci algoritmul trebuie oprit. int n;< 0 && p_dec) break ; p_dec = a.compareTo (b) >cin >> n;

int x = 1 ;

bool diminuat = fals ;

Metode numerice: rezolvarea ecuaţiilor neliniare

Probleme de rezolvare a ecuațiilor apar în mod constant în practică, de exemplu, în economie, atunci când dezvoltați o afacere, doriți să știți când profiturile vor atinge o anumită valoare, în medicină, când cercetați acțiune medicamente, este important să știm când concentrația unei substanțe atinge un anumit nivel etc.

În problemele de optimizare, este adesea necesar să se determine punctele în care derivata unei funcții devine 0, ceea ce este o condiție necesară local extremum.

În statistică, atunci când construiești estimări folosind metoda celor mai mici pătrate sau a probabilității maxime, trebuie să rezolvi și ecuații neliniare și sisteme de ecuații.

Așadar, apare o întreagă clasă de probleme legate de găsirea soluțiilor neliniară ecuații, cum ar fi ecuații sau ecuații etc.

În cel mai simplu caz, avem o funcție definită pe intervalul ( o, b ) și luând anumite valori.

Fiecare valoare x din acest segment putem compara numărul, acesta este funcţional dependența, un concept cheie în matematică.

Trebuie să găsim o valoare la care acestea se numesc rădăcinile funcției

Vizual trebuie să determinăm punctul de intersecție al graficului funcțieicu axa absciselor.

Metoda de înjumătățire

Cea mai simplă metodă de a găsi rădăcinile unei ecuații este metoda înjumătățirii sau dihotomie.

Această metodă este intuitivă și toată lumea ar acționa într-un mod similar atunci când rezolvă o problemă.

Algoritmul este după cum urmează.

Să presupunem că găsim două puncte și , astfel încât acestea au diferit semne, atunci între aceste puncte există cel puțin o rădăcină a funcției.

Să împărțim segmentul în jumătate și să intrăm medie punct .

Atunci fie , sau .

Să lăsăm acea jumătate a segmentului pentru care sunt valorile de la capete semne diferite. Acum împărțim din nou acest segment în jumătate și lăsăm acea parte la limitele căreia funcția are semne diferite și așa mai departe, pentru a obține precizia necesară.

Evident, vom restrânge treptat zona în care se află rădăcina funcției și, prin urmare, cu într-o anumită măsură Să o stabilim cu exactitate.

Rețineți că algoritmul descris este aplicabil pentru orice funcție continuă.

Avantajele metodei de înjumătățire includ fiabilitatea și simplitatea sa ridicată.

Dezavantajul metodei este faptul că înainte de a începe să o utilizați, trebuie să găsiți două puncte în care valorile funcției au semne diferite. Este evident că metoda nu este aplicabilă pentru rădăcini de multiplicitate pară și, de asemenea, nu poate fi generalizată în cazul rădăcinilor complexe și la sistemele de ecuații.

Ordinea de convergență a metodei este liniară, la fiecare pas acuratețea se dublează cu cât se fac mai multe iterații, cu atât se determină mai precis rădăcina.

Metoda lui Newton: fundamente teoretice

Metoda clasică a lui Newton sau tangente este că if este o aproximare a rădăcinii ecuației , atunci următoarea aproximare este definită ca rădăcina tangentei la funcția desenată în punctul .

Ecuația tangentă la o funcție într-un punct are forma:

În ecuația tangentei punem și .

Atunci algoritmul pentru calcule secvențiale în metoda lui Newton este următorul:

Convergența metodei tangentei este pătratică, ordinea convergenței este 2.

Astfel, convergența metodei tangentei lui Newton este foarte rapidă.

Amintește-ți acest fapt minunat!

Fără modificări, metoda este generalizată la cazul complex.

Dacă rădăcina este o rădăcină de a doua multiplicitate sau mai mare, atunci ordinea de convergență scade și devine liniară.

Exercițiul 1. Folosind metoda tangentei, găsiți o soluție a ecuației de pe segmentul (0, 2).

Exercițiul 2. Folosind metoda tangentei, găsiți o soluție a ecuației de pe segmentul (1, 3).

Dezavantajele metodei lui Newton includ localitatea sa, deoarece este garantată să converge pentru o aproximare de pornire arbitrară numai dacă condiția este îndeplinită peste tot. , în situația opusă, convergența are loc numai într-o anumită vecinătate a rădăcinii.

Dezavantajul metodei lui Newton este necesitatea de a calcula derivate la fiecare pas.

Vizualizarea metodei lui Newton

Metoda lui Newton (metoda tangentei) este folosită dacă ecuația f(x) = 0 are rădăcină și sunt îndeplinite următoarele condiții:

1) funcția y= f(x) definit si continuu la ;

2) f(of(b) < 0 (funcția ia valori ale diferitelor semne la capetele segmentului [ o; b]);

3) derivate f"(x) Şi f""(x) păstrează semnul pe interval [ o; b] (adică funcția f(x) fie crește, fie scade pe segment [ o; b], menținând în același timp direcția convexității);

Ideea principală a metodei este următoarea: pe segmentul [ o; b] este selectat un astfel de număr x 0 , la care f(x 0 ) are acelasi semn ca f"" (x 0 ), adică condiția este îndeplinită f(x 0 f"" (x) > 0 . Astfel, se selectează punctul cu abscisă x 0 , în care tangenta la curbă y= f(x) pe segmentul [ o; b] intersectează axa Bou. Pe punct x 0 În primul rând, este convenabil să selectați unul dintre capetele segmentului.

Să luăm în considerare metoda lui Newton folosind un exemplu specific.

Să ni se dea o funcție crescătoare y = f(x) =x 2 -2, continuu pe segmentul (0;2), si avand f"(x) = 2 x > 0 Şi f "" (x) = 2 > 0 .

Desen1 . f(x) =x 2 -2

Ecuația tangentă în vedere generală are o idee:

y-y 0 = f" (x 0)·(x-x 0).

In cazul nostru: y-y 0 =2x 0 ·(x-x 0). Pentru punctul x 0 alegem punctul B 1 (b; f(b)) = (2,2). Desenați o tangentă la funcție y = f(x)în punctul B 1, și notează punctul de intersecție al tangentei și axei Bou punct x 1. Obținem ecuația primei tangente: y-2=2·2(x-2), y=4x-6.

Ox: x 1 =

Desen2. Rezultatul primei iterații

y=f(x) Bou prin punct x 1, înțelegem ideea B2 =(1,5; 0,25). Desenați din nou o tangentă la funcție y = f(x)în punctul B 2 și notează punctul de intersecție al tangentei și axei Bou punct x 2.

Ecuația celei de-a doua tangente: y-0.25=2*1.5(x-1.5), y = 3 x - 4.25.

Punctul de intersecție al tangentei și al axei Ox: x 2 =.

Desen3. A doua iterație a metodei lui Newton

Apoi găsim punctul de intersecție al funcției y=f(x)și o perpendiculară trasată pe axă Bou prin punctul x 2, obținem punctul B 3 și așa mai departe.

Desen4. A treia etapă a metodei tangentei

Prima aproximare a rădăcinii este determinată de formula:

= 1.5.

A doua aproximare a rădăcinii este determinată de formula:

=

A treia aproximare a rădăcinii este determinată de formula:

Astfel , i Aproximația a treia a rădăcinii este determinată de formula:

Calculele sunt efectuate până când zecimalele necesare în răspuns se potrivesc sau se obține precizia specificată e - până când inegalitatea este satisfăcută | xi- xi-1 | < e.

În cazul nostru, să comparăm aproximarea obținută în pasul al treilea cu răspunsul real calculat la calculator:

Figura 5. Rădăcina lui 2, calculată pe un calculator

După cum puteți vedea, deja la al treilea pas am primit o eroare mai mică de 0,000002.

În acest fel, puteți calcula valoarea „rădăcinii pătrate a lui 2” cu orice grad de precizie. Această metodă remarcabilă a fost inventată de Newton și vă permite să găsiți rădăcinile ecuațiilor foarte complexe.

Metoda lui Newton: aplicare în C++

În acest articol, vom automatiza procesul de calcul al rădăcinilor ecuațiilor prin scrierea unei aplicații de consolă în C++. Îl vom dezvolta în Visual C++ 2010 Express, acesta este un mediu de dezvoltare C++ gratuit și foarte convenabil.

Mai întâi, să lansăm Visual C++ 2010 Express. Va apărea fereastra de pornire a programului. În colțul din stânga, faceți clic pe „Creați un proiect”.

Orez. 1. Pagina de pornire Visual C++ 2010 Express

În meniul care apare, selectați „Win32 Console Application” și introduceți numele aplicației „Newton_Method”.

Orez. 2. Creați un proiect

// Metoda Newton.cpp: definește punctul de intrare pentru aplicația consolă

#include „stdafx.h”

#include

folosind namespace std;

float f(double x) //returnează valoarea funcției f(x) = x^2-2

float df(float x) //returnează valoarea derivatei

float d2f(float x) // valoarea derivatei a doua

int _tmain(int argc, _TCHAR* argv)

int exit = 0, i=0;//variabile pentru ieșire și buclă

dublu x0,xn;//aproximații calculate pentru rădăcină

dublu a, b, eps // limitele segmentului și precizia necesară

cout<<"Please input \n=>";

cin>>a>>b; // introducem limitele segmentului pe care vom căuta rădăcina

cout<<"\nPlease input epsilon\n=>";

cin>>eps; // introduceți precizia de calcul necesară

dacă (a > b) // dacă utilizatorul a amestecat limitele segmentului, schimbați-le

dacă (f(a)*f(b)>0) // dacă semnele funcției la marginile segmentului sunt aceleași, atunci nu există nicio rădăcină aici

cout<<"\nError! No roots in this interval\n";

dacă (f(a)*d2f(a)>0) x0 = a; // pentru a selecta punctul de plecare, verificați f(x0)*d2f(x0)>0 ?

xn = x0-f(x0)/df(x0); // luați în considerare prima aproximare

cout<<++i<<"-th iteration = "<

while(fabs(x0-xn) > eps) // va continua să calculeze până când ajungem la precizia necesară

xn = x0-f(x0)/df(x0); // direct formula lui Newton

cout<<++i<<"-th iteration = "<

cout<<"\nRoot = "<

cout<<"\nExit?=>";

) în timp ce (ieșire!=1); // până când utilizatorul intră în exit = 1

Să vedem cum funcționează. Faceți clic pe triunghiul verde din colțul din stânga sus al ecranului sau apăsați F5.

Dacă apare o eroare de compilare „Eroare LNK1123: eșecul conversiei în COFF: fișierul este invalid sau deteriorat”, atunci aceasta poate fi remediată fie instalând primul Service pack 1, fie în setările proiectului Proprietăți -> Linker dezactivând legătura incrementală.

Orez. 4. Rezolvarea erorii de compilare a proiectului

Vom căuta rădăcinile funcției f(x) =x2-2.

Mai întâi, să verificăm performanța aplicației cu privire la datele de intrare „greșite”. Nu există rădăcini pe segment, programul nostru ar trebui să afișeze un mesaj de eroare.

Acum avem o fereastră de aplicație:

Orez. 5. Introducerea datelor de intrare

Să introducem limitele segmentelor 3 și 5, iar precizia este de 0,05. Programul, așa cum era de așteptat, a produs un mesaj de eroare că nu există rădăcini pe acest segment.

Orez. 6. Eroare „Nu există rădăcini pe acest segment!”

Nu vom pleca încă, deci cum rămâne cu mesajul „Ieșire?” introduceți „0”.

Acum să verificăm aplicația folosind datele de intrare corecte. Să introducem segmentul și precizia 0,0001.

Orez. 7. Calculul rădăcinii cu precizia necesară

După cum putem vedea, precizia necesară a fost atinsă deja la a patra iterație.

Pentru a ieși din aplicație, introduceți „Exit?” => 1.

Metoda secantei

Pentru a evita calcularea derivatei, metoda lui Newton poate fi simplificată prin înlocuirea derivatei cu o aproximare calculată din cele două puncte anterioare:

Procesul iterativ arată astfel:

Acesta este un proces iterativ în doi pași, deoarece le folosește pe cele două anterioare pentru a găsi următoarea aproximare.

Ordinea de convergență a metodei secantei este mai mică decât cea a metodei tangentei și este egală în cazul unei singure rădăcini.

Această cantitate remarcabilă se numește proporția de aur:

Să verificăm acest lucru, presupunând, pentru comoditate, că .

Astfel, până la infinitezimale de ordin superior

Renunțând la termenul rămas, obținem o relație de recurență, a cărei soluție se caută în mod natural sub forma .

După înlocuire avem: și

Pentru convergență este necesar ca aceasta să fie pozitivă, deci .

Deoarece nu este necesară cunoașterea derivatei, cu aceeași cantitate de calcule în metoda secantei (în ciuda ordinului inferior al convergenței), se poate obține o precizie mai mare decât în ​​metoda tangentei.

Rețineți că lângă rădăcină trebuie să împărțiți la un număr mic, iar acest lucru duce la o pierdere a preciziei (mai ales în cazul rădăcinilor multiple), prin urmare, după ce ați ales un număr relativ mic, efectuați calcule înainte de a efectua și continuați-le până când modulul diferenței dintre aproximările învecinate scade.

De îndată ce începe creșterea, calculele sunt oprite și ultima iterație nu este utilizată.

Această procedură pentru determinarea sfârșitului iterațiilor se numește tehnică Garvika.

Metoda parabolelor

Să considerăm o metodă în trei etape în care aproximarea este determinată de cele trei puncte anterioare și .

Pentru a face acest lucru, înlocuim, în mod similar cu metoda secantei, funcția cu o parabolă de interpolare care trece prin punctele , și .

În forma lui Newton arată astfel:

Un punct este definit ca acela dintre rădăcinile acestui polinom care este mai aproape în valoare absolută de punct.

Ordinea de convergență a metodei parabolelor este mai mare decât cea a metodei secantei, dar mai mică decât cea a metodei lui Newton.

O diferență importantă față de metodele luate în considerare anterior este faptul că, chiar dacă sunt reale pentru real și aproximările inițiale sunt alese ca fiind reale, metoda parabolelor poate duce la o rădăcină complexă a problemei inițiale.

Această metodă este foarte convenabilă pentru găsirea rădăcinilor polinoamelor de grad înalt.

Metodă simplă de iterație

Problema găsirii de soluții la ecuații poate fi formulată ca o problemă de găsire a rădăcinilor: , sau ca o problemă de găsire a unui punct fix.

Lasă și - compresie: (în special, faptul că - compresie, așa cum este ușor de văzut, înseamnă că).

Conform teoremei lui Banach, există un punct fix unic

Poate fi găsită ca limită a unei proceduri iterative simple

unde aproximarea inițială este un punct arbitrar din interval.

Dacă funcția este diferențiabilă, atunci un criteriu de compresie convenabil este numărul . Într-adevăr, conform teoremei lui Lagrange

Astfel, dacă derivata este mai mică de unu, atunci este o compresie.

Stare este esențială, deoarece dacă, de exemplu, pe , atunci nu există un punct fix, deși derivata este egală cu zero. Viteza de convergență depinde de valoarea lui . Cu cât este mai mică, cu atât convergența este mai rapidă.

© 2024 steadicams.ru - Caramida. Design și decor. Faţadă. Confruntare. Panouri de fatada