NIELINIOWE Met Num

Hubert Ciszewski
Kamil Cyrkler
Laboratorium Metod Numerycznych 11.02.2012
ED.3.1 Ćwiczenie numer: 5


METODA BIJEKCJI

Skrypt Scilab’a :

xdel;

clc; //wyczyszczenie konsoli

clear; // wyczyszczenie pamięci

function f=nieliniowa(x);

f=-0.26*x^3-25*cos(x)-60;

endfunction

S=input("Podaj punkt startowy: S=");

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

delt=input("Podaj oczekiwana dokładność obliczeń: delt=");

t2=linspace(S,K);

subplot(121);

plot2d(t2,nieliniowa(t2));

t=1;

x1=nieliniowa(S);

x2=nieliniowa(K);

D=x1*x2;

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

ex=P-S;

if D<0 then

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

while abs(x1+x2)>delt & abs(ex)>delt

t=t+1;

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

x2=nieliniowa(P);

D=x1*x2;

if D<0 then

K=P;

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

ex=P-S;

else

x2=nieliniowa(K);

x1=nieliniowa(P);

S=P;

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

ex=K-P;

end;

end;

else;

disp("Źle dobrany przedział");

end

disp(Z(t));

disp(t);

subplot(122);

t2=linspace(1,t,t);

plot2d(t2,Z');

Wykresy otrzymane na przedziale <-10,10> z dokładnością 0,001 :

REGUŁA FALSI

Skrypt scilab’a:

xdel;

clc; //wyczyszczenie konsoli

clear; // wyczyszczenie pamięci

function f=nieliniowa(x) // Okreslamy funkcje

f=-0.26*x^3-25*cos(x)-60;

endfunction

disp("Regula Falsi") // Wczytujemy przedział

a=input("Punkt startowy: a=");

b=input("Punkt koncowy: b=");

t2=linspace(a,b,500);

subplot(121);

plot2d(t2,nieliniowa(t2)); // Wykres funkcji

D=(nieliniowa(a)*nieliniowa(b));

disp("Szukamy f(x)=0")

if D<0 then // Sprawdzenie zalozenia metody, obliczamy wartosc pierwszego argumentu

x0=(a*nieliniowa(b)-b*nieliniowa(a))/(nieliniowa(a)-nieliniowa(b))

while nieliniowa(x0)==0

disp("x0 jest szukanym pierwiastkiem funkcji")

end

E=nieliniowa(a)*nieliniowa(x0);

if E<0 then // Sprawdzenie zalozenia metody, obliczamy

x1=((x0*nieliniowa(a)-a*nieliniowa(x0))/(nieliniowa(a)-nieliniowa(x0)))

else

x1=((x0*nieliniowa(b)-b*nieliniowa(x0))/(nieliniowa(b)-nieliniowa(x0)))

end

end

if nieliniowa(x1)==0 then

disp("x1 jest szukanym pierwiastkiem funkcji")

else // obliczamy wartosc drugiego argumentu

disp(nieliniowa(x0),'f(x0)=',nieliniowa(x1),'f(x1)=')

disp("Miejsce zerowe znajduje sie w przedziale od<x1,x0>. Obliczamy ten przedzial‚")

G=nieliniowa(x0)*nieliniowa(x1);

if G<0 then // Sprawdzamy zalozenia metody

x2=((x1*nieliniowa(x0)-x0*nieliniowa(x1))/(nieliniowa(x0)-nieliniowa(x1)))

else

if G<>0 then

disp("Funkcja nie posiaa miejsca zerowego lub metoda nie jest zbiezna dla tej funkcji")

abort

end

end

disp (nieliniowa(x2),'f(x2)=')

H=nieliniowa(x1)*nieliniowa(x2);

if H<0 then // Sprawdzamy zalozenia metody

x3=((x1*nieliniowa(x2)-x2*nieliniowa(x1))/(nieliniowa(x1)-nieliniowa(x2)))

else

x3=((x2*nieliniowa(x0)-x0*nieliniowa(x2))/(nieliniowa(x0)-nieliniowa(x2)))

end

if nieliniowa(x3)==0 then

disp("x4 jest pierwiastkiem funkcji")

else

disp(nieliniowa(x3),'f(x3)=')

end

J=nieliniowa(x1)*nieliniowa(x3);

if J<0 then // Sprawdzamy zalozenia metody

x4=((x3*nieliniowa(x0)-x0*nieliniowa(x3))/(nieliniowa(x0)-nieliniowa(x3))) // Obliczamy 4 argument

end

if nielinowa(x4)==0 then

disp("x5 jest pierwiastkiem funkcji")

else

disp(nieliniowa(x4),'f(x4)=')

end

plot2d(t2,nieliniowa(t2));

end

Otrzymane wyniki:

Reguła Falsi

Punkt startowy: a=-->-10

Punkt końcowy: b=-->10

Szukamy f(x)=0

x0 =

1.5008928

x1 =

- 1.0387439

f(x1)=

- 72.391171

f(x0)=

- 62.625234

Miejsce zerowe znajduje sie w przedziale od<x1,x0>. Obliczamy ten przedział‚

Funkcja nie posiada miejsca zerowego lub metoda nie jest zbieżna dla tej funkcji

Uzyskany wykres


Wyszukiwarka

Podobne podstrony:
Met num cz1, METODY NUMERYCZNE W ELEKTROTECHNICE
MET-NUM Lab1 mathcad
met num rown rozniczkowe wyklad
met num wejs2
met num dla inform (2)
Macierze - teoria, Politechnika Radomska, 1 stopień, przed 5 semestrem, metody numeryczne, Wysyłka M
Zadanie 2 Met Num TM 2010, Politechnika Radomska, 1 stopień, przed 5 semestrem, metody numeryczne,
Met Num Dwojkowy Dokladność
Met num Wykad 1 interpol id 293 Nieznany
met num wyklad 2a
met num wejs
MET NUM ZADANIE 3 1Kasprzak
Zad 1 Met Num Grupy Tomaszow Zima 10
met num w anal mat
Met porz nieliniowego, Wielowymiarowa analiza statystyczna, Panek, wap
ST14 20010 Met ppt
met PCD

więcej podobnych podstron