CURS 11 Rezolvarea ecuaţiilor transcendente Fie ecuatia: f(x)=0

Slides:



Advertisements
Similar presentations
Prof.Briciu Daniela Sc.cu cls. I-VIII Luna de Sus
Advertisements

Adobe photoshop.  De multe ori ne facem fotografii si unele nu le facem publice pentru ca ori am avut un cos in acel moment sau un alt aspect negativ.
Propuneri pentru managementul SPA- urilor in favoarea speciei – m ă suri pentru p ă duri şi m ă suri pentru pajişti Alex Nicoar ă, Tamas Papp „Conservarea.
 Ce e bravenet.COM ?  De ce bravenet.COM ?  Avantaje si dezavantaje in folosirea bravenet.COm Grupa 6: Lucian-Eduard Barticel Eduard Giurgiu Iany Ionut.
În general exist ă 2 forme mari de conservare : “in situ” şi “ex situ” 1. Conservarea “ in situ” Aceast ă metod ă de conservare const ă în.
Textul de confidentialitate Sigla SOFTWIN Prezentul document este proprietatea SOFTWIN şi informaţia inclusă în el este confidenţială. Se poate şterge.
Batalia sexelor O lume dominata de barbati vs o lume dominata de femei.
-Modelul Entitate-Legatura (ER)-
ACTIVITATEA 1 -,, PROFESOR IT LA PAPI’’
Subinterogări multiple
Subinterogari.
Oracle Academy Lead Adjunct
Funcţii Excel definite de utilizator (FDU) în VBA
Instrumente CASE Curs nr. 7.
Căutarea şi regăsirea informaţiei.
SOFTWARE Tipuri de software.
Dispozitive de stocare
CREATE, DROP,ALTER INSERT, UPDATE, DELETE
Arhitectura serviciilor web
Căutarea şi regăsirea informaţiei.
Stiva este acea formă de organizare a datelor (structură de date) cu proprietatea că operaţiile de introducere şi scoatere a datelor se fac în vârful ei.
Paxos Made Simple Autor: Puşcaş Radu George
sau ecuaţiile diferenţiale ale mişcării unui SPM
Date Semistructurate, C12. Oracle / OR (2) Date Semistructurate,
CURSUL 4 ECONOMETRIE TESTUL HI PATRAT.
Retele de calculatoare
Sistemul de salarizare pentru funcţionarii publici şi cele mai recente tendinţe ale reformei Germania.
Reflexia luminii.
METODA BACKTRACKING Examenul de bacalaureat 2012
Cursul 3 Cautare peste siruri problema cautarea naiva
Generarea modelelor fractale
Introducere in HCI.
Recapitulare La Logica si argumentare
WebSite Social Tema 2 WebSite Social.
Tipuri structurate Tipul tablou
SUBNETAREA.
Grasu leonard ionut Trifu gabriel
Algoritmi de aproximare definitii acoperirea unei multimi
Inteligenta Artificiala
Web Form BuilDer Coffee Cup.
Algoritm de crawling optimizat pe similaritate în documente HTML
Modelarea matematica a proceselor biologice - Curs -
Formatarea paragrafului
Calculul indicatorilor financiari
Funcții C/C++ continuare
prof. mrd. Negrilescu Nicolae Colegiul National Vlaicu Voda
Medii informatice utilizate pentru proiectare
original creator: unknown
Algoritmul lui Kruskal
Biletul la ordin internațional – explicații
AUTOMOBILUL ELECTRIC UNIVERSITATEA POLITEHNICA
SOAP Simple Object Access Protocol
Eclipsele de soare si de luna
Forms (Formulare).
A great way to create a channel of communication
Functia de documentare
Raspunsul la frecventa
SOAP -Simple Object Access Protocol-
Bazele Tehnologiei Informaţiei Curs 3
Programarea in limbajul Java 2004 Lecturer: Gavrila Cristian
Software open source in industria software
PARE IMPOSIBIL! GENERALUL DWIGHT D. EISENHOWER A AVUT
CMMI- Arii de proces: Inginerie si managementului proiectelor
Refracţia luminii.
Implementarea listelor simplu inlantuite
Harti de imagini, Cadre, Stiluri
Despre lamaie.net De ce sunt lamaile acre? Realizatori: Cristina Cazan
Tabele WEB.
Siruri de caractere.
ALGORITMI ŞI SCHEME LOGICE
Presentation transcript:

CURS 11 Rezolvarea ecuaţiilor transcendente Fie ecuatia: f(x)=0 algebrică - dacă poate fi adusă la o formă polinomială transcendentă – dacă nu este algebrică Ecuaţii algebrice: 3x=9; 2x2-3x+2=0; x5=x(2x-1); Ecuaţii transcendente: sin(x)+cos(x)=0.5; eln(x)-x=π; Pentru determinarea soluţiilor ecuaţiilor transcendente este nevoie de metode de aproximare. Rădăcină unei ecuatii: Cum se defineste o rădăcină aproximativă?

Pentru determinarea soluţiilor unei ecuaţii de forma f(x)=0 trebuie parcurse două etape: separarea rădăcinilor - partiţionarea intervalului de definiţie al funcţiei în mai multe subintervale determinate de nodurile xmin=x1, x2, ... , xM=xmax astfel încât oricare subinterval să conţină cel mult o rădăcină a ecuaţiei 2. calculul rădăcinilor cu o anumită precizie

1. Separarea rădăcinilor Teorema: Dacă o funcţie continuă f(x) are valori de semn opus la capetele unui interval [a,b] (dacă f(a)·f(b)<0) atunci în acel interval se găseşte cel puţin o rădăcină a ecuaţiei f(x)=0. Rădăcina este unică în intervalul [a,b] dacă derivata funcţiei (f'(x)) există şi îşi păstrează semnul în acel interval. O singura radacina in intervalul [10,15] Nici o radacina in intervalul [-10,-5] Radacini multiple in intervalul intervalul [0,10] Dacă subintervalele rezultate în urma partiţionării domeniului de definiţie al funcţiei sau a domeniului în care se caută zerourile funcţiei, [xm,xm+1], sunt suficient de mici astfel ca fiecare să conţină cel mult o rădăcină, atunci:

2. Calculul rădăcinilor cu o anumită precizie Metode: - metoda bisecţiei (înjumătăţirii intervalului) - metoda lui Newton (metoda tangentei) - metoda secantei - metoda falsei poziţii metoda aproximaţiilor succesive ...

Metoda bisecţiei - constă în împărţirea repetată a intervalului iniţial [a,b] în jumătăţi ale acestuia şi selectarea intervalului (jumătăţii) în care se află soluţia.

Conditia de oprire a procesului iterativ :

Avantaje si dezavantaje oferă convergenţă liniară a soluţiei ecuaţiei convergenţă lentă garantează convergenţa la soluţia exactă dacă valorile f(a) şi f(b) sunt de semne contrare

Program exemplu: metoda bisecţiei //metoda bisectiei #include<stdio.h> #include<math.h> #include <conio.h> #include <stdlib.h> #define eps 1e-8 double f(double x) { return 4.5*cos(x/3)*cos(x/3)-x/4; } double bisect(double inf, double sup, double (*pf)(double)) double c; if((*pf)(inf)==0) return inf; if((*pf)(sup)==0) return sup; if((*pf)(inf)*(*pf)(sup)>0) printf("\nNu exista sol sau exista solutii multiple"); while(!_kbhit()); exit(1); do { c=(inf+sup)/2.0; if((*pf)(c)==0) return c; if((*pf)(inf)*(*pf)(c)<0) sup=c; else inf=c; while((sup-inf) >= eps); // conditia de oprire return c; int main() double s; float A=3.0, B=4; s=bisect(A,B,f); printf("\nSolutia este s= %lf\a",s); while(!_kbhit()); return 0;

Metoda lui Newton propusă de către Isaac Newton în anul 1669 revăzută de către Joseph Raphson în 1690 si Thomas Simpson în 1740 una dintre cele mai răspândite metode folosite în acest scop algoritmul bazat pe această metodă poate fi folosit şi la determinarea minimului sau maximului unei funcţii prin determinarea zeroului primei derivate a funcţiei, în metode de optimizare. Fie ecuatia: f(x)=0

Grafic:

Conditia de oprire a procesului iterativ : Calculul soluţiei exacte implică: alegerea unei aproximaţii iniţiale (x0) a soluţiei ecuaţiei f(x)=0 - condiţie necesară şi suficientă: f(x0)f"(x0)>0. calculul derivatei funcţiei al cărui zero se calculează - calcul numeric (daca nu este posibil analitic) Deoarece în relaţia iterativă de calcul a rădăcinii valoarea f'(x0) apare la numitor, în cazul accidental în care derivata funcţiei în punctul xi este zero, se va alege pentru aceasta valoarea ε (o valoare mică, diferită de zero) folosită la calculul derivatei sale. Dezavantajele metodei lui Newton 1. în unele cazuri este necesară o alegere atentă a valorii de start, x0 necesită evaluarea a două funcţii. la o iteraţie, se poate determina numai una dintre rădăcinile ecuaţiei cu rădăcini multiple (depinde de rădăcina aproximativă de "guess" de la care se porneşte)

Calculul numeric al derivatelor 1. Forward differences method (FDM) 2. Central differences method (CDM)

Vezi cursul 2 – pasul de reprezentare a numerelor reale Pentru valori de tip REAL, stocate pe 4 octeţi, p  10-7, iar pentru valori de tip DOUBLE, stocate pe 8 octeţi, p  10-16. Vezi cursul 2 – pasul de reprezentare a numerelor reale simpla precizie: 2-23 = 1.192 x 10-7 dubla precizie: 2-52= 2.22 x 10-16 Conditii pentru alegerea valorii 

if(k>20) { printf("\nNu converge!"); exit(1); } while(x!=x0); printf("\nSolutia ecuatiei este %15.12lf\nNr. de iteratii: %d",x,k); return x; int main () double x0,x; int k; printf("Solutia initiala: x0= "); scanf("%lf",&x0); newton(f,x0); while(!_kbhit()); return 0; //Metoda Newton #include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> double f(double x) { return 4.5*cos(x/3)*cos(x/3)-x/4; } double newton(double (*) (double), double x0) double p=1.0,eps,x,df; int k; //Calculul preciziei masinii si a valorii eps do p=p/2.0; while(p+1.0!=1.0); eps=pow(p,1/3.0); printf("p= %.20lf\teps= %.20lf",p,eps); //Calculul solutiei x=x0; k=0; k++; x0=x; //calculul numeric al derivatei prin CDM df=(f(x+eps)-f(x-eps))/2/eps; //evitarea cazului in care df este zero if(df==0) df=eps; //actualizarea solutiei x=x0-f(x)/df; printf("\nIteratia: %d: x= %15.12lf",k,x);

3. Folosind metoda Newton, determinati primele cinci zerouri pozitive si primele 5 zerouri negative ale functiei f(x) = exp(-0.05*x)*cos(x)