metody numeryczne cw 1

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. 1415-1600

Łukasz Kubiak 171367

Leśnik Przemysław 171374

Ćwiczenie 1. Oblicz wartość wielomianu korzystając ze wzoru (x-1)10, oraz schematu Hornera i wzoru P10(x) = c10x10…+c1x + c0 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

Ćwiczenie 2. Plik z obliczonymi pochodnymi funkcji tg(x2+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.')

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

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(x2+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