zad3.docx

(30 KB) Pobierz

Treść zadania

5) Miejsca zerowe

Dana jest funkcja f(x)=x*exp(-x2), dla której zachodzi f(P)=0, (-0.6,0.6). Wyznacz ręcznie pierwsze trzy przybliżenia miejsca zerowego P1,P2,P3 metodą Newtona startując z punktów: P0=-0.6, P0=-0.5,P0=-0.3. Następnie wyznacz miejsca zerowe funkcji z dokładnością δ=0.001 używając odpowiedniego skryptu Octava (Matlaba) dla tych punktów. Skomentuj wynik i dokładność otrzymanych miejsc zerowych. Używając komendy plot zrób wykres funkcji f(x) na zadanym przedziale oraz zaznacz kolejne P1,P2,P3 dla  punktów startowych. Wydruk wykresu (wraz z kodem) dołącz do sprawozdania.

 

Obliczenia

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Kod program

function y=f(x)

y=x.*exp(-x.^2);

function y=df(x)

y=(1-2*x^2).*exp(-x.^2);

 

x=linspace(-0.6,0.6);

p0=-0.6; delta=0.001; tol=0.0001; max1=30;

[k, p, err, P, GP] = newton('f', 'df', p0, delta, tol, max1)

 

k =

 

     9

 

 

p =

 

    3.2635

 

 

err =

 

    0.1706

 

 

P =

 

   -0.6000

    1.5429

    1.9531

    2.2477

    2.4946

    2.7125

    2.9103

    3.0929

    3.2635

 

 

GP =

 

   -0.4186

    0.1427

    0.0431

    0.0144

    0.0049

    0.0017

    0.0006

    0.0002

    0.0001

p0=-0.5; delta=0.001; tol=0.0001; max1=30;

[k, p, err, P, GP] = newton('f', 'df', p0, delta, tol, max1)

 

k =

 

    30

 

 

p =

 

    0.5000

 

 

err =

 

     1

 

 

P =

 

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

   -0.5000

    0.5000

 

 

GP =

 

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

   -0.3894

    0.3894

p0=-0.3; delta=0.001; tol=0.0001; max1=30;

[k, p, err, P, GP] = newton('f', 'df', p0, delta, tol, max1)

 

k =

 

     4

 

 

p =

 

  3.8255e-010

 

 

err =

 

  5.7617e-004

 

 

P =

 

   -0.3000

    0.0659

   -0.0006

    0.0000

 

 

GP =

 

   -0.2742

    0.0656

   -0.0006

    0.0000

x=linspace(-0.6,0.6);

y=x.*exp(-x.^2);

plot(x,y);

legend('funkcja');

grid on

 

Wnioski

Badana funkcja posiada tylko jedno miejsce zerowe na zadanym przedziale.. W pierwszym przypadku miejsce zerowe jest poza przedziałem punktu. Zaczynając z punktu startowego P=-0.3 potrzebne cztery iteracje. Startując z punktu P=-0,5 nie otrzymamy miejsca zerowego ponieważ przybliżenie skacze od wartości 0,5 do -0,5 naprzemiennie.

Zgłoś jeśli naruszono regulamin