Wortels - berekeningsmethodes




We beschrijven enkele methodes om wortels te berekenen van een vergelijking. We gebruiken deze methodes gewoonlijk als een algebraische methode niet bestaat of te ingewikkeld is, of als we tevreden zijn met een benadering van de wortels.

Bisectie methode.

Als f(x) continu is in de omgeving van een enkelvoudige wortel r van f(x)=0, dan zal f(x) van teken veranderen voor x= r. Er is dan een klein interval [a,b] welke r bevat zodat f(a).f(b) < 0. Noem m het middelpunt van dat interval [a,b], dan zijn er drie mogelijkheden. Nu kunnen we herstarten, met dezelfde methode, in het kleinere interval [a,m] of [m,b]. Het interval wordt bij elke stap kleiner en kleiner. Op deze manier vinden we een benadering van de wortel.

Voorbeeld:

De vergelijking
 
        t3  + 4 t2  - 1 = 0
heeft een positieve wortel r in [0,1]. f(0)<0 en f(1)>0.
Daar f(0.5) = 0.125 is de wortel in [0, 0.5].
Daar f(0.25) = -0.73 is de wortel in [0.25, 0.5].
Daar f(0.375) = -0.38 is de wortel in [0.375, 0.5].
Daar f(0.4375) = -0.15 is de wortel in [0.4375, 0.5].
Daar f(0.46875) = -0.018 is de wortel in [0.46875, 0.5].
Daar f(0.484375) = 0.05 is de wortel in [0.46875, 0.484375].
... zo vinden we de benadering 0.472834 voor de wortel.

Het is vanzelfsprekend dat dergelijke methode geprogrammeerd wordt. In dit geval heeft men de wortel in minder dan een seconde.

Newton's methode.

Stel dat f(x) afleidbaar is in de omgeving van een wortel r en we noemen ro een eerste benadering van de wortel. Het punt P(ro,f(ro)) ligt op de grafiek van de functie. De rico van de raaklijn in P is dan f'(ro). Deze raaklijn snijdt de x-as in een punt met x-waarde r1. De waarde r1 is dan een betere benadering van de wortel dan ro. Uitgaande van r1 kan men nu opnieuw een betere benadering r2 vinden. Enz ...
 
           

Formule

De vergelijking van de raaklijn in punt P is
 
        y - f(ro) = f'(ro) (x - ro)

        voor y = 0 krijgen we

                    f(ro)
        r1 = ro - --------
                    f'(ro)

Voorbeeld

Neem opnieuw de vergelijking
 
        t3  + 4 t2  - 1 = 0
Neem to = 0.5 als eerste benadering. dan
 
                    to3 + 4 to2 - 1
        t1 = to - ------------------ = 0.4736842
                    3 to2  + 8 to
Neem t1 als een nieuwe benadering; we vinden dan t2= 0.472834787153
Neem t2 als een nieuwe benadering; we vinden dan t3= 0.472833908996
Neem t3 als een nieuwe benadering; we vinden dan t4= 0.472833908996

Je merkt dat deze methode een krachtige methode is om de wortel te benaderen.

Het is vanzelfsprekend dat dergelijke methode geprogrammeerd wordt. In dit geval heeft men de wortel in minder dan een seconde.

Deze methode kan falen als de eerste benadering te ver van de wortel verwijderd is

Iteratie methode

Onderstel dat je een vergelijking kan brengen in de vorm x = f(x). We zullen aantonen dat je dergelijke vergelijking kan oplossen, gebruik makend van iteratie, op voorwaarde dat aan bepaalde voorwaarden is voldaan.

Start met een benadering x0 van de wortel.
Bereken x0, x1, ..., xn, ... zo dat

 
    x1=f(x0) ;

    x2=f(x1) ;

    x3=f(x2);

    ...
Stelling:
Beschouw de vergelijking van de vorm x = f(x).
Als de rij x0, x1, ... , xn, ... behoort tot een interval I, zodat |f'(x)| < k < 1 ,
dan heeft de rij een limiet L en L is de enige wortel van x=f(x) in het interval I.

Voorbeeld 1

De vergelijking is x = 2 + sin(x)/2.
Hier is f(x) = 2 + sin(x)/2 en dan is f'(x) = cos(x)/2 en de voorwaarde |f'(x)| < k < 1 is vervuld voor alle x.

We starten met een eerste benadering x0 = 2 en we berekenen x1, x2,...

 
2.45464871341284
2.31708861973148
2.36710557531865
2.34967477062353
2.35585092904743
2.35367483693284
2.35444309931047
2.35417205822186
2.35426770472895
2.35423395542163
2.35424586438903
2.35424166217094
2.35424314497835
2.35424262175115
2.35424280637852
2.35424274123042
2.35424276421875
2.35424275610703
2.35424275896935
2.35424275795934
de wortel is 2.35424275822278

Voorbeeld 2

De vergelijking is x.tanh(x)=1.
 
   x = coth(x)

   f(x) = coth(x)

   |f'(x)| = | -1/sinh2(x)| < 1/x2

   |f'(x)| < 1 for x > 1

We starten met  x0 = 1 en we berekenen x1,x2,...

1.31303528549933
1.15601401811395
1.21990402611162
1.19100666638769
1.20352756742564
1.19799585895445
1.20041926080065
1.19935362719156
1.19982145104824
1.19961592438525
1.19970618895035
1.19966654047733
1.19968395490739
1.19967630592522
1.19967966556677
de wortel is 1.1996786402

Efficientie verhogen door transformatie van de vergelijking

Neem de vergelijking x3 + 4 x2 - 1 = 0
We brengen de vergelijking in de vorm x = f(x)
x = x + (x3 + 4 x2 - 1)

xo = 0.5 is een eerste benadering van de wortel.

De f(x) uit de bovenstaande stelling is hier x + x3 + 4 x2 - 1 .
Maar de voorwaarde |f'(x)| < k < 1 is niet vervuld in de omgeving van de wortel.

Daarom transformeren we de vergelijking in

 
    x = x + r.(x3  + 4 x2  - 1)
We kunnen nu de waarde van r gepast kiezen zonder dat de wortel verandert!
De f(x) uit de stelling is nu x + r( x3 + 4 x2 - 1) .
Uit het bewijs van de boverstaande stelling weten we dat de convergentie zeer snel gaat als f '(x) een waarde heeft welke dicht bij nul ligt in de omgeving van de wortel..
 
 f'(x) = 1 + r.(3x2 + 8 x)


 Daar de wortel x ongeveer 0.5 is , kiezen we  r zodat

 f'(0.5) = 1 + r.(3 (0.5)2 + 8.(0.5)) = 0

 r = -0.21052631579 maar we  kiezen  r = -0.21.

 Nu is  f'(x) bijna  0 in de omgeving van de wortel.

We passen iteratie toe op   x = x - 0.21(x3  + 4 x2  - 1),
en starten met  x = 0.5

0.47375
0.472892306269531
0.472837688600127
0.472834153854809
0.472833924859327
0.472833910023068
0.472833909061846
0.47283390899957
0.472833908995535

Procedure

  1. We willen een nulpunt van de functie g(x) en we kennen een eerste benadering xo van het nulpunt.
  2. We schrijven x = x + r.g(x)
  3. We kiezen een r-waarde zodat 1 + r g'(xo) ongeveer nul is. Zij ro de gekozen waarde van r.
  4. We passen iteratie toe op x = x + ro.g(x) en we starten met x=xo

Voorbeeld1

  1. We zoeken de wortels van x ln(x) - ln(0.7) = 0.
    Op een plot van de functie zien we dat er twee nulpunten zijn en we kunnen benaderingen 0.28 en 0.46 van de plot aflezen.
    We zullen eerst de methode toepassen op 0.28
  2. We schrijven x = x + r(x ln(x) - ln(0.7))
  3. We kiezen een r-waarde zodat 1+r(1+ln(0.28))=0. ro=3.66 is een goede benadering.
  4. We passen iteratie toe op x = x + 3.66 (x ln(x) - ln(0.7))
    en we vinden in een paar stappen zeer goede resultaten.
     
    0.28000000000
    0.280895070246
    0.280901147167
    0.280901224144
    0.280901225114
    
  5. Bereken nu op dezelfde wijze de tweede wortel startend met de benadering 0.46.

Voorbeeld2

  1. We zoeken de wortels van x - sin(x) - 0.5 = 0. Op een plot van de functie zien we dat xo = 1.5 een goede benadering is.
  2. We schrijven x = x + r(x - sin(x) - 0.5)
  3. We kiezen een r-waarde zodat 1 + r(1-cos(1.5))= 0 . ro = -1.077
  4. We passen iteratie toe op x = x - 1.077 (x - sin(x) - 0.5)
    en we vinden in 3 stappen zeer goede resultaten.
     
    1.49730210057
    1.49730039266
    1.4973003891
    

Oefening

Twee cirkels met straal 1 snijden elkaar. Er ontstaan 3 gebieden. Bereken de afstand tussen de middelpunten van de cirkels zodat de drie gebieden even groot zijn.

 
     




MATH-abundance - tutorial

Site adres is http://home.scarlet.be/math/nl/

Zend alle vragen, foutmeldingen en opmerkingen naar Johan.Claeys@ping.be
Het onderwerp of subject van de mail moet het woord 'wiskunde' bevatten omdat andere mails weggefilterd worden.