Sprawko moje piąte, Informatyka WEEIA 2010-2015, Semestr IV, Metody numeryczne, Lab 5


data 28.05.2012 godzina 14:15

rok akademicki: 2011/2012 semestr: IV

grupa: 4D6 (D) - X2

SPRAWOZDANIE Z LABORATORIUM

METOD NUMERYCZNYCH

ĆWICZENIE NR 6

TEMAT: Iteracyjnie rozwiązywanie równań i układów równań nieliniowych

Krzysztof Filipek - 164333

Kamil Turkowski - 164478

  1. Listingi M-Funkcji:

  1. Pliki liczące wartość funkcji:

fun1.m:

function [wyj] = fun1(we)

wyj = (we-3)*(we^2+3*we+4);

fun2.m:

function [wyj] = fun2(we)

wyj = ((we-2)^2)*(we^2+3*we+4);

fun3.m:

function [wyj] = fun3(we)

wyj = ((we+1)^3)*(2*we^2-we+2);

  1. M-pliki z wartościami pochodnych:

fun1poch.m:

function [wyj] = fun1poch(we)

wyj = 3*we^2-5;

fun2poch.m:

function [wyj] = fun2poch(we)

wyj = 4*we^3-3*we^2-8*we-4;

fun3poch.m:

function [wyj] = fun3poch(we)

wyj = 10*we^4+20*we^3+15*we^2+10*we+5;

  1. Metoda bisekcji:

Uwaga: W kolejnych m-plikach ciąg znaków NR odpowiada liczbie określającej plik z funkcją używany do wyliczenia wartości funkcji (1, 2 lub 3).

function [x] = bisekcjaNR(przedzial,eps)

x = zeros(1);

temp = 0;

if funNR(przedzial(1))*funNR(przedzial(2))<0

while temp<100

temp=temp+1;

x = (przedzial(1)+przedzial(2))/2;

if abs(funNR(x)) < eps

break;

end

if funNR(x)*funNR(przedzial(2))<0

przedzial(1)=x;

else if funNR(przedzial(1))*funNR(x)<0

przedzial(2)=x;

end

end

end

end

x(2) = temp;

  1. Metoda siecznych:

function [x] = siecznychNR(przedzial,eps)

x = zeros(2);

temp = 0;

%x = przedzial(2)

if funNR(przedzial(1))*funNR(przedzial(2))<0

while abs(przedzial(1)-przedzial(2))>eps

temp=temp+1;

x = przedzial(2)-funNR(przedzial(2))*(przedzial(2)-przedzial(1))/((funNR(przedzial(2))-funNR(przedzial(1))));

przedzial(1)=przedzial(2);

przedzial(2)=x;

end

end

x(2) = temp;

  1. Metoda Newtona:

function [x_akt] = newtonNR(x_pop,eps)

x_akt = zeros(1);

temp = 0;

if x_pop~=0

while temp<100 && abs(funNR(x_pop)) > eps

temp=temp+1;

x_pop = x_akt;

h = funNR(x_pop)/funNRpoch(x_pop);

x_akt = x_pop - h;

end

end

x_akt(2) = temp;

Uwagi dodatkowe:
M-pliki zwracają jako wynik macierz dwuelementową na którą składa się obliczone miejsce zerowe oraz wykonana ilość iteracji.

  1. Tabelaryczne zestawienie otrzymanych wyników:

Przedział dla: 0x01 graphic

Punkt startowy dla metody Newtona: x­pocz=7.37

Funkcja 1

x=3

Metoda bisekcji

Metoda siecznych

Metoda Newtona

Przybliżenie

Ilość iteracji

Przybliżenie

Ilość iteracji

Przybliżenie

Ilość iteracji

0.001

2.999958801269531

16

2.999993127636541

11

3.000000000000031

19

0.00001

3.000000357627869

22

3.000000002565115

12

3.000000000000031

19

0.0000001

3.000000002048910

29

2.999999999999993

13

3.000000000000000

20

0.000000001

2.999999999995635

36

3.000000000000000

14

3.000000000000000

21

Funkcja 2

x=2 (podwójny)

Metoda bisekcji

Metoda siecznych

Metoda Newtona

Przybliżenie

Ilość iteracji

Przybliżenie

Ilość iteracji

Przybliżenie

Ilość iteracji

0.001

2.004059772560051

11

0.00001

2.000254218576056

15

0.0000001

2.000031780856213

18

0.000000001

2.000003972662262

21

Funkcja 3

x=-1 (potrójny)

Metoda bisekcji

Metoda siecznych

Metoda Newtona

Przybliżenie

Ilość iteracji

Przybliżenie

Ilość iteracji

Przybliżenie

Ilość iteracji

0.001

-1.017187500000000

6

-1.002990744696247

26

-0.973910617708497

8

0.00001

-1.000976562500000

9

-1.000025137656639

43

-0.992341122310248

11

0.0000001

-1.000976562500000

9

-1.000000279483011

59

-0.998491787897286

15

0.000000001

-0.999963378906250

13

-1.000000002345618

76

-0.999702261871961

19

­

  1. Wykresy zbieżności poszczególnych metod dla dokładności: 0x01 graphic

    1. Metoda bisekcji:

0x01 graphic

    1. Metoda siecznych:

0x01 graphic

    1. Metoda Newtona:

0x01 graphic

  1. Wnioski:

Wykonując ćwiczenie porównaliśmy przydatności metody bisekcji, siecznych oraz Newtona do wyznaczania zer funkcji. Metoda Newtona okazała się najbardziej wartościowa ze względu na małą ilość iteracji w stosunku do pozostałych. Ponadto metody bisekcji i siecznych muszą posiadać wartości o przeciwnych znakach na końcach przedziałów co skutkuje brakiem możliwości użycia ich dla funkcji z pierwiastkami parzystych stopni. Natomiast metodę Newtona możemy stosować wtedy i tylko wtedy gdy 0x01 graphic
.



Wyszukiwarka