Sunteți pe pagina 1din 8

Departamentul A.I.A.

Matematici Asistate de Calculator

Lucrarea de laborator 5 Rezolvarea ecuaiilor transcendente


Cuprinsul lucrrii Consideraii pregtitoare: Ecuaii transcendente Aplicaii n Matlab

1. Consideraii pregtitoare O ecuaie care nu poate fi adus n forma unei ecuaii polinomiale (ecuaie algebric) se numete ecuaie transcendent. Se consider o ecuaie de forma general: f(x)=0 cu f : I R R. Rezolvarea ecuaiei de mai sus nseamn gsirea zerourilor funciei f. Metodele de rezolvare numeric a ecuaiilor transcendente se mpart n dou categorii: a) metode de separare sau localizare a soluiilor ecuaiei, adic de izolare a unor subdomenii ale domeniului de definiie I, care s conin cte unul din zerourile funciei f (a se vedea irul lui Rolle); b) metode de determinare, cu o precizie a priori fixat, a unei soluii care a fost izolat n prealabil, pornind de la o valoare aproximativ a acesteia (de exemplu: metoda biseciei (numit i metoda njumtirii intervalului), metoda falsei poziii (cunoscut i sub denumirile de metoda coardei, metoda secantei sau metoda mpririi intervalului n pri proporionale); 2. Aplicaii n Matlab n Matlab este implementat pentru ecuaii de forma f(x)=0 o variant a metodei biseciei prin funcia fzero, cu sintaxa urmtoare (n forma cea mai simpl): x = fzero(funct,x0) unde funct reprezint numele dat de utilizator funciei f(x) a crei expresie poate fi n particular transcendent, x0 este o aproximare iniial a soluiei ecuaiei, iar x reprezint soluia de aproximare a ecuaiei dat de funcia Matlab. Sintaxa funciei fzero poate fi complicat, prin introducerea unor opiuni. Una dintre opiuni o constituie stabilirea preciziei de calcul a soluiei prin intermediul

Departamentul A.I.A.

Matematici Asistate de Calculator

parametrului TolX al funciei optimset. Valoarea implicit a preciziei este egal cu constanta predefinit eps=2-52. n afar de valoarea soluiei, funcia fzero mai poate returna alte trei elemente, i anume: valoarea funciei funct n x o valoare de control (exitflag), care este strict pozitiv, n cazul n care a fost gsit o soluie, sau strict negativ, n caz contrar o structur (output) care conine urmtoarele informaii: numrul de iteraii (iterations) i numrul de evaluri (funcCount) efectuate, precum i algoritmii utilizai pentru determinarea soluiei (algorithm) (fzero utilizeaz o combinaie a metodelor biseciei, secantei i interpolrii cubice inverse). n cele ce urmeaz este ilustrat aplicarea funciei fzero. Exemplul 1: S se rezolve ecuaia ex sin(x) 3 = 0 utiliznd funcia fzero. Soluie: Rezolvarea unei ecuaii transcendente presupune un studiu prealabil al ecuaiei respective n vederea localizrii rdcinilor (a tuturor sau a celor din domeniul de interes). Prin aceasta, se reduce riscul ca aproximaia iniial s duc la un rezultat eronat sau chiar s nu se obin nici un rezultat (metoda nefiind convergent pentru aceast valoare de pornire). Una dintre metodele de studiu al ecuaiilor este metoda grafo-analitic. Aceast metod este bazat pe rescrierea ecuaiei sub forma g(x)=h(x) i pe folosirea proprietilor de monotonie i continuitate ale funciilor g i h. Astfel, ecuaia din exemplu este mai uor de studiat dac o rescriem sub forma: ex = sin(x) + 3 Se definesc dou funcii care reprezint cei doi membrii ai ecuaiei: function f=ec1(x); f=exp(x); function f=ec2(x); f=sin(pi*x)+3; Pentru a reprezenta grafic cele dou funcii, n vederea localizrii punctului de intersecie, trebuiesc determinate limitele intervalelor de reprezentare, att pe axa x ct i pe axa y. Acestea se deduc din proprietile celor dou funcii. Astfel, funcia ec1 este definit pe R, este strict cresctoare, continu, codomeniul (imaginea) funciei este intervalul (0,). Funcia ec2 este definit pe R, este periodic de perioad 2, continu, mrginit, codomeniul funciei este intervalul [2,4]. Din proprietile menionate deducem c cele dou funcii au sigur cel puin un punct de intersecie al graficelor, avnd coordonata y n intervalul [2,4]. Limitele reprezentrii grafice pe axa y trebuie s cuprind acest interval, iar limitele pe axa x trebuie s cuprind intervalul ec1-1([2,4]) (de exemplu: ec1(0)=1<2, 4<ec1(3) ). Construim graficele:
2

Departamentul A.I.A.

Matematici Asistate de Calculator

% domeniul functiilor x=0:0.1:3; % graficele


plot(x,ec1(x),'b',x,ec2(x),'r:')

% stabilirea limitelor exelor axis([0 3 1 5])

Se observ din grafic c exist un singur punct de intersecie n vecintatea lui (1,2.75). Coordonatele punctului de intersecie pot fi citite de pe grafic cu funcia Matlab "ginput": [x,y]=ginput sau [xp,yp]=ginput(1) Dup citirea coordonatelor punctului cu mouse-ul de pe grafic (primul mod de citire necesit apsarea tastei Enter), se obine: xp = 1.0541 yp = 2.8304 n final, se definete ecuaia sub forma iniial (f(x)=0) i se aplic funcia fzero n linia de comand, cu valoarea iniial de aproximare x=1.0541: function f=ec(x) f=exp(x)-sin(pi*x)-3; sol=fzero(ec,xp) Se obine rspunsul: sol = 1.0476 S-a obinut, deci, soluia aproximativ: x = 1.0476. Exemplul 2: S se determine o soluie n jurul valorii 0.5 pentru ecuaia: f(x) = 0, unde f(x) = 2tgx 10x + 3. Totodat s se determine i numrul de iteraii efectuate. Soluie: Se definete funcia ec (fiierul ec.m), care reprezint funcia f(x): function f=ec(x) f=2*tan(x)-10*x+3; Apoi, se apeleaz funcia fzero n linia de comad: [x,fval,exitflag,output]=fzero('ec',0.5) obinnd rspunsul: x = 0.3798 fval = 0
3

Departamentul A.I.A.

Matematici Asistate de Calculator

exitflag = 1 output = iterations: 20 funcCount: 20 algorithm: 'bisection, interpolation' S-a obinut soluia x=0.3798, n care funcia f are valoarea 0, numrul de iteraii efectuate fiind 20. Pentru determinarea soluiei s-a utilizat metoda biseciei combinat cu un algoritm de interpolare. Pentru a schimba precizia de calcul, de exemplu la valoarea 0.01 (mai mare dect valoarea implicit), se execut urmtoarea secven de instruciuni Matlab: options=optimset('TolX',0.01); [x,fval,exitflag,output]=fzero('ec',0.5,options) obinnd: x = 0.3813 fval = -0.0114 exitflag = 1 output = iterations: 18 funcCount: 18 algorithm: 'bisection, interpolation' S-a obinut soluia x=0.3813 cu o precizie de 0.01, numrul de iteraii efectuate fiind 18, evident mai mic dect n cazul preciziei implicite. n continuare va fi definit o funcie Matlab, denumit newton (fiierul Matlab newton.m) pentru implementarea algoritmului versiunii clasice a metodei lui Newton de rezolvare a ecuaiilor de forma f(x)=0: function [sol,iter]=newton(func,dfunc,x0,eps) % functie pentru rezolvarea ecuatiei f(x)=0 cu % versiunea clasica a metodei Newton % parametri: % func - functie definita de utilizator f(x) % dfunc - functie derivata definita de utilizator df(x)/dx % x0 - aproximatie initiala a solutiei ecuatiei % eps - precizia de aproximare % sol - solutia ecuatiei % iter - numarul de iteratii rezultat % % initializari: iter=0; x=x0; aa=feval(func,x)/feval(dfunc,x); % iteratii: while abs(aa)>eps, x1=x-aa; iter=iter+1;
4

Departamentul A.I.A.

Matematici Asistate de Calculator

x=x1; aa=feval(func,x)/feval(dfunc,x); end; % solutia: sol=x; Algoritmul implementat presupune c n toate punctele irului de iteraii valoarea derivatei este nenul. Aplicarea funciei newton este exemplificat n continuare. Exemplul 3: S se gseasc o soluie aproximativ din intervalul (1, 1) a ecuaiei:

y sin( y ) 0.5 = 0 4
folosind programul anterior. Soluie: Rezolvarea ncepe cu definirea funciile Matlab ec3 (fiierul ec3.m) pentru membrul stng al ecuaiei i dec3 (fiierul dec3.m) pentru derivata membrului stng al ecuaiei: function f=ec3(x) f=(x/4)^2-sin(x)-0.5 function f=dec3(x); f=x/2-cos(x); Urmeaz aplicarea funciei Matlab newton prezentat anterior: [sol,iter]=newton('ec3','dec3',0.5,0.001) Se obine: sol = -0.5059 iter = 5 Prin urmare, s-a obinut soluia aproximativ x = 0.5059, dup 5 iteraii. Rezolvarea simbolic a ecuaiilor Pentru rezolvarea simbolic a ecuaiilor, Matlab pune la dispoziia utilizatorului funcia solve din toolbox-ul Symbolic Math. Se exemplific utilizarea acestei funcii pe urmtoarele ecuaii: Exemplul 4: S se rezolve ecuaiile: a) b) c)

ax b = e a , n raport cu necunoscuta x / b; ax + b
ax 2 + 2b bx 2a
2

b , n raport cu necunoscuta x; a

a cos(u + v) + b sin(u v) = 0 , n raport cu necunoscuta u / v.

Soluie: Etapele de rezolvare sunt urmtoarele:


5

Departamentul A.I.A.

Matematici Asistate de Calculator

a) % definirea obiectelor simbolice syms x a b; % definirea membrului stang al ecuatiei scrisa sub f(x)=0 f=(a*x-b)/(a*x+b)-exp(-a); % rezolvarea ecuatiei, se face implicit in raport cu x solx=solve(f) % rezolvarea ecuatiei in raport cu b solb=solve(f,b) Se obin rezultatele: solx = -b*(1+exp(-a))/a/(-1+exp(-a)) solb = -a*x*(-1+exp(-a))/(1+exp(-a)) Discuii: Ecuaia n necunoscuta x prezint urmtoarele puncte de discuie: (I.x) a=0 i b=0 nu este un caz posibil (numitorul ecuaiei fiind 0); (II.x) a=0, b0 duc la o ecuaie imposibil 1=1;

forma

(III.x) a0, b=0 nu este un caz posibil (ecuaia devine: 1=e-a, ceea ce contrazice a0); (IV.x) trebuie verificat dac pentru orice a0 i orice b0, soluia x ndeplinete condiia ca numitorul ax+b0. Se calculeaz: ax+b=

2b care evident este nenul. 1 e a

n cazul necunoscutei b, exist urmtoarele cazuri: (I.b) numitorul 1+e-a este nenul pentru orice valoare a lui a (e-a> 0 => 1+e-a>1); (II.b) a=0 sau x=0 duce la o ecuaie imposibil 1=e-a, adic 1>0, ceea ce este fals; (III.b) trebuie verificat dac, pentru a0 i x0, soluia b obinut nu anuleaz numitorul ecuaiei, adic ax+b0. Se calculeaz: ax+b=

2a x , care este nenul pentru orice a0 i x0. 1 + e a b) % definirea obiectelor simbolice syms x a b; % definirea ecuatiei sub forma f(x)=0 f=(a*x^2+2*b)/(b*x^2-2*a)-b/a; % rezolvarea ecuatiei solx=solve(f) solx = [ 2/(a^2-b^2)*(-(a^2-b^2)*a*b)^(1/2)] [ -2/(a^2-b^2)*(-(a^2-b^2)*a*b)^(1/2)]

Discuii: (I) a nu poate fi zero;

Departamentul A.I.A.

Matematici Asistate de Calculator

(II) pentru a=b se obine o ecuaie imposibil:

4 = 0; x 2
2

(III) pentru a=-b se obine o ecuaie imposibil:

4 = 0; x +2
2

(IV) dac expresia de sub radical, (-a2+b2)ab, este strict negativ, cele dou soluii ale ecuaiei sunt numere complexe; (V) n cazul b=0 ecuaia are o singur soluie, x=0. (VI) lsm ca exerciiu discuia privind numitorul bx2-2a. c) % definirea obiectelor simbolice syms a b u v; % definirea ecuatiei sub forma f(x)=0 f=a*cos(u+v)+b*sin(u-v); % rezolvarea ecuatiei in raport cu u solu=solve(f,u) % rezolvarea ecuatiei in raport cu v solv=solve(f,v) solu = atan((a-b*tan(v))/(a*tan(v)-b)) solv = atan((a*cos(u)+b*sin(u))/(a*sin(u)+b*cos(u))) Discuii: Cazul ecuaiei n necunoscuta u: (I.u) a=0 i b=0; ecuaia devine 0=0, deci soluia este uR; (II.u) a0 i b=0; ecuaia devine acos(u+v)=0, care are soluia u=v+(2k+1)(/2), kZ; (III.u) a=0 i b0; ecuaia devine bsin(u-v)=0, care are soluia u=v+k, kZ; (IV.u) a0 i b0; apar urmtoarele cazuri: (1) cos(v)=0; ecuaia devine acos(u)+bsin(u)=0, care are soluia: u=-arctg(a/b)+k, kZ; (2) atg(v)-b=0; ecuaia devine (a2-b2) cos(u)=0; astfel: (2.1) dac a2=b2, atunci soluia este uR; (2.2) dac a2b2, soluia este u=(2k+1)(/2), kZ; (3) n rest, soluia este (a se vedea rezultatul n Matlab): u=arctg((a-btg(v))/(atg(v)-b))+ k, kZ. Cazul ecuaiei n necunoscuta v: (I.v) a=0 i b=0; ecuaia devine 0=0, deci soluia este vR; (II.v) a0 i b=0; ecuaia devine acos(u+v)=0, care are soluia v=-u+(2k+1)(/2), kZ; (III.v) a=0 i b0; ecuaia devine bsin(u-v)=0, care are soluia v=u-k, kZ; (IV.v) a0 i b0; apar urmtoarele cazuri:
7

Departamentul A.I.A.

Matematici Asistate de Calculator

(1) asin(u)+bcos(u)=0; ecuaia devine (a2-b2) cos(v)=0; astfel: (1.1) dac a2=b2, atunci soluia este vR; (1.2) dac a2b2, soluia este v=(2k+1)(/2), kZ; (2) n rest, soluia este (a se vedea rezultatul n Matlab): v= arctg((acos(u)+bsin(u))/(asin(u)+bcos(u)))+ k, kZ.

Probleme propuse 5.1. S se determine soluia ecuaiei transcendente: x2-3=sin(x)+ x pornind de la aproximaia iniial x=2. 5.2. Cte soluii are ecuaia de la problema 5.1.? S se determine toate soluiile ecuaiei. 5.3. Cte soluii are ecuaia de mai jos? S se determine minimum trei soluii nenule de valori absolute distincte: tg(x)=x. 5.4. S se rezolve ecuaiile: a) ax3-bx2+ab=0, n necunoscuta x / n necunoscuta a / n necunoscuta b; b) 2xa2+

b (a + 1) =0, n necunoscuta x / n necunoscuta a / n necunoscuta b. x

i s se discute rezultatele obinute (de exemplu, cazul a=0 la punctul a) etc.). 5.5. S se determine soluia / soluiile (toate, dac este posibil, sau doar o parte) urmtoarelor ecuaii: a) b)

x ( x 2 + 1) = x; x2 1 e
x2

x2 = ln(1 x + ) . 3

S-ar putea să vă placă și