Politechnika Świętokrzyska w Kielcach Wydział Elektrotechniki Automatyki i Informatyki |
Laboratorium – Metody Obliczeniowe Katedra Zastosowań Informatyki |
Sprawozdanie z zajęć laboratoryjnych nr 6 Różniczkowanie numeryczne |
MICHAŁ MAZUR DOMINIK KUSA Grupa: ID313B |
1. Różniczkowanie numeryczne i błędy obliczeń
1. 1 Wstęp
Różniczkowaniem numerycznym nazywamy wyznaczanie przybliżonych wartości pochodnych funkcji dyskretnej jednej lub wielu zmiennych w zadanych punktach obszaru. Operację taką można wykonać dwuetapowo:
• wyprowadzając stosowne wzory różnicowe pozwalające na wyrażenie pożądanej pochodnej w określonym punkcie obszaru jako kombinacji liniowej wartości funkcji w punktach sąsiednich – węzłach (tzw. schematy różnicowe),
• stosując wyznaczone wzory różnicowe do obliczania pochodnych w wybranych punktach
obszaru.
Postępowanie takie jest wyjątkowo skuteczne i efektywne w przypadku, gdy węzły są rozmieszczone równomiernie, gdyż wówczas wystarczy jednokrotne wyprowadzenie schematu różnicowego na każdą niezbędną pochodną.
Metody generacji wzorów różnicowych możemy podzielić na trzy kategorie:
• przez interpolację,
• nieoznaczonych współczynników,
• ścisłe dla wielomianów możliwie najwyższego stopnia,
1. 2 Wyprowadzanie wzorów i szacowanie dokładności z użyciem szeregu Taylora
Na podstawie rozwinięcia Taylora funkcji:
możemy szacować dokładność przybliżeń numerycznych w funkcji rzędu pochodnej i kroku h. Przykład:
rozwinięcie Taylora ograniczone do pierwszego nie skracającego się czynnika:
Oszacowanie pochodnej ilorazem różnicowym centralnym:
Wnioski: wzór jest dokładny dla wielomianów do 2 stopnia, błąd jest proporcjonalny do h2.
1. 3 Wrażliwość przybliżeń różnicowych na błędy reprezentacji i zakłócenia w danych
Stwierdzenie, że błąd jest zależny z określoną potęgą od kroku h sugeruje, że zmniejszanie kroku wyrażenia różnicowego może tylko poprawić jakość wyniku (dokładność pochodnej). W tej analizie nie uwzględniono jednak błędu reprezentacji maszynowej wartości funkcji. Dodatkowo silny wpływ na błędy wyznaczanej pochodnej mogą mieć zakłócenia pomiaru wartości funkcji (np. szumy addytywne w próbkowaniu sygnału). Przeanalizujmy własności dwóch podstawowych wyrażeń różnicowych pod kątem zaburzenia danych.
Przyjmując zaburzenie danych (szum lub błąd reprezentacji) na poziomie ε i ograniczenie odpowiedniej pochodnej przez liczbę M uzyskujemy wyrażenia na łączny błąd:
Minimalny błąd uzyskamy dla optymalnego kroku h (step-size dilemma):
Wnioski:
wyższy rząd → większy krok → mniejsze wzmocnienie błędu reprezentacji
znaczne zakłócenia w danych → lepiej korzystać z wielomianu aproksymującego
2. Implementacja różniczkowania metodą Taylor’a
Przykład z zajęć (Implementacja w MatLab):
y = [6.3 5 4.45 3 0.75];
tmp = [0 0 0 0];
h=0.5;
for j=1:4,
for i=1:5-j,
y(i)=y(i)-y(i+1);
end
i=1;
tmp(j)=y(i);
end
wynik=(1/h)*(tmp(1)+((1/2)*tmp(2))+((1/3)*tmp(3))+((1/4)*tmp(4)));
disp('Wynik: ');
disp(wynik);
blad=abs(1-wynik);
disp('Blad: ');
disp(blad);
ZADANIE nr: R149
Przykład zadany (Implementacja w Python):
y = [-1.339279, -1.361837, -0.908666, -0.138072, 0.680755, 1.261774]
tmp = [0, 0, 0, 0, 0]
h=0.2
for j in range(6):
for i in range(5-j):
y[i]=y[i]-y[i+1]
tmp[j]=y[i]
wynik=(1/h)*(tmp[0]+((1/2)*tmp[1])+((1/3)*tmp[2])+((1/4)*tmp[3])+((1/5)*tmp[4]))
print('Wynik: ',wynik)
blad=abs(1-wynik)
print('Blad: ', blad)
import time
time.sleep(10)
3. Bibliografia
http://galaxy.uci.agh.edu.pl/~ttward/numer/Ca%B3kowanie%20i%20r%F3%BFniczkowanie%20numeryczne.pdf
http://www.l5.pk.edu.pl/~michal/pdfy/Metody19.pdf
Instrukcja laboratoryjna z zajęć MObl13_L07A.diff_.pdf