całkowanie numeryczne

background image

Metody numeryczne

Laboratorium:

Całkowanie Numeryczne

Konrad Cinkusz, nr indeksu: 176180
Michał Grandys, nr indeksu: 171932

background image

1. Wstęp teoretyczny:

Całkowanie numeryczne jest to metoda numeryczna polegająca ma przybliżonym obliczaniu całek
oznaczonych, problemy zadane w sprawozdaniu rozwiązaliśmy pisząc m-pliki funkcyjne. Wszystkie

potrzebne informacje dotyczące funkcji i obliczania błędów zawarte są w komentarzach listingów.
Poniżej krótki opis metod i wyznaczania błędów

obliczania przybliżonej wartości całki metodą prostokątów;

obliczania przybliżonej wartości całki metodą trapezów;

obliczanie przybliżonej wartości całki metodą simpsona;

wyznaczanie błędów dla powyższych metod;

2. Listingi funkcji:

Napisaliśmy następujące m-pliki funkcyjne

function

[X] = simpson(n,a,b,fun)

%n- podprzedzialy a,b

zakresy, fun- funkcja

szerokosc = (b-a)/n;
x=[a:szerokosc:b];

X=((b-a)/(3*n))*(fun(x(1))+fun(x(length(x)))
+4*sum(fun(x(2:2:length(x)-1)))

+2*sum(fun(x(3:2:length(x)-2))));

end

function

[X] = trapezy(n,a,b,fun)

%n- podprzedzialy a,b

zakresy, fun- funkcja

szerokosc = (b-a)/n;

x=[a:szerokosc:b];
X=szerokosc*(sum(fun(x(2:length(x)-1))) + (fun(x(1))

+fun(x(length(x))))/2);

end

function

[ X ] = prostokaty( n,a,b,fun )

%ilosc

podprzedzialow, a-b zakresy, fun - wskaznik do funkcji

dx = (b-a)/n;

tab=[a:dx:b];
X=dx*(sum(fun(tab(2:length(tab)))));

end

I zastosowaliśmy je do następujących funkcji:

function

[X] = Funkcja1(A)

X = 1./(1+cos(A));

end

function

[X] = Funkcja2(A)

X = 1./sqrt(A.^2 + 0.0001);

end

function

[X] = Funkcja3(A)

X = (exp(1).^A).*sin(exp(1).^A);

end

background image

3. Błędy względny i bezwzględny:

Do obliczeń błędów i narysowania wykresów napisaliśmy następujący plik funkcyjny:

%ponizej zadane wartosci dokladne

dokl1 = 2;

%wartosc dokladna dla funkcji 1

dokl2 = log((200+sqrt(40001))\(sqrt(10001)-100));

%wartosc dokladna dla funkcji 2

dokl3 = cos(1)-cos(exp(1)^5);

%wartosc dokladna dla

funkcji 3

ilosc_podprzedzialow = 100;

%ustawiamy "na sztywno ilosc

podprzedzialow"

%obliczenia bledow dla pierwszej calki

x = [1:ilosc_podprzedzialow];

%przyjmujemy liczbe

podprzedzialow

wyn2 = zeros(1,length(x));

%inicjujemy dwie zmienne

wynikowe:

wyn = zeros(1,length(x));

for

i = x

wyn(i) = abs(dokl1 - trapezy(i,-

3.14/2,3.14/2,@Funkcja1));
wyn2(i) = (wyn(i)/dokl1);

%blad wzgledny

end

subplot(3,3,1);

%wyznaczamy miejsce wykresu

plot(x,wyn,x,wyn2,

'--r'

);

%rysujemy wykres z bledami

bezwzglednym i wzglednym

legend(

'bezwzgledny'

,

'wzgledny'

);

%opis do wykresu

xlabel(

'podprzedzialy'

);

ylabel(

'wartosci bledow'

);

title(

'bledy funkcji 1 dla metody trapezow'

)


x = [1:ilosc_podprzedzialow];

wyn = zeros(1,length(x));
wyn2 = zeros(1,length(x));

for

i = x

wyn(i) = abs(dokl1 - prostokaty(i,-

3.14/2,3.14/2,@Funkcja1));

%blad bezwzgledny

wyn2(i) = (wyn(i)/dokl1);

%blad wzgledny

end

subplot(3,3,2);

plot(x,wyn,x,wyn2,

'--r'

)

legend(

'bezwzgledny'

,

'wzgledny'

);

xlabel(

'podprzedzialy'

);

ylabel(

'wartosci bledow'

);

title(

'bledy funkcji 1 dla metody prostokatow'

)

background image

x = [1:ilosc_podprzedzialow];

wyn = zeros(1,length(x));
wyn2 = zeros(1,length(x));

for

i = x

wyn(i) = abs(dokl1 - simpson(i,-

3.14/2,3.14/2,@Funkcja1));
wyn2(i) = (wyn(i)/dokl1);

%blad wzgledny

end

subplot(3,3,3);

plot(x,wyn,x,wyn2,

'--r'

)

legend(

'bezwzgledny'

,

'wzgledny'

);

xlabel(

'podprzedzialy'

);

ylabel(

'wartosci bledow'

);

title(

'bledy funkcji 1 dla metody trapezow'

)

%obliczenia bledow dla calki drugiej

x = [1:ilosc_podprzedzialow];

wyn = zeros(1,length(x));
wyn2 = zeros(1,length(x));

for

i = x

wyn(i) = abs(dokl2 - trapezy(i,-1,exp(1),@Funkcja2));

wyn2(i) = (wyn(i)/dokl1);

%blad wzgledny

end

subplot(3,3,4);
plot(x,wyn,x,wyn2,

'--r'

)

legend(

'bezwzgledny'

,

'wzgledny'

);

xlabel(

'podprzedzialy'

);

ylabel(

'wartosci bledow'

);

title(

'bledy funkcji 2 dla metody trapezow'

)


x = [1:ilosc_podprzedzialow];

wyn = zeros(1,length(x));
wyn2 = zeros(1,length(x));

for

i = x

wyn(i) = abs(dokl2 - prostokaty(i,-

1,exp(1),@Funkcja2));
wyn2(i) = (wyn(i)/dokl1);

%blad wzgledny

end

subplot(3,3,5);

plot(x,wyn,x,wyn2,

'--r'

)

legend(

'bezwzgledny'

,

'wzgledny'

);

xlabel(

'podprzedzialy'

);

ylabel(

'wartosci bledow'

);

title(

'bledy funkcji 2 dla metody prostokatow'

)

background image

x = [1:ilosc_podprzedzialow];

wyn = zeros(1,length(x));
wyn2 = zeros(1,length(x));

for

i = x

wyn(i) = abs(dokl2 - simpson(i,-1,exp(1),@Funkcja2));

wyn2(i) = (wyn(i)/dokl1);

%blad wzgledny

end

subplot(3,3,6);
plot(x,wyn,x,wyn2,

'--r'

)

legend(

'bezwzgledny'

,

'wzgledny'

);

xlabel(

'podprzedzialy'

);

ylabel(

'wartosci bledow'

);

title(

'bledy funkcji 2 dla metody simpsona'

)

%obliczenia bledow dla calki trzeciej

x = [1:ilosc_podprzedzialow];
wyn = zeros(1,length(x));

wyn2 = zeros(1,length(x));

for

i = x

wyn(i) = abs(dokl2 - trapezy(i,0,5,@Funkcja3));
wyn2(i) = (wyn(i)/dokl1);

%blad wzgledny

end

subplot(3,3,7);

plot(x,wyn,x,wyn2,

'--r'

)

legend(

'bezwzgledny'

,

'wzgledny'

);

xlabel(

'podprzedzialy'

);

ylabel(

'wartosci bledow'

);

title(

'bledy funkcji 3 dla metody trapezow'

)

x = [1:ilosc_podprzedzialow];
wyn = zeros(1,length(x));

wyn2 = zeros(1,length(x));

for

i = x

wyn(i) = abs(dokl2 - prostokaty(i,0,5,@Funkcja3));
wyn2(i) = (wyn(i)/dokl1);

%blad wzgledny

end

subplot(3,3,8);

plot(x,wyn,x,wyn2,

'--r'

)

legend(

'bezwzgledny'

,

'wzgledny'

);

xlabel(

'podprzedzialy'

);

ylabel(

'wartosci bledow'

);

title(

'bledy funkcji 3 dla metody prostokatow'

)

x = [1:ilosc_podprzedzialow];
wyn = zeros(1,length(x));

background image

wyn2 = zeros(1,length(x));

for

i = x

wyn(i) = abs(dokl2 - simpson(i,0,5,@Funkcja3));

wyn2(i) = (wyn(i)/dokl1);

%blad wzgledny

end

subplot(3,3,9);
plot(x,wyn,x,wyn2,

'--r'

)

legend(

'bezwzgledny'

,

'wzgledny'

);

xlabel(

'podprzedzialy'

);

ylabel(

'wartosci bledow'

);

title(

'bledy funkcji 3 dla metody simpsona'

)

Plik generuje nam wykresy załączone do sprawozdania. Poniżej wnioski.

4. Wnioski:

Teoretycznie najlepsze wyniki powinny być uzyskane w metodzie Simpsona, tak też jest w naszych

obliczeniach, przy analizowaniu wykresów należy zwrócić uwagę na oś y z wartościami błędów. Już przy
ustaleniu liczby podprzedziałów na 100 wartość błędu zbliżyła się wystarczająco do zera. Przy liczbie

podprzedziałów ustalonych na 1000 dla funkcji 1 metoda trapezów i prostokątów jest lepsza od metody
simpsona. Dla funkcji 2 wartość błędu przy kolejnych podprzedziałach dla poszczególnych metod jest w

przybliżeniu taka sama. Dla funkcji 3 najlepsze rozwiązanie uzyskujemy dla 100 podprzedziałów, gdzie
wartości błędów spadają do zera.


Wyszukiwarka

Podobne podstrony:
Calkowanie numeryczne, WIP AIR, SEM 1, TEINF, TEINF, Teinf projekty
Calkowanie numeryczne
Wykład 8-Całkowanie numeryczne. Kwadratury Newtona-Cotesa
1 Metody całkowania numerycznego 1 1
Całkowanie numeryczne
Calkowanie numeryczne pdf
calkowanie numeryczne
sciaga malek 24-25, Algorytmy wielokrotnego całkowania numeryczne
Całkowanie numeryczne, Studia, ZiIP, SEMESTR III, Metody numeryczne
Całkowanie numeryczne metoda trapezów mini, Studia, ZiIP, SEMESTR III, Metody numeryczne
Całkowanie numeryczne
Wykład 9- Całkowanie numeryczne.Kwadratury Gaussa
całkowanie numeryczne
1 Metody całkowania numerycznego 2id 8579
Calkowanie numeryczne 2009
Calkowanie numeryczne
Całkowanie numeryczne
Calkowanie numeryczne, WIP AIR, SEM 1, TEINF, TEINF, Teinf projekty

więcej podobnych podstron