Sprawozdanie metody numeryczne nieliniowe

POLITECHNIKA LUBELSKA

LABORATORIUM

„Metod numerycznych”

Widz Marcin

Wielgórski Mariusz

Semestr

III

Temat ćwiczenia:

Rozwiązywanie równań nieliniowych

Data wykonania

19.12.2012

Temat ćwiczenia:

Rozwiązywanie równań nieliniowych metodami:

- Bisekcji

- RegulaFalsi

- Stycznych

Podana funkcja:


f(x) = 8x − 4x2 − 6x3 + x4 + x5

Wykres funkcji:

Metoda Bisekcji

clc;

clear;

xdel(winsid());

disp("MetodaBisekcji");

functionf=nieliniowa(x);// Wprowadzenie funkcji.

f=8*x-4*x^2-6*x^3+x^4+x^5;

endfunction;

x00=linspace(-10,10,1000);// Wykres funkci.

subplot(121);

plot2d(x00,nieliniowa(x00),axesflag=5,rect=[-4,-10,4,10]);

S=input("Podaj punkt startowy: ");//Wprowadzenie punktów.

K=input("Podaj punkt końcowy: ");

delt=input("Podaj dokladnoscobliczen ");//Wprowadzenie dokładności.

t=1;

x1=nieliniowa(S);

x2=nieliniowa(K);

W=x1*x2;

P=S+(K-S)/2;

ex=P-S;

ifW<0then;// Paczatekpetli if.

x(t)=(K-S)/2+S;

whileabs(x1+x2)>delt&abs(ex)>delt;// Paczatekpetli while.

t=t+1;

P=(K-S)/2+S;

x2=nieliniowa(P);

W=x1*x2;

ifW<0then;// Paczatekpetli if.

K=P;

x(t)=(K-S)/2+S;

ex=P-S;

else;

x2=nieliniowa(S);

x1=nieliniowa(P);

S=P;

x(t)=(K-S)/2+S;

ex=K-P;

end;// Koniecpetli if.

end;// Koniecpetli while.

disp("Liczba iteracji:");

disp(t);

disp("Wartosc miejsca zerowego :");

disp(x(t));

subplot(122);

x01=linspace(1,t,t);

plot2d(x01,x');

else;

disp("Błędny przedział");

end;// Koniec petliif.

RegulaFalsi:

clc;

clear;

xdel(winsid());

disp("Metoda: RegulaFalsi");

functionf=nieliniowa(x);// Wprowadzenie funkcji.

f=8*x-4*x^2-6*x^3+x^4+x^5;

endfunction;

x00=linspace(-10,10,1000);// Wykres funkci.

subplot(121);

plot2d(x00,nieliniowa(x00),axesflag=5,rect=[-4,-10,4,10]);

S=input("Podaj punkt startowy: ");//Wprowadzenie punktów.

K=input("Podaj punkt końcowy: ");

ex=input("Podaj dokladnoscobliczen ");//Wprowadzenie dokładności.

t=1;

W=nieliniowa(K)*nieliniowa(S);// Sprawdzenie warunku.

ifW<0then;// Poczatekpetliif.

x1=S;

x2=K;

x(t)=(x1*nieliniowa(K)-K*nieliniowa(S))/(nieliniowa(K)-nieliniowa(S));

f=abs(nieliniowa(x(t)));//Sprawdzenie warunku dokładności.

whilef>ex;// Poczatekpetli while.

ifnieliniowa(x(t))*nieliniowa(S)<0then;//Poczatekpetliif.

x1(t+1)=x1(t);

x2(t+1)=x(t);

else;

x1(t+1)=x(t);

x2(t+1)=x2(t);

end;// Koniecpetli if.

x(t+1)=(x1(t)*nieliniowa(x2(t))-x2(t)*nieliniowa(x1(t)))/(nieliniowa(x2(t))-nieliniowa(x1(t)));

f(t+1)=abs(nieliniowa(x(t+1)));

t=t+1;

end;//Koniecpetli while.

disp("Liczba iteracji:");

disp(t);

disp("Wartosc miejsca zerowego :");

disp(x(t));

subplot(122);

x01=linspace(1,t,t);

plot2d(x01,x');

else;

disp("Błędny przedział");

end;// Koniec petliif.

Stycznych:

clc;

clear;

xdel(winsid());

disp("MetodaStycznych");

functionf=funkcja(x);

f=8*x-4*x^2-6*x^3+x^4+x^5;

endfunction;

functionp=pochodna(x);

p=8-8*x-18*x^2+4*x^3+5*x^4;

endfunction;

x00=linspace(-10,10,1000);// Wykresfunkci.

subplot(121);

plot2d(x00,funkcja(x00),axesflag=5,rect=[-4,-10,4,10]);

S=input("Podaj punkt startowy: ");//Wprowadzenie punktów.

K=input("Podaj punkt końcowy: ");

ex=input("Podaj dokladnoscobliczen ");//Wprowadzenie dokładności.

t=1;

W=funkcja(K)*funkcja(S);

ifW<0then;// Paczatekpetli if.

x1=S;

x2=K;

x(t)=x2-(funkcja(x2)/pochodna(x2));

sx=abs(funkcja(x(t)));

whilesx>ex;// Paczatekpetli while.

iffunkcja(x(t))*funkcja(K)<0then;// Poczatekpetliif.

x1(t+1)=x1(t);

x2(t+1)=x(t);

else;

x1(t+1)=x(t);

x2(t+1)=x2(t);

end;// Koniecpetli if.

x(t+1)=x(t)-(funkcja(x(t))/pochodna(x(t)));

sx(t+1)=abs(funkcja(x(t+1)));

t=t+1;

end;// Koniecpetli while.

disp("Liczba iteracji:");

disp(t);

disp("Wartosc miejsca zerowego :");

disp(x(t));

subplot(122);

x01=linspace(1,t,t);

plot2d(x01,x');

else;

disp("Błędny przedział");

end;// Koniec petliif.

Wnioski:

Przedział: Bisekcji: RegulaFalsi: Stycznych:
Wartość: Ilość iteracji: Wartość:
<-0,1;0,1> 0,0996094 9 0,0000084
<0,9;1,1> 1,0996094 9 0,9999803
<1,9;2,1> 2,0996094 9 1,9999805

Porównując otrzymane wyniki można stwierdzić, że metoda Bisekcji jest najmniej dokładna i wymaga dużej liczby iteracji.

Najszybciej zbieżna jest metoda Stycznych, jednak jej wadą jest

to, że może nie osiągnąć zbieżności jeśli punkt początkowy jest w znacznym stopniu oddalony od miejsca zerowego.


Wyszukiwarka

Podobne podstrony:
Sprawozdanie metody numeryczne nieliniowe
Sprawozdanie Metody numeryczne
Sprawozdanie metody numeryczne XCOS
apro i intr, Studia, Sprawozdania, Metody numeryczne
MATLAB - Wprowadzenie do Matlaba, Studia, Sprawozdania, Metody numeryczne
1. Matlab. Zapoznanie z programem, Elektrotechnika - notatki, sprawozdania, Metody numeryczne w tech
2. Matlab. Algebra liniowa, Elektrotechnika - notatki, sprawozdania, Metody numeryczne w technice
Sprawozdanie metody numeryczne liniowe
Sprawozdanie Metody Numeryczne Metoda oczkowa
Sprawozdanie Metody Numeryczne Metoda oczkowa
rownania nieliniowe, Automatyka i robotyka air pwr, VI SEMESTR, Notatki.. z ASE, metody numeryczne,
Sprawozdanie nr 2(1), Polibuda, Semestr III, Metody Numeryczne
sprawozdanie nr 3, Politechnika, Lab. Metody numeryczne
Metody numeryczne, sprawozdanie num new332 pluskwik, Piotr Próchniak gr
lichtenstein,metody numeryczne L,Reprezentacje liczb, algorytm Hornera,?danie błędów numerycznych SP
lab metody Numeryczne sprawozdanie 8258
Sprawozdanie równanie różniczkowe, Automatyka i robotyka air pwr, VI SEMESTR, Metody numeryczne
MN 02 Row Nielin, metody numeryczne

więcej podobnych podstron