metody numeryczne cw 1

background image

data 21.03.2013

SPRAWOZDANIE Z LABORATORIUM

METOD NUMERYCZNYCH

Ć

wiczenie nr 1

Temat: Błąd w obliczeniach numerycznych

Wydział: EEiA

rok akademicki: 2012/2013 semestr: IV

Grupa: 4C5

Grupa laboratoryjna: 3

Dzień: czwartek godz. 14

15

-16

00

Łukasz Kubiak 171367

Leśnik Przemysław 171374

background image

Ćwiczenie 1. Oblicz wartość wielomianu korzystając ze wzoru (x-1)

10

, oraz schematu Hornera i wzoru

=

… +

+

w przedziale [0,95 1,05]dla 100 punktów.

m-funkcja w matlabie


function

[y1,y2,y3]=wielomian2(c,x)

c=[1,-10,45,-120,210,-252,210,-120,45,-10,1];

x=linspace(0.95,1.05,100);

for

i=1:length(x)

y1(i)=(x(i)-1)^10;


y2(i)=c(1)*x(i)^10+c(2)*x(i)^9+c(3)*x(i)^8+c(4)*x(i)^7+c(5)*x(i)^6+c(6)*x(i)^5+c(7)*x(i
)^4+c(8)*x(i)^3+c(9)*x(i)^2+c(10)*x(i)+c(11);


y3(i)=(((((((((c(1)*x(i)+c(2))*x(i)+c(3))*x(i)+c(4))*x(i)+c(5))*x(i)+c(6))*x(i)+c(7))*x
(i)+c(8))*x(i)+c(9))*x(i)+c(10))*x(i)+c(11);

end

%c=[1,-10,45,-120,210,-252,210,-120,45,-10,1];

%x=linspace(0.95,1.05,100);

%[y1,y2,y3]=wielomian2(c,x)

figure(1)

plot(x,y1,

'r'

)

hold

on

grid

on

plot(x,y2,

'g'

)

plot(x,y3,

'y'

);

y4=polyval(c,x);

plot(x,y4,

'b'

);

legend(

'(x-1)^{10}'

,

'c_{10}*x^{10}+..+c_{11}'

,

'Schemat Hornera'

,

'polyval'

)

title(

'Wykres przebiegu wielomianu w zalezno

ś

ci od zastosowanej metody'

)

title(

'Przebieg wielomianu w zalezno

ś

ci od zastosowanej metody'

)

ylabel(

'y'

)

xlabel(

'x'

)

Wykres

background image

Ćwiczenie 2. Plik z obliczonymi pochodnymi funkcji tg(x

2

+1), obliczający różnice progresywną,

centralną, ich błędy względne ,układ współrzędnych przedstawiający wykresy poniższych wielkości
w skali logarytmicznej.

function

[h]=roznica(h)

x=0.5;

h0=0.1;

%obliczenie wartosci pochodnych

p1=2*x*(sec(1+x^2))^2;

p2=2*((sec((x^2)+1))^2+4*(x^2)*tan((x^2)+1)*(sec((x^2)+1))^2);

p3=8*(x*tan((x^2)+1)*(sec((x^2)+1))^2+2*x*tan((x^2)+1)*sec((x^2)+1)+2*(x^3)*(sec((x^2)+
1))^2+2*(x^3)*(tan((x^2)+1))^2*sec((x^2)+1));

for

i=1:40;

%obliczanie róznicy centralnej

h(i)=h0*2^-(i-1);

%krok rozniczkowania

rc=(tan((x^2)+1+h(i))-tan((x^2)+1-h(i)))/(2*h(i));

%roznica centralna

bw=(rc-p1)/p1;

%blad wzgledny

m(1,i)=abs(bw);

%blad zapisany do wektora

bgc=((((h(i))^2)/6)*p3)/p1;

%blad bezwzgledny

m(3,i)=abs(bgc);

%blad zapisany do wektora

end

for

i=1:40;

%obliczanie róznicy progresywnej

h(i)=h0*2^-(i-1);

%krok rozniczkowania

rp=(tan((x^2)+1+h(i))-tan((x^2)+1))/ h(i);

%roznica progresywna

bw2=(rp-p1)/p1;

%blad wzgledny

m(2,i)=abs(bw2);

%blad zapisany do wektora

bgp=((h(i)/2)*p2)/p1;

%blad bezwzgledny

m(4,i)=abs(bgp);

%blad zapisany do wektora

end

%wykresy bledow

loglog(h,m(1,: ),

'r-'

,h,m(2,: ),

'g-'

,h,m(3,: ),

'b.'

,h,m(4,: ),

'y.'

)

title(

'Wykres bledu wzglednego'

);

xlabel(

'log(h)'

);

ylabel(

'log(blad wzgledny)'

);

legend(

'roznica centralna'

,

'roznica progresywna'

,

'blad wzgledny odciecia r. progr.'

,

'blad wzgledny odciecia r.centr.'

)

background image

Krok optymalny dla różnicy centralnej (czerwony wykres): 10

-6

Krok optymalny dla różnicy progresywnej (zielony wykres): 10

-8

Wartość dokładna pochodnej: 10.057509621834829

background image


Wnioski


Funkcja z ćwiczenia 2 wylicza błędy całkowite różnicy progresywnej i centralnej oraz
szkicuje odpowiednie wykresy. Naszym zadaniem było zbadanie rozkładu błędu pochodnej
funkcji tag(x

2

+1) dla różnych wartości h (wyliczonych ze wzoru: H(i) = h0*2^(-(i-1. Na

podstawie wykresu można stwierdzić, że różnica centralna daje nam lepsze przybliżenie
pochodnej biorąc większy krok niż dla różnicy progresywnej.
Na podstawie wykresów błędu względnego najbardziej optymalny krok będzie oscylował dla
różnicy progresywnej w okolicach 10^(-8)

oraz dla różnicy centralnej w okolicach 10^(-6).

Ć

wiczenie 1 pozwala na porównanie skuteczności sposobów obliczania wartości

wielomianu. Metoda pierwsza korzysta ze schematu Hornera - metody minimalizującej
liczbę mnożeń niezbędnych do otrzymania końcowego wyniku, metoda druga korzysta z
bezpośredniego podstawienia wartości x do wzoru wielomianu.

.

Z pierwszego wykresu możemy zaobserwować jak złożoność obliczeń ma wpływ na

nieprzewidywalne rozłożenie błędów, które pokazują nam oscylacje. Najmniej złożoną
funkcją jest obliczenie na podstawie wzoru wielomianu P(x)=(x-1)^10 co pokazuje nam
czerwona linia, nie występują błędy. Obserwując wykres, dla schematu Hornera wyniki są
mniej porozrzucane, niż wyniki przy zastosowaniu wzoru standardowego. W przypadku gdy
użyjemy funkcji polyval, wyniki wykresu dla schematu Hornera i dla użytej funkcji nam się
pokrywają. Na podstawie wykresu można stwierdzić, że wbudowana funkcja Matlab’a
oparta jest na schemacie Hornera.


Wyszukiwarka

Podobne podstrony:
metody numeryczne cw 1
metody numeryczne cw
Cw 9 DUO, Politechnika Lubelska, Studia, Studia, sem III, pen, METODY NUMERYCZNE, Scilab
Metody numeryczne w6
metoda siecznych, Elektrotechnika, SEM3, Metody numeryczne, egzamin metody numeryczn
MN energetyka zadania od wykładowcy 09-05-14, STARE, Metody Numeryczne, Część wykładowa Sem IV
METODA BAIRSTOWA, Politechnika, Lab. Metody numeryczne
testMNłatwy0708, WI ZUT studia, Metody numeryczne, Metody Numeryczne - Ćwiczenia
Metody numeryczne Metoda węzłowa
Metody numeryczne, wstep
metody numeryczne w4
Metody numeryczne PDF, MN macierze 01 1
Metody numeryczne w11
metody numeryczne i w9
Metody numeryczne PDF, MN raphson 11
metody numeryczne w9

więcej podobnych podstron