Rezolvarea ecuațiilor neliniare. Teoria găsirii rădăcinilor unei ecuații neliniare
MINISTERUL EDUCATIEI AL FEDERATIEI RUSA
STAT SIBERIAN DE EST
UNIVERSITATEA DE TEHNOLOGIE
Rezumat pe tema: „Rezolvarea ecuațiilor neliniare
metoda simplă de iterație"
Efectuat:. Bubeev B.M.
Verificat de: Shirapov D.Sh.
Introducere
Ecuațiile neliniare pot fi împărțite în 2 clase - algebrice și transcendentale. Ecuații algebrice sunt numite ecuații care conțin numai funcții algebrice (întregi, raționale, iraționale). În special, un polinom este o întreagă funcție algebrică. Ecuațiile care conțin alte funcții (trigonometrice, exponențiale, logaritmice și altele) se numesc transcendent.
Metodele de rezolvare a ecuațiilor neliniare sunt împărțite în două grupe:
metode precise;
metode iterative.
Metode exacte ne permit să scriem rădăcinile sub forma unei relații finite (formulă). Din cursul de algebră școlară, sunt cunoscute astfel de metode pentru rezolvarea ecuațiilor trigonometrice, logaritmice, exponențiale, precum și a celor mai simple ecuații algebrice.
După cum se știe, multe ecuații și sisteme de ecuații nu au soluții analitice. În primul rând, acest lucru se aplică majorității ecuațiilor transcendentale. De asemenea, se dovedește că este imposibil să se construiască o formulă prin care să se poată rezolva o ecuație algebrică arbitrară de grad mai mare decât a patra. În plus, în unele cazuri, ecuația conține coeficienți care sunt cunoscuți doar aproximativ și, prin urmare, însăși problema determinării cu precizie a rădăcinilor ecuației își pierde sensul. Pentru a le rezolva, folosim metode iterative cu un anumit grad de precizie.
Lasă ecuația
Funcţie f(X) este continuă pe intervalul [ a, b] împreună cu derivatele lor de ordinul 1 și 2.
Valori f(X) la capetele segmentului au semne diferite ( f(A) f(b) < 0).
Prima și a doua derivată f"(X) și f""(X) păstrează un anumit semn pe tot segmentul.
Condițiile 1) și 2) garantează că pe intervalul [ A, b] există cel puțin o rădăcină și din 3) rezultă că f(X) este monotonă pe acest interval și, prin urmare, rădăcina va fi unică.
Rezolvați ecuația (1) metoda iterativăînseamnă a stabili dacă are rădăcini, câte rădăcini și a găsi valorile rădăcinilor cu precizia necesară.
Orice valoare care inversează o funcție f(X) la zero, adică astfel încât:
numit rădăcină ecuații(1) sau zero funcții f(X).
Problema găsirii rădăcinii ecuației f(X) = 0 prin metoda iterativă constă din două etape:
separarea rădăcinilor- aflarea valorii aproximative a rădăcinii sau a segmentului care o conţine;
rafinarea rădăcinilor aproximative- aducerea acestora la un anumit grad de precizie.
Procesul de separare a rădăcinilor începe cu stabilirea semnelor funcției f(X) în hotar X=Ași X=b puncte din zona existenței sale.
Exemplu 1 . Separați rădăcinile ecuației:
Prin urmare, ecuația (2) are trei rădăcini reale situate în intervalele [-3, -1] și .
Valorile aproximative ale rădăcinilor ( aproximări inițiale) poate fi cunoscută și din sensul fizic al problemei, din rezolvarea unei probleme similare cu date inițiale diferite sau poate fi găsită grafic.
Frecvent în practica inginerească mod grafic determinarea aproximativă a rădăcinilor.
Ținând cont de faptul că rădăcinile reale ale ecuației (1) sunt punctele de intersecție ale graficului funcției f(X) cu axa x, este suficient să grafici funcția f(X) și marcați punctele de intersecție f(X) cu ax Oh, sau marca pe axă Oh segmente care conțin o rădăcină. Trasarea poate fi adesea simplificată foarte mult prin înlocuirea ecuației (1) echivalent el cu ecuația:
unde funcţionează f 1 (X) și f 2 (X) - mai simplu decât funcția f(X). Apoi, trasarea graficelor funcțiilor la=f 1 (X) și la = f 2 (X), obţinem rădăcinile dorite ca abscisele punctelor de intersecţie ale acestor grafice.
Figura 2.
Exemplu 2 . Separați grafic rădăcinile ecuației (Figura 2):
X lg x= 1. |
Ecuația (4) poate fi rescrisă convenabil ca o egalitate:
Prin urmare, este clar că rădăcinile ecuației (4) pot fi găsite ca abscisele punctelor de intersecție ale curbei logaritmice. y= jurnal Xși hiperbolă y = . După ce am construit aceste curbe, vom găsi aproximativ singura rădăcină a ecuației (4) sau vom determina segmentul care o conține.
Procesul iterativ constă în perfecţionarea succesivă a aproximării iniţiale X 0 . Fiecare astfel de pas este numit repetare. Ca rezultat al iterațiilor, se găsește o secvență de valori aproximative ale rădăcinii X 1 , X 2 , ..., X n . Dacă aceste valori cu o creștere a numărului de iterații n apropiindu-se valoare adevarata rădăcină, atunci spunem că procesul iterativ converge.
Metodă simplă de iterație
Pentru a utiliza metoda iterației, ecuația originală neliniară f(X) = 0 se înlocuiește cu ecuația echivalentă
Geometric, metoda iterației poate fi explicată după cum urmează. Să construim pe un avion hoy grafice de funcții y = xși y= (X). Fiecare rădăcină reală a ecuației (8) este abscisa punctului de intersecție M strâmb y= (X) cu o linie dreaptă y = x(Figura 6, A).
Figura 6
Plecând de la un punct DAR 0 [X 0 , (X 0)], construim o linie întreruptă DAR 0 LA 1 DAR 1 LA 2 DAR 2 ... („scara”), ale căror verigi sunt alternativ paralele cu axa Ohși topoare OU, vârfuri DAR 0 , DAR 1 , DAR 2 , ... culcați pe o curbă y= (X), iar vârfurile LA 1 , AT 2 , AT 3 , …, - pe o linie dreaptă y = x. Abscise generale de puncte DAR 1 și LA 1 , DAR 2 și LA 2 , ... sunt evident, respectiv, aproximări succesive X 1 , X 2 , ... rădăcină .
Este posibil și un alt tip de linie întreruptă DAR 0 LA 1 DAR 1 LA 2 DAR 2 ... - „spirală” (Figura 6, b). O soluție sub forma unei „scări” se obține dacă derivata " ( X) este pozitivă, iar soluția este sub formă de „spirală” dacă " ( X) este negativă.
În figura 6, a, b curba la = (X) în vecinătatea rădăcinii - în pantă ușor, adică<1, и процесс итерации сходится. Однако, если рассмотреть случай, где >1, atunci procesul de iterație poate fi divergent (Figura 7).
Figura 7
Prin urmare, pentru aplicarea practică a metodei iterației, este necesar să se afle condiții suficiente pentru convergența procesului iterativ.
Teorema:Lasă funcția (X) definite şi diferenţiabile pe interval [a, b], și toate valorile sale (X) [A,b].
Atunci dacă există o fracție adecvată q astfel încât
Pentru o<X<b, apoi: 1)proces de iterație
converge indiferent de valoarea iniţială eu X 0 [A,b];
2) valoare limită este singura rădăcină a ecuației x = (X) pe segment [a, b].
Exemplu 5 . Ecuația
f(X) X 3 - X - 1 = 0 |
are rădăcină , deoarece f(1) = - 1 < 0 и f(2) = 5 > 0.
Ecuația (10) poate fi scrisă ca
X = X 3 - 1. |
(X) = X 3 - 1 și " ( X) = 3X 2 ;
" (X) 3 la 1 X 2
și, în consecință, nu sunt îndeplinite condițiile pentru convergența procesului de iterație.
Dacă scriem ecuația (10) sub forma
atunci vom avea:
.
De aici la 1 X 2 și, prin urmare, procesul de iterație pentru ecuația (12) converge rapid. ecuații metodăîmpărțirea segmentului în jumătate ... în memorie în formă simplu variabile. Rezultatul acestui... repetare) de tip Real; d este discriminantul de tip Real; x1 - prima rădăcină ecuații găsite metodă solutii pătrat ecuații ...
Metodă Newton pentru solutii neliniară ecuații
Lucrări de curs>> Informatica... metode solutii neliniară ecuații Sunt multe diferite metode solutii neliniară ecuații, unele dintre ele sunt prezentate mai jos: 1) Metodă iterații. La decizie neliniară ecuații metodă iterații... formulă metodă simplu iterații xk+1=g(...
Soluţie neliniară ecuații metodă iterații
Lucrare de testare >> InformaticaDescrierea regulilor de calcul al cailor neliniară ecuații metodă iterații, precum și o diagramă bloc metodă. 2 Implementare practică: ... calculul rădăcinilor ecuații metodă iterații 2.4 Experiment de calcul - compararea rezultatelor programului cu decizieîn...
Să fie dată o funcție care este continuă împreună cu numeroasele sale derivate. Este necesar să se găsească toate sau unele rădăcini reale ale ecuației
Această sarcină este împărțită în mai multe subsarcini. În primul rând, este necesar să se determine numărul de rădăcini, să se investigheze natura și locația acestora. În al doilea rând, găsiți valorile aproximative ale rădăcinilor. În al treilea rând, să alegem dintre ele rădăcinile care ne interesează și să le calculăm cu exactitatea necesară. Prima și a doua sarcină sunt rezolvate, de regulă, prin metode analitice sau grafice. În cazul în care se caută doar rădăcinile reale ale ecuației (1), este util să se întocmească un tabel cu valorile funcției. Dacă funcția are semne diferite în două noduri vecine ale tabelului, atunci între aceste noduri se află un număr impar de rădăcini ale ecuației (cel puțin una). Dacă aceste noduri sunt apropiate, atunci cel mai probabil există o singură rădăcină între ele.
Valorile aproximative găsite ale rădăcinilor pot fi rafinate folosind diferite metode iterative. Să luăm în considerare trei metode: 1) metoda dihotomiei (sau împărțirea segmentului la jumătate); 2) metoda iterației simple și 3) metoda lui Newton.
Metode de rezolvare a problemei
Metoda bisecției
Cea mai simplă metodă de găsire a rădăcinii ecuației neliniare (1) este metoda semidiviziunii.
Să fie dată o funcție continuă pe segment.Dacă valorile funcției de la capetele segmentului au semne diferite, i.e. atunci aceasta înseamnă că există un număr impar de rădăcini în interiorul segmentului dat. Să avem, pentru certitudine, o singură rădăcină. Esența metodei este de a reduce la jumătate lungimea segmentului la fiecare iterație. Găsim mijlocul segmentului (vezi Fig. 1) Calculați valoarea funcției și selectați segmentul pe care funcția își schimbă semnul. Împărțiți din nou noul segment în jumătate. Și continuăm acest proces până când lungimea segmentului este egală cu eroarea predeterminată în calcularea rădăcinii. Construcția mai multor aproximări succesive conform formulei (3) este prezentată în Figura 1.
Deci, algoritmul metodei dihotomiei:
1. Setați intervalul și eroarea.
2. Dacă f(a) și f(b) au aceleași semne, emiteți un mesaj despre imposibilitatea de a găsi rădăcina și opriți.
Fig.1.
3. Altfel se calculează c=(a+b)/2
4. Dacă f(a) și f(c) au semne diferite, puneți b=c, în caz contrar a=c.
5. Dacă lungimea noului segment, atunci calculați valoarea rădăcinii c=(a+b)/2 și opriți, altfel treceți la pasul 3.
Deoarece în N pași lungimea segmentului este redusă de 2 N ori, eroarea dată în găsirea rădăcinii va fi atinsă în iterații.
După cum se poate observa, rata de convergență este scăzută, dar avantajele metodei includ simplitatea și convergența necondiționată a procesului iterativ. Dacă segmentul conține mai mult de o rădăcină (dar un număr impar), atunci va fi întotdeauna găsită una.
Cometariu. Pentru a determina intervalul în care se află rădăcina, este necesară o analiză suplimentară a funcției, bazată fie pe estimări analitice, fie pe utilizarea unei metode de soluție grafică. De asemenea, este posibil să se organizeze o căutare a valorilor funcției în diferite puncte până când este îndeplinită condiția de schimbare a semnului funcției
Găsirea rădăcinilor unei ecuații neliniare
cursuri
Informatică, cibernetică și programare
Diagrame de implementare a metodelor numerice - pentru metoda dihotomiei: Diagramă pentru metoda acordurilor: Diagramă pentru metoda Newton: Unitatea de listare a programelor Unitatea1; interfce utilizează Windows Mesaje SysUtils Vrints Clsses Grphics Controale Formulare Dialogs TeEngine Series ExtCtrls TeeProcs Chrt Meniuri OleCtnrs StdCtrls xCtrls OleCtrls VCF1 Lună; tip TForm1 = clssTForm GroupBox1: TGroupBox; OleContiner2: TOleContiner; MinMenu1: TMinMenu; N1: TMenuItem; Chrt1: TChrt; Seria 1:...
UNIVERSITATEA DE STAT RUSĂ DE PETROL ȘI GAZ-le. LOR. GUBKINA
Departamentul de Informatică
Lucrări de curs
la disciplina „Informatică”.
Subiect: " Găsirea rădăcinilor unei ecuații neliniare "
Gata: student
Manepova A. M
grupa: GI-12-05
Verificat:
Moscova 2013
1. Metoda semi-diviziunii (dihotomie) 2. Metoda acordurilor 3. Metoda lui Newton Calcule în pachetul matematic Mat lab Rezultatele calculului utilizând Selecția parametrilor Lista de programe |
Sarcina pentru munca de curs.
- calcul realizat în pachet de matematică Matlab (Mathematica 5 .) (fișier funcțional pentru descrierea unei ecuații neliniare, grafic, soluție în formă simbolică și numerică).
- Găsind rădăcinile unei ecuații neliniare în foi de calcul MS Excel (tipul unei ecuații neliniare, un grafic pentru găsirea rădăcinilor unei ecuații neliniare, găsiți rădăcina unei ecuații neliniare folosind instrumente de analiză condiționată: „Selectarea parametrilor”, „Căutarea unei soluții”).
- Creați o aplicație pentru a găsi rădăcinile ecuației neliniareîn mediul Delphi (un tip de ecuație neliniară, un grafic pe un interval dat, pentru fiecare metodă: rezultatele tabulării unei funcții pe un interval dat cu un pas dat, pentru fiecare metodă a metodei numerice, o subrutină utilizator cu transfer de parametri) . Rezultatele sunt afișate pe formular sub forma unui tabel și într-un fișier. Asigurați o modificare a preciziei valorii (E<= 0 , 001).
- un fel de ecuație
Teoria găsirii rădăcinilor unei ecuații neliniare. Descrierea metodelor numerice utilizate.
Lasă funcția , care este continuă împreună cu numeroasele sale derivate. Este necesar să se găsească toate sau unele rădăcini reale ale ecuației
.
Această sarcină este împărțită în mai multe subsarcini. În primul rând, trebuie să determinați numărul de rădăcini, să le examinați caracter si locatie. În al doilea rând, găsiți valorile aproximative ale rădăcinilor. În al treilea rând, alegeți rădăcinile care ne interesează dintre ele și calculați-le cu acuratețea necesară e. Prima și a doua sarcină sunt rezolvate, de regulă, prin metode analitice sau grafice. În cazul în care se caută doar rădăcinile reale ale ecuației, este util să se facă un tabel de valori funcții . Dacă la două noduri adiacente Mese funcția are semne diferite, apoi între aceste noduri se află un număr impar de rădăcini ale ecuației (cel puțin una). Dacă aceste noduri sunt apropiate, atunci cel mai probabil există o singură rădăcină între ele.
Valorile aproximative găsite ale rădăcinilor pot fi rafinate folosind diferite metode iterative.
Luați în considerare trei metode: 1) metoda dihotomiei (sau împărțirea segmentului la jumătate); 2) metoda iterației simple și 3) metoda Newton.
1. Metoda semi-diviziunii (dihotomie)
Să fie dată o funcție continuă pe intervalDacă valorile funcției de la capetele segmentului au semne diferite, de ex.atunci aceasta înseamnă că există un număr impar de rădăcini în interiorul segmentului dat. Să avem, pentru certitudine, o singură rădăcină. Esența metodei este de a reduce la jumătate lungimea segmentului la fiecare iterație. Găsim punctul de mijloc al segmentului după formula:Calculăm valoarea funcțieiși alegeți segmentul pe care funcțiaîși schimbă semnul . Împărțiți din nou noul segment în jumătate. Si acesta proces continuăm până când lungimea segmentului este egală cu eroarea predeterminată în calcularea rădăcinii E.
2. Metoda acordurilor
La rezolvarea unei ecuații neliniare prin metoda acordurilor, se precizează intervalele , pe care există o singură soluție, și precizia Ɛ. Apoi, prin două puncte cu coordonate (a, F (a)) și (b, F (b)) trasăm un segment de dreaptă (coardă) și determinăm punctul de intersecție al acestei drepte cu axa absciselor. În același timp, au mâncat F (a) * F (b)<0, то праву границу интервала пееносиим в точку x (b=x). Если указанное условие не выполняется, то в точку X se transferă marginea stângă a intervalului (a=x). Căutarea unei soluții se oprește când este atinsă precizia specificată |F(x)|>Ɛ. Calculele sunt efectuate până când inegalitatea este îndeplinită:. Formula iterativă a metodei acordurilor are forma:
3. Metoda lui Newton
Pentru a rezolva numeric ecuațiametoda simplă de iterație, ea trebuie redusă la următoarea formă:, Unde cartografierea contractiei.
Pentru cea mai bună convergență metoda la următorul punct de aproximarecondiția trebuie îndeplinită. Soluția acestei ecuații se caută sub formă, apoi:
Presupunând că punctul de apropiere este „suficient de aproape” de rădăcină, și că funcția dată continuu , formula finală pentru este:
Având în vedere acest lucru, funcția este definit prin expresia:
Această funcție, într-o vecinătate a rădăcinii, efectuează o mapare de contracție, și un algoritm pentru găsirea unei soluții numerice a ecuațieireduce la o procedură de calcul iterativă:
Calcule într-un pachet matematic laborator de mat
În pachetul matematic, în funcție de condiția sarcinii, a fost construit un grafic al funcției și a fost găsită rădăcina ecuației folosind o soluție simbolică ( rezolva ) și numeric folosind funcții încorporate: fzero și fsolve . Pentru a descrie funcția mea, am folosit un fișier de funcție.
Următoarea figură prezintă graficul funcției:
Folosit pentru a scrie comenzi Fișier M:
În fereastra de comandă s-au obținut următoarele rezultate:
r 1 =
r2 =
r 3 =
r4 =
8.0000
r5 =
7.9979 -8.0000
Raportați rezultatele calculării valorii aproximative a rădăcinii ecuației în MS Excel.
MS Excel calculul valorii aproximative a rădăcinii ecuației a fost efectuat folosind opțiunile încorporate „Selectarea parametrilor” și „Căutare soluții”. Pentru a selecta aproximarea inițială, am construit anterior o diagramă.
Rezultatele calculului utilizând Selecția parametrilor
X =-9 (pe baza graficului)
Ca urmare a utilizării Selecției parametrilor, rădăcina a fost găsită x = -8,01.
Rezultatele calculului folosind Căutare soluții
Am ales ca aproximare inițială X =-9 (pe baza graficului)
După execuție s-a obținut următorul rezultat:
Găsirea unei soluții mi-a dat sens x = -8,00002
Descrierea aplicației create în mediul Delphi.
La crearea unei aplicații în mediu Delphi interfața a furnizat rezultatul formei funcției și a graficului. Găsirea rădăcinii unei ecuații neliniare a fost implementată folosind trei metode: Metoda Dihotomiei, Metoda Chord și Metoda lui Newton. Spre deosebire de calcul excela , unde rădăcinile au fost găsite folosind selectarea parametrilor și căutarea unei soluții, programul prevede introducerea preciziei de calcul de către utilizator. Rezultatele calculului sunt afișate atât în fereastra aplicației, cât și într-un fișier text.
Scheme bloc care implementează metode numerice
Diagramă pentru metoda dihotomiei:
Diagramă pentru metoda acordurilor:
Diagramă pentru metoda lui Newton:
Lista de programe
unitate Unit1;
interfata
utilizări
Windows, Mesaje, SysUtils, Variante, Clase, Grafică, Controale, Formulare,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Meniuri, OleCtnrs,
StdCtrls, AxCtrls, OleCtrls, VCF1, Math;
tip
TForm1 = clasa (TForm)
GroupBox1: TGroupBox;
OleContainer2: TOleContainer;
MainMenu1: TMainMenu;
N1: TMenuItem;
Chart1: TChart;
Series1: TPointSeries;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
Etichetă 1: Etichetă T;
Edit1: TEdit;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Label2: Etichetă T;
Label3: Etichetă T;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label4: Etichetă T;
Edit5: TEdit;
Label5: Etichetă T;
Edit7: TEdit;
Label7: Etichetă T;
F1Book1: TF1Book;
F1Book2: TF1Book;
F1Book3: TF1Book;
F1Book4: TF1Book;
Procedura N1Click(Expeditor: TObject);
Procedura N3Click(Expeditor: TObject);
Procedura FormCreate(Sender: TObject);
Procedura N4Click(Expeditor: TObject);
Procedura N5Click(Expeditor: TObject);
Privat
(Declarații private)
Public
(Declarații publice)
Sfârşit;
const
xmin:real=-20;
xmax:real=20;
Form1: TForm1;
X,y,t,a,b,cor:real;
I,n:întreg;
Eșec: fișier text;
implementare
($R *.dfm)
funcția f(x:real):real;
ÎNCEPE
f:=(8+x)/(x*sqrt(sqr(x)-4));
Sfârşit;
funcția f1(x:real):real;
ÎNCEPE
f1:=(-putere(x,3)-16*x*x+32)/(x*X*sqrt(putere(x*x-4,3)));
Sfârşit;
procedura metoddix(ta,tb,eps:real;var xk:real;var kolvo: integer);
ÎNCEPE
număr:=0;
repeta
xk:=(ta+tb)/2;
kolvo:=kolvo+1;
Form1.F1book1.NumberRC:=xk;
Form1.F1book1.NumberRC:=f(xk);
dacă f(ta)*f(xk)<0 then tb:=xk
elseta:=xk;
până la (abs(f(xk))<=eps);
Sfârşit;
procedura metodhord(ta,tb,eps:real;var xk:real;var kolvo: integer);
ÎNCEPE
număr:=0;
repeta
xk:= ta-f(ta)*(ta-tb)/(f(ta)-f(tb));
kolvo:=kolvo+1;
Form1.F1book2.NumberRC:=xk;
Form1.F1book2.NumberRC:=f(xk);
dacă f(ta)*f(xk)<0 then tb:=xk
elseta:=xk;
până la (abs(f(xk))<=eps);
Sfârşit;
procedura metodnyutona(ta,eps:real;var xk:real;var kolvo: integer);
ÎNCEPE
număr:=0;
repeta
xk:= ta-f(ta)/f1(ta);
ta:=xk;
kolvo:=kolvo+1;
Form1.F1book3.NumberRC:=xk;
Form1.F1book3.NumberRC:=f(xk);
până la (abs(f(xk))<=eps);
Sfârşit;
procedura TForm1.N1Click(Expeditor: TObject);
ÎNCEPE
x:=xmin;
i:=0;
în timp ce x<=xmax do
ÎNCEPE
dacă abs(x)>5 atunci
ÎNCEPE
I:=i+1;
Y:=f(x);
Seria1.Addxy(x,y);
F1book4.NumberRC:=x;
F1book4.NumberRC:=y;
Sfârşit;
x:=x+0,5;
Sfârşit;
Sfârşit;
procedura TForm1.N3Click(Expeditor: TObject); // Calculul rădăcinii prin metoda diviziunii pe jumătate
ÎNCEPE
F1book1.ClearRange(1,1,100,2,3);
t:=strtofloat(Edit1.Text);
a:=strtofloat(Edit2.Text);
b:=strtofloat(Edit3.Text);
metoddix(a, b, t, cor, n);
F1book4.TextRC:=" dihotomie ";
F1book4.TextRC:="root=";
F1book4.NumberRC:=cor;
F1book4.TextRC:="y=";
F1book4.NumberRC:=f(cor);
F1book4.TextRC:=" numărul de iterații =";
F1book4.NumberRC:=n;
Adăugați (eșec);
writeln(eșuare);
Writeln(fail,"Calcul dihotomie");
closefile(eșuare);
Sfârşit;
procedura TForm1.FormCreate(Sender: TObject);
ÎNCEPE
Atribuire fișier(eșuare," raport .txt");
Rescrie(eșuează);
closefile(eșuare);
Sfârşit;
procedura TForm1.N4Click(Expeditor: TObject); // Calculul rădăcinii prin metoda acordurilor
ÎNCEPE
F1book2.ClearRange(1,1,100,2,3);
t:=strtofloat(Edit1.Text);
a:=strtofloat(Edit5.Text);
b:=strtofloat(Edit4.Text);
metodhord(a, b, t, cor, n);
F1book4.TextRC:=" acorduri ";
F1book4.TextRC:="root=";
F1book4.NumberRC:=cor;
F1book4.TextRC:="y=";
F1book4.NumberRC:=f(cor);
F1book4.TextRC:=" numărul de iterații =";
F1book4.NumberRC:=n;
Atribuire fișier(eșuare," raport .txt");
Adăugați (eșec);
writeln(eșuare);
Writeln(fail,"Calcul prin metoda acordurilor");
writeln(fail,"Acuratețea calculului = ",t:10:7);
Writeln(fail,"Initial guess:a = ",a:8:3," b = ",b:8:3);
writeln(eșuare, „Rădăcină găsită : x = ",cor:8:3, " y=f(x)= ",f(cor):8:6);
writeln(fail, "Numărul de iterații = ",n);
closefile(eșuare);
Sfârşit;
procedura TForm1.N5Click(Expeditor: TObject); // Calculul rădăcinii prin metoda lui Newton
ÎNCEPE
F1book3.ClearRange(1,1,100,2,3);
t:=strtofloat(Edit1.Text);
a:=strtofloat(Edit7.Text);
methododnyutona(a,t,cor,n);
F1book4.TextRC:="Newton";
F1book4.TextRC:="root=";
F1book4.NumberRC:=cor;
F1book4.TextRC:="y=";
F1book4.NumberRC:=f(cor);
F1book4.TextRC:=" numărul de iterații =";
F1book4.NumberRC:=n;
Atribuire fișier(eșuare," raport .txt");
Adăugați (eșec);
writeln(eșuare);
Writeln(fail,"Calcul prin metoda lui Newton");
writeln(fail,"Acuratețea calculului = ",t:10:7);
Writeln(fail,"Initial guess:a = ",a:8:3," b = ",b:8:3);
writeln(eșuare, „Rădăcină găsită : x = ",cor:8:3, " y=f(x)= ",f(cor):8:6);
writeln(fail, "Numărul de iterații = ",n);
closefile(eșuare);
Sfârşit;
Sfârşit.
Imaginea ferestrei aplicației
Interfața inițială arată astfel:
După efectuarea calculelor pentru E<= 0,001:
Ca raport, dosarul „Raport. txt":
Analiza rezultatelor
În conformitate cu sarcina pentru munca de curs din pachetul matematic, am găsit rădăcina unei ecuații neliniare ( X =-8) și reprezentat grafic.
În foile de calcul, rădăcina ecuației a fost găsită folosind două opțiuni încorporate „Selectare parametri” și „Căutare soluție”, în timp ce „Căutare soluție” a dat încă o valoare mai precisă. Rezultatele aproape au coincis cu cele din matlab.
Pentru a găsi rădăcina în mediu Delphi utilizatorul are capacitatea de a introduce exactitatea calculului de la tastatură. Testarea programului a arătat că pentru aceeași acuratețe de calcul dată, metoda lui Newton găsește valoarea dorită cu un număr mai mic de iterații.
Astfel, calculele au arătat că este posibil să se rezolve o ecuație neliniară în diferite medii. Cel mai laborios calcul s-a dovedit a fi în mediu Delphi.
Literatură.
- Amosov A.A. și alte metode de calcul pentru ingineri, Moscova, Vysshaya Shkola, 1994.
- Faronov V.V. Delphi. Programare într-un limbaj de nivel înalt
3 . Walkenbach D . Microsoft Office Excel 2007.Biblia utilizatorului
Volkov V.B. Tutorial Excel 2010 ușor de urmărit
Luați în considerare problema găsirii rădăcinilor ecuației neliniare
Rădăcinile ecuației (1) sunt acele valori ale lui x care, la înlocuire, îl transformă într-o identitate. Doar pentru cele mai simple ecuații se poate găsi o soluție sub formă de formule, adică. formă analitică. Mai des este necesară rezolvarea ecuațiilor prin metode aproximative, cele mai răspândite dintre care, în legătură cu apariția computerelor, sunt metodele numerice.
Algoritmul pentru găsirea rădăcinilor prin metode aproximative poate fi împărțit în două etape. În primul rând, se studiază locația rădăcinilor și se efectuează separarea acestora. Există o zonă în care există o rădăcină a ecuației sau o aproximare inițială a rădăcinii x 0 . Cel mai simplu mod de a rezolva această problemă este studierea graficului funcției f(x) . În cazul general, pentru a-l rezolva, este necesar să se implice toate mijloacele de analiză matematică.
Existența pe intervalul găsit a cel puțin unei rădăcini a ecuației (1) rezultă din condiția Bolzano:
f(a)*f(b)<0 (2)
De asemenea, se presupune că funcția f(x) este continuă pe segmentul dat. Cu toate acestea, această condiție nu răspunde la întrebarea despre numărul de rădăcini ale ecuației pe un interval dat. Dacă cerința de continuitate a funcției este completată cu cerința monotonității acesteia și aceasta decurge din constanța semnului derivatei întâi, atunci putem afirma existența unei rădăcini unice pe un segment dat.
La localizarea rădăcinilor, este de asemenea important să cunoaștem proprietățile de bază ale acestui tip de ecuație. De exemplu, amintiți-vă câteva proprietăți ale ecuațiilor algebrice:
unde sunt coeficienții reali.
- a) O ecuație de grad n are n rădăcini, dintre care pot fi atât reale, cât și complexe. Rădăcinile complexe formează perechi conjugate complexe și, prin urmare, ecuația are un număr par de astfel de rădăcini. Pentru o valoare impară a lui n, există cel puțin o rădăcină reală.
- b) Numărul de rădăcini reale pozitive este mai mic sau egal cu numărul de semne variabile din succesiunea coeficienților. Înlocuirea x cu -x în ecuația (3) vă permite să estimați numărul de rădăcini negative în același mod. iterație dihotomie newton neliniară
La a doua etapă a rezolvării ecuației (1), folosind aproximarea inițială obținută, se construiește un proces iterativ care face posibilă rafinarea valorii rădăcinii cu o anumită precizie predeterminată. Procesul iterativ constă în perfecţionarea succesivă a aproximării iniţiale. Fiecare astfel de pas se numește iterație. Ca rezultat al procesului de iterație, se găsește o succesiune de valori aproximative ale rădăcinilor ecuației. Dacă această secvență se apropie de valoarea adevărată a rădăcinii x pe măsură ce n crește, atunci procesul iterativ converge. Se spune că un proces iterativ converge la cel puțin ordinul m dacă este îndeplinită următoarea condiție:
unde С>0 este o constantă. Dacă m=1, atunci se vorbește de convergență de ordinul întâi; m=2 - despre pătratică, m=3 - despre convergența cubică.
Ciclurile iterative se termină dacă, pentru o anumită eroare admisibilă, sunt îndeplinite criteriile pentru abaterile absolute sau relative:
sau micimea reziduului:
Această lucrare este dedicată studiului unui algoritm pentru rezolvarea ecuațiilor neliniare folosind metoda lui Newton.
Ideea metodei. Se alege o ecuație în care una dintre variabile este cel mai simplu exprimată în termenii celorlalte variabile. Expresia rezultată pentru această variabilă este înlocuită în ecuațiile rămase ale sistemului.
- b) Combinarea cu alte metode.
Ideea metodei. Dacă metoda substituției directe nu este aplicabilă în stadiul inițial al soluției, atunci se folosesc transformări de sistem echivalente (adunare termen cu termen, scădere, înmulțire, împărțire), apoi se efectuează direct o substituție directă.
2) Metoda soluționării independente a uneia dintre ecuații.
Ideea metodei. Dacă sistemul conține o ecuație în care se găsesc expresii reciproc inverse, atunci se introduce o nouă variabilă și se rezolvă ecuația în raport cu aceasta. Sistemul se descompune apoi în mai multe sisteme mai simple.
Rezolvați un sistem de ecuații
Luați în considerare prima ecuație a sistemului:
Făcând substituția , unde t ≠ 0, obținem
De unde t 1 = 4, t 2 = 1/4.
Revenind la vechile variabile, luăm în considerare două cazuri.
Rădăcinile ecuației 4y 2 - 15y - 4 \u003d 0 sunt y 1 \u003d 4, y 2 \u003d - 1/4.
Rădăcinile ecuației 4x 2 + 15x - 4 \u003d 0 sunt x 1 \u003d - 4, x 2 \u003d 1/4.
3) Reducerea sistemului la unirea unor sisteme mai simple.
- A) Factorizarea prin scoaterea factorului comun.
Ideea metodei. Dacă există un factor comun într-una dintre ecuații, atunci această ecuație este descompusă în factori și, ținând cont de egalitatea expresiei la zero, se procedează la rezolvarea unor sisteme mai simple.
- b) Factorizarea prin soluția ecuației omogene.
Ideea metodei. Dacă una dintre ecuații este o ecuație omogenă (, atunci, rezolvând-o față de una dintre variabile, o factorăm, de exemplu: a (x-x 1) (x-x 2) și, având în vedere egalitatea expresiei la zero , trecem la rezolvarea unor sisteme mai simple.
Să rezolvăm primul sistem
- c) Folosind omogenitatea.
Ideea metodei. Dacă sistemul are o expresie care este un produs de variabile, atunci folosind metoda adunării algebrice se obține o ecuație omogenă, iar apoi se folosește metoda factorizării prin soluția unei ecuații omogene.
4) Metoda adunării algebrice.
Ideea metodei.Într-una dintre ecuații, scăpăm de una dintre necunoscute, pentru aceasta egalizăm modulele coeficienților pentru una dintre variabile, apoi efectuăm fie adunarea ecuațiilor termen cu termen, fie scăderea.
5) Metoda înmulțirii ecuațiilor.
Ideea metodei. Dacă nu există astfel de perechi (x; y) pentru care ambele părți ale uneia dintre ecuații dispar simultan, atunci această ecuație poate fi înlocuită cu produsul ambelor ecuații ale sistemului.
Să rezolvăm a doua ecuație a sistemului.
Fie = t, apoi 4t 3 + t 2 -12t -12 = 0. Aplicând corolarul din teorema rădăcinii polinomiale, avem t 1 = 2.
Р(2) = 4∙2 3 + 2 2 - 12∙2 - 12 = 32 + 4 - 24 - 12 = 0. Scădem gradul polinomului folosind metoda coeficienților nedeterminați.
4t 3 + t 2 -12t -12 = (t - 2) (la 2 + bt + c).
4t 3 + t 2 -12t -12 = la 3 + bt 2 + ct - 2at 2 -2bt - 2c.
4t 3 + t 2 - 12t -12 = la 3 + (b - 2a) t 2 + (c -2b) t - 2c.
Obținem ecuația 4t 2 + 9t + 6 = 0, care nu are rădăcini, deoarece D = 9 2 - 4∙4∙6 = -15<0.
Revenind la variabila y, avem = 2, de unde y = 4.
Răspuns. (1;4).
6) Metoda împărțirii ecuațiilor.
Ideea metodei. Dacă nu există astfel de perechi (x; y) pentru care ambele părți ale uneia dintre ecuații dispar simultan, atunci această ecuație poate fi înlocuită cu o ecuație care se obține prin împărțirea unei ecuații a sistemului la alta.
7) Metoda introducerii de noi variabile.
Ideea metodei. Unele expresii din variabilele originale sunt luate ca variabile noi, ceea ce duce la un sistem mai simplu decât cel original din aceste variabile. După ce sunt găsite noile variabile, este necesar să găsiți valorile variabilelor originale.
Revenind la vechile variabile, avem:
Rezolvăm primul sistem.
8) Aplicarea teoremei Vieta.
Ideea metodei. Dacă sistemul este astfel compus, una dintre ecuații este prezentată ca sumă, iar a doua ca produs al unor numere care sunt rădăcinile unei ecuații pătratice, atunci folosind teorema Vieta compunem o ecuație pătratică și o rezolvăm. .
Răspuns. (1;4), (4;1).
Pentru rezolvarea sistemelor simetrice se folosește substituția: x + y = a; xy = in. La rezolvarea sistemelor simetrice se folosesc următoarele transformări:
x 2 + y 2 \u003d (x + y) 2 - 2xy \u003d a 2 - 2c; x 3 + y 3 \u003d (x + y) (x 2 - xy + y 2) \u003d a (a 2 -3c);
x 2 y + xy 2 \u003d xy (x + y) \u003d av; (x + 1) ∙ (y + 1) \u003d xy + x + y + 1 \u003d a + b + 1;
Răspuns. (1;1), (1;2), (2;1).
10) „Probleme limită”.
Ideea metodei. Rezolvarea sistemului se obține prin raționament logic legat de structura domeniului de definiție sau setul de valori ale funcțiilor, studiul semnului discriminantului ecuației pătratice.
Particularitatea acestui sistem este că numărul de variabile din el este mai mare decât numărul de ecuații. Pentru sistemele neliniare, o astfel de caracteristică este adesea un semn al unei „probleme de limită”. Pe baza tipului de ecuații, vom încerca să găsim setul de valori ale funcției care apare atât în prima cât și în a doua ecuație a sistemului. Deoarece x 2 + 4 ≥ 4, din prima ecuație rezultă că
Răspunsul este (0;4;4), (0;-4;-4).
11) Metoda grafică.
Ideea metodei. Construiți grafice ale funcțiilor într-un singur sistem de coordonate și găsiți coordonatele punctelor lor de intersecție.
1) După ce am rescris prima ecuație a sistemelor în forma y \u003d x 2, ajungem la concluzia: graficul ecuației este o parabolă.
2) După ce am rescris a doua ecuație a sistemelor sub forma y \u003d 2 / x 2, ajungem la concluzia: graficul ecuației este o hiperbolă.
3) Parabola și hiperbola se intersectează în punctul A. Există un singur punct de intersecție, deoarece ramura dreaptă a parabolei servește ca grafic al unei funcții crescătoare, iar ramura dreaptă a hiperbolei este una descrescătoare. Judecând după modelul geometric construit, punctul A are coordonatele (1; 2). Verificarea arată că perechea (1;2) este o soluție a ambelor ecuații ale sistemului.