ImiÄ™ Nazwisko: Mateusz GÄ…siorek Termin: CZ/TP 9:15-11:00
Nr albumu: 180514 Data lab.: 03.11.2011
SPRAWOZDANIE 2
METODY NUMERCZYNE
ZAD.1
Lab_2_1.m
%granice calkowania
a = -1;
b = 1;
%ilosc wezlow
n = 10000;
%wspolczynnik h
h=(b-a)/n;
%============================================
% ---------- METODA PROSTOKTÓW -------------
%============================================
%deklaracja zmiennych
p1=0;
p2=0;
p3=0;
i=0;
%sumowanie wynikow
for i=a:h:b %od a do b co h
p1 = p1 + h*(4*i^3 + 3*i^2); %suma wyrazow wszystkich poprzednich od i
p2 = p2 + h*3*sin(i^2); %suma wyrazow wszystkich poprzednich od i
p3 = p3 + h*2*exp(-i); %suma wyrazow wszystkich poprzednich od i
end
%wyswietlenie
p1
p2
p3
%============================================
% ------------ METODA TRAPEZÓW --------------
%============================================
%deklaracja zmiennych
suma1=0;
suma2=0;
suma3=0;
i=0;
%sumowanie wynikow
for i=a+h:h:b-h %od a+h do b-h co h
suma1 = suma1 + 4*i^3 + 3*i^2; %sumowanie wyrazow
suma2 = suma2 + 3*sin(i^2); %sumowanie wyrazow
suma3 = suma3 + 2*exp(-i); %sumowanie wyrazow
end
%wyswietlenie
t1 = h/2 * (4*a^3+3*a^2 + 2*suma1 + 4*b^3 + 3*b^2)
t2 = h/2 * (3*sin(a^2) + 2*suma2 + 3*sin(b^2))
t3 = h/2 * (2*exp(-a) + 2*suma3 + 2*exp(-b))
%============================================
% ------------ METODA SIMPSONA --------------
%============================================
%deklaracja zmiennych
S1=0;
S2=0;
S3=0;
% Sumujemy wyrazy
for i=1:(n/2) % do wyrazu n/2
%tworzymy wyraz parzysty i nieparzysty
h1=(a+(2*i-1)*h); % pierwszy wyraz (do i-1)
h2=(a+2*i*h); % drugi wyraz (do i)
s_1_1 = 4*(h1)^3 + 3*(h1)^2; %sumuje wyrazy (do i-1)
s_1_2 = 4*(h2)^3+3*(h2)^2; %sumuje wyrazy (do i)
S1 = S1 + 4*s_1_1 + 2*s_1_2; %suma obu wyrazów
s_2_1 = 3*sin(h1^2); %sumuje wyrazy (do i-1)
s_2_2 = 3*sin(h2^2); %sumuje wyrazy (do i)
S2 = S2 + 4*s_2_1 + 2*s_2_2; %suma obu wyrazów
s_3_1 = 2*exp(-h1); %sumuje wyrazy (do i-1)
s_3_2 = 2*exp(-h2); %sumuje wyrazy (do i)
S3 = S3 + 4*s_3_1 + 2*s_3_2; %suma obu wyrazów
end
%sumowanie wynikow
S1 = S1 - 2 * s_1_2; %odejmujemy wyraz pierwszy (do i-1)
S2 = S2 - 2 * s_2_2; %odejmujemy wyraz pierwszy (do i-1)
S3 = S3 - 2 * s_3_2; %odejmujemy wyraz pierwszy (do i-1)
% wyświetlenie
S1 = (h/3) * (S1 + (4*(b)^3+3*(b)^2) + (4*(a)^3+3*(a)^2))
S2 = (h/3) * (S2 + (3*sin(b^2)) + (3*sin(a^2)))
S3 = (h/3) * (S3 + (2*exp(-a)) + (2*exp(-b)))
Funkcje które badamy:
a) f(x) = 4x3 + 3x2,
b) f(x) = 3 sin(x2),
c) f(x) = 2 exp(-x),
üð 5 wÄ™złów:
Funkcja M. Prostokątów M. Trapezów M. Simpsona (4) Wynik z Wolfram a
4x3 + 3x2, 3.3600 2.1600 2.0000 2
3 sin(x2), 2.9610 1.9512 1,8669 1,86161
2 exp(-x), 5.9978 4.7633 4,7008 4,7008
üð 10 wÄ™złów:
Funkcja M. Prostokątów M. Trapezów M. Simpsona Wynik z Wolfram a
4x3 + 3x2, 2.6400 2.0400 2.0000 2
3 sin(x2), 2.9610 1.8834 1,8624 1,86161
2 exp(-x), 5.9978 4.7165 4,7008 4,7008
üð 20 wÄ™złów:
Funkcja M. Prostokątów M. Trapezów M. Simpsona Wynik z Wolfram a
4x3 + 3x2, 2.3100 2.0100 2.0000 2
3 sin(x2), 2.1195 1.8670 1,8616 1,86161
2 exp(-x), 5.0133 4.7047 4,7008 4,7008
üð 50 wÄ™złów:
Funkcja M. Prostokątów M. Trapezów M. Simpsona Wynik z Wolfram a
4x3 + 3x2, 2.1216 2.0016 2.0000 2
3 sin(x2), 1.9635 1.8625 1,8616 1,86161
2 exp(-x), 4.8249 4.7014 4,7008 4,7008
üð 100 wÄ™złów:
Funkcja M. Prostokątów M. Trapezów M. Simpsona Wynik z Wolfram a
4x3 + 3x2, 2.0604 2.0004 2.0000 2
3 sin(x2), 1.9123 1.8618 1,8616 1,86161
2 exp(-x), 4.7627 4.7010 4,7008 4,7008
üð 500 wÄ™złów
Funkcja M. Prostokątów M. Trapezów M. Simpsona Wynik z Wolfram a
4x3 + 3x2, 2.0120 2.0000 2.0000 2
3 sin(x2), 1.8717 1.8616 1,8616 1,86161
2 exp(-x), 4.7132 4.7008 4,7008 4,7008
üð 1000 wÄ™złów
Funkcja M. Prostokątów M. Trapezów M. Simpsona Wynik z Wolfram a
4x3 + 3x2, 2.0060 2.0000 2.0000 2
3 sin(x2), 1.8667 1.8616 1,8616 1,86161
2 exp(-x), 4.7070 4.7008 4,7008 4,7008
üð 10000 wÄ™złów
Funkcja M. Prostokątów M. Trapezów M. Simpsona Wynik z Wolfram a
4x3 + 3x2, 2.0006 2.0000 2.0000 2
3 sin(x2), 1.8621 1.8616 1,8616 1,86161
2 exp(-x), 4.7014 4.7008 4,7008 4,7008
o METODA PROSTOKTÓW:
Najprostsza, najszybsza, ale zarazem najmniej dokładna metoda. Polega na aproksymacji funkcji za
pomocą prostokątów. Tworzymy pole pod wykresem które dzielimy na prostokąty i na ich podstawie
wyznaczamy wartość.
Metoda prostokątów daje wyniki zbliżone do poprawnych (których błędy zaokrągleń można by pominąć)
dopiero dla 500 węzłów. Widać również że metoda ta nawet dla 1000 i więcej węzłów nie daje
poprawnego wyniku.
o METODA TRAPEZÓW
Metoda trapezów polega na aproksymacji funkcji za pomocą trapezów. Tworzymy pole pod wykresem
które dzielimy na trapezy i na ich podstawie wyznaczamy wartość.
Metoda trapezów daje wyniki poprawne dopiero dla liczby węzłów z przedziału 100-500. Wyniki zbliżone
do poprawnych uzyskuje w rejonach 10-50 węzłów. Jest to granica przy której błędy wyniku można
pominąć.
o METODA SIMPSONA
Metoda opiera się na przybliżaniu funkcji całkowanej przez aproksymację wielomianem drugiego stopnia.
Metoda Simpsona jest najdokładniejszą metodą. Jej wyniki są zawsze zbliżone do wyniku obliczonego, a
już dla 20 węzłów wyniki z wykorzystaniem tej metody są identyczne jak poprawne.
ZAD.2
Lab_2_2.m
%Do kodu z poprzedniego zadania dodajemy fragment odpowiadajÄ…cy za
%zliacznie błędu (różniczy pomiędzy wynikiem otrzymanym z Wolframa a naszym
%wynikiem algorytmu) Wyniki przeprawdzane są dla 100 próbek z przedziału
%od 10 do 1000 co 10. Dodatkowo umieszczamy fragment odpowiadajÄ…cy za
%stworzenie wykresy odzwierciedlającego problem błędu obu algorytmów dla
%danej funkcji.
%wartości spisane z Wolfram'a
F1=2;
F2=1.86161;
F3=4.7008;
%deklaracja tablic wyników
Trapez1=[];
Trapez2=[];
Trapez3=[];
%deklaracja tablic wyników
Simpson1=[];
Simpson2=[];
Simpson3=[];
%przedziały
a=-1;
b=1;
%liczba próbek
t=10:10:1000;
for n=10:10:1000
h=(b-a)/n;
%============================================
% ------------ METODA TRAPEZÓW --------------
%============================================
%deklaracja zmiennych
T1=0;
T2=0;
T3=0;
wynik1=0;
wynik2=0;
wynik3=0;
for i=1:(n-1) %do n-1
h1=a+i*h; %pierwszy wyraz
% Funkcja1
wynik1 = 4*(h1)^3 + 3*(h1)^2;
% Funkcja2
wynik2 = 3*sin(h1^2);
% Funkcja3
wynik3 = 2*exp(-h1);
T1 = T1 + 2*wynik1;
T2 = T2 + 2*wynik2;
T3 = T3 + 2*wynik3;
end
T1=T1 + (4*(b)^3 + 3*(b)^2) + (4*(a)^3 + 3*(a)^2);
T2=T2 + (3*sin(b^2)) + (3*sin(a^2));
T3=T3 + (2*exp(-a)) + (2*exp(-b));
T1=T1*h/2;
Trapez1=[Trapez1, abs(T1-F1)];
T2=T2*h/2;
Trapez2=[Trapez2, abs(T2-F2)];
T3=T3*h/2;
Trapez3=[Trapez3, abs(T3-F3)];
%============================================
% ------------ METODA SIMPSONA --------------
%============================================
%deklaracja zmiennych
S1=0;
S2=0;
S3=0;
s_1_1=0;
s_1_2=0;
s_2_1=0;
s_2_2=0;
s_3_1=0;
s_3_2=0;
for i=1:(n/2)
%tworzymy wyraz parzysty i nieparzysty
h1=(a+(2*i-1)*h); % pierwszy wyraz (do i-1)
h2=(a+2*i*h); % drugi wyraz (do i)
s_1_1 = 4*(h1)^3 + 3*(h1)^2; %sumuje wyrazy (do i-1)
s_1_2 = 4*(h2)^3+3*(h2)^2; %sumuje wyrazy (do i)
S1 = S1 + 4*s_1_1 + 2*s_1_2; %suma obu wyrazów
s_2_1 = 3*sin(h1^2); %sumuje wyrazy (do i-1)
s_2_2 = 3*sin(h2^2); %sumuje wyrazy (do i)
S2 = S2 + 4*s_2_1 + 2*s_2_2; %suma obu wyrazów
s_3_1 = 2*exp(-h1); %sumuje wyrazy (do i-1)
s_3_2 = 2*exp(-h2); %sumuje wyrazy (do i)
S3 = S3 + 4*s_3_1 + 2*s_3_2; %suma obu wyrazów
end
%sumowanie wynikow
S1 = S1 - 2 * s_1_2;
S2 = S2 - 2 * s_2_2;
S3 = S3 - 2 * s_3_2;
% wyświetlenie
S1 = (h/3) * (S1 + (4*(b)^3+3*(b)^2) + (4*(a)^3+3*(a)^2))
S2 = (h/3) * (S2 + (3*sin(b^2)) + (3*sin(a^2)))
S3 = (h/3) * (S3 + (2*exp(-a)) + (2*exp(-b)))
Simpson1=[Simpson1, abs(S1-F1)];
Simpson2=[Simpson2, abs(S2-F2)];
Simpson3=[Simpson3, abs(S3-F3)];
end
figure;
hold on;
grid on;
title('Funkcja 1');
plot(t,Simpson1,'r');
plot(t,Trapez1,'b');
figure;
hold on;
grid on;
title('Funkcja 2');
plot(t,Simpson2,'r');
plot(t,Trapez2,'b');
figure;
hold on;
grid on;
title('Funkcja 3');
plot(t,Simpson3,'r');
plot(t,Trapez3,'b');
f(x) = 4x3 + 3x2,
wykres bez skalowania
przybliżenie
żð Metoda Simpsona daje bÅ‚Ä…d wielkoÅ›ci równy 0 na caÅ‚ym zakresie sprawdzania
żð Metoda trapezowa daje bÅ‚Ä…d wielkoÅ›ci 0,4 i z iloÅ›ciÄ… wÄ™złów maleje do 0
f(x) = 3 sin(x2),
wykres bez skalowania
przybliżenie
żð Metoda Simpsona daje bÅ‚Ä…d wielkoÅ›ci równy 0,001 na poczÄ…tku swojego dziaÅ‚ania i z czasem maleje on
do 0
żð Metoda trapezowa daje bÅ‚Ä…d wielkoÅ›ci 0,02 i z iloÅ›ciÄ… wÄ™złów maleje do 0 przy czym jest to szybszy
spadek niż w przykładzie powyższym
f(x) = 2 exp(-x),
wykres bez skalowania
przybliżenie
żð Metoda Simpsona daje bÅ‚Ä…d wielkoÅ›ci prawie 0 na caÅ‚ym zakresie sprawdzania
żð Metoda trapezowa daje bÅ‚Ä…d wielkoÅ›ci 0,016 i z iloÅ›ciÄ… wÄ™złów maleje do 0
Dodatkowo:
Błędny wykres który otrzymywałem w trakcie laboratorium:
Wynikał z :
vð Zakresu próbkowania do 10000 co dawaÅ‚o niepoprawne rozmiary macierzy
vð Braku wartoÅ›ci bezwzglÄ™dnej przy sprawdzaniu bÅ‚Ä™du
vð Oraz zamieszaniem przy wyliczaniu poszczególnych elementów w osobnych funkcjach (zÅ‚e elem. byÅ‚y
zakomentowane a złe odkomentowane)
ZAD.3
Lab_2_3m
%============================================
% ----------- METODA MONTE CARLO ------------
%============================================
%granice calkowania
a = -1;
b = 1;
%ilosc wezlow
n = [100 200 500 1000 2000 5000 10000 20000
50000];
%dodatkowa macierz 0 aby wymiar się zgadzał
sum = [0 0 0 0 0 0 0 0 0];
%metoda Monte Carlo
for j=1:9
for i=1:n(j)
xlos = a+rand*(b-a); %losujemy liczbe z
przedzialu (a,b)
sum(j) = sum(j) + 4*xlos^3+3*xlos^2;
end
sum(j) = sum(j)*(b-a)/n(j) %wyświetlenie
wyników sumowań
end
figure;
hold on;
grid on;
plot(n,sum);
Wyniki otrzymane przy skorzystaniu z powyższego kodu:
1.6899 2.2592 2.0054 2.0200 2.0011 2.0314 1.9640 2.0068 1.9904
Przykładowe wykresy obliczania całki metodą Monte Carlo:
Z powyższych wykresów oraz wyników, widać że szybkość stabilizacji na wartości 2 jest zależny od wartości
losowanych.
Pierwszy wykres przedstawia stabilizację dopiero dla liczby węzłów 50000
Drugi wykres natomiast stabilizuje się przy wartości 20000
Metodę tą stosuje się do obliczania zbyt złożonych całek/funkcji aby przewidzieć w szybki sposób jaką wartość
dana funkcja zwróci. Jest to metoda obarczona dużym błędem i która działa zależnie od zmiennej która jest
losowa.
Wyszukiwarka
Podobne podstrony:
sprawozdanie 1 Mateusz SturgulewskiEDF sprawozdanie Mateusz MacięgaMateusz Gasiorek0514 sprawkoMateusz Gąsiorek 180514Mateusz Macięga reguły asocjacyjne sprawozdaniesprawozdanie felixa2Sprawozdanie Konduktometriazmiany w sprawozdaniach finErrata do sprawozdania2009 03 BP KGP Niebieska karta sprawozdanie za 2008rid&657Sprawozdanie nr 3 inzSprawozdanie FundacjaBioEdu2007M 8 Mateusz WittstockSprawozdanie Ćw 2więcej podobnych podstron