Rozdziaª 7. Rozwi zywanie równa«nieliniowych. 7.1 Funkcja octave'a fzero()

Podobne dokumenty
Arytmetyka zmiennopozycyjna

Rozdziaª 13. Przykªadowe projekty zaliczeniowe

Interpolacja Lagrange'a, bazy wielomianów

1 Metody iteracyjne rozwi zywania równania f(x)=0

Liniowe zadania najmniejszych kwadratów

Numeryczne zadanie wªasne

Ukªady równa«liniowych - rozkªady typu LU i LL'

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

LZNK. Rozkªad QR. Metoda Householdera

1 Przypomnienie wiadomo±ci ze szkoªy ±redniej. Rozwi zywanie prostych równa«i nierówno±ci

1 Bª dy i arytmetyka zmiennopozycyjna

Obliczanie całek. Instytut Fizyki Akademia Pomorska w Słupsku

Równania nieliniowe, nieliniowe układy równań, optymalizacja

Lab. 02: Algorytm Schrage

1. Przedstaw w postaci algebraicznej liczby zespolone: 2. Narysuj zbiory punktów na pªaszczy¹nie:

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Zadania i scenariusze zaj z laboratorium komputerowego do wykªadu z Matematyki Obliczeniowej. Leszek Marcinkowski

Caªkowanie numeryczne - porównanie skuteczno±ci metody prostokatów, metody trapezów oraz metody Simpsona

Równania nieliniowe, nieliniowe układy równań, optymalizacja

Dokªadna arytmetyka liczb rzeczywistych w j zyku Python

Metody numeryczne i statystyka dla in»ynierów

RÓWNANIA NIELINIOWE Maciej Patan

Funkcje wielu zmiennych

Funkcje, wielomiany. Informacje pomocnicze

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Wektory w przestrzeni

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

2 Liczby rzeczywiste - cz. 2

Kurs z matematyki - zadania

Funkcje wielu zmiennych

Metody rozwiązywania równań nieliniowych

Metody numeryczne i statystyka dla in»ynierów

Informacje pomocnicze

Zadania z analizy matematycznej - sem. II Ekstrema funkcji wielu zmiennych, twierdzenia o funkcji odwrotnej i funkcji uwikªanej

Obliczanie caªek. Kwadratury

Analiza Matematyczna MAT1317

Zagadnienia - równania nieliniowe

AM II /2019 (gr. 2 i 3) zadania przygotowawcze do I kolokwium

Interpolacja funkcjami sklejanymi

Interpolacja wielomianowa i splajnowa

Przykªadowe tematy z JiMP

1 Granice funkcji wielu zmiennych.

Matematyka stosowana i metody numeryczne

PRZYBLI ONE METODY ROZWI ZYWANIA RÓWNA

Wst p do sieci neuronowych 2010/2011 wykªad 7 Algorytm propagacji wstecznej cd.

Egzamin test GRUPA A (c) maleje na przedziale (1, 6). 0, ,5 1

Rozwiązywanie równań nieliniowych

Materiaªy do Repetytorium z matematyki

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Metody numeryczne Wykład 7

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Funkcje Andrzej Musielak 1. Funkcje

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

y f x 0 f x 0 x x 0 x 0 lim 0 h f x 0 lim x x0 - o ile ta granica właściwa istnieje. f x x2 Definicja pochodnych jednostronnych

1 Równania nieliniowe

Ukªady równa«liniowych

Macierze. Dziaªania na macierzach. 1. Niech b d dane macierze , D = , C = , B = 4 12 A = , F = , G = , H = E = a) Obliczy A + B, 2A 3B,

POSZUKIWANIE ZER FUNKCJI F(x). Zad. 2. Korzystając z metody punktu stałego znaleźć miejsce zerowe funkcji f(x) =

Wprowadzenie do metod numerycznych Wykład 2 Numeryczne rozwiązywanie równań nieliniowych

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

EGZAMIN MAGISTERSKI, r Matematyka w ekonomii i ubezpieczeniach

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

1 Funkcje elementarne

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Elementy geometrii w przestrzeni R 3

Równania nieliniowe. LABORKA Piotr Ciskowski

Matematyka licea ogólnokształcące, technika

Matematyka 1. Šukasz Dawidowski. Instytut Matematyki, Uniwersytet l ski

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Zastosowanie eliptycznych równa«ró»niczkowych

Drugi sposób definiowania funkcji polega na wykorzystaniu polecenia:

Indukcja matematyczna

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Funkcje jednej zmiennej. Granica, ci gªo±. (szkic wykªadu)

1 Pochodne wyższych rzędów

Pochodna funkcji jednej zmiennej

FUNKCJE. 1. Podstawowe definicje

1 Ró»niczka drugiego rz du i ekstrema

Zadania z z matematyki dla studentów gospodarki przestrzennej UŠ. Marek Majewski Aktualizacja: 31 pa¹dziernika 2006

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Rozwi zanie równania ró»niczkowego metod operatorow (zastosowanie transformaty Laplace'a).

a) f : R R R: f(x, y) = x 2 y 2 ; f(x, y) = 3xy; f(x, y) = max(xy, xy); b) g : R 2 R 2 R: g((x 1, y 1 ), (x 2, y 2 )) = 2x 1 y 1 x 2 y 2 ;

Funkcja f jest ograniczona, jeśli jest ona ograniczona z

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

Wykresy i własności funkcji

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Zadania z PM II A. Strojnowski str. 1. Zadania przygotowawcze z Podstaw Matematyki seria 2

FUNKCJA KWADRATOWA. 1. Definicje i przydatne wzory. lub trójmianem kwadratowym nazywamy funkcję postaci: f(x) = ax 2 + bx + c

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

Kurs wyrównawczy dla kandydatów i studentów UTP

Algebra Liniowa 2. Zadania do samodzielnych wicze«wydziaª Elektroniki, I rok Karina Olszak i Zbigniew Olszak

Metody numeryczne I Równania nieliniowe

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

I Rok LOGISTYKI: wykªad 2 Pochodna funkcji. iloraz ró»nicowy x y x

Transkrypt:

Rozdziaª 7 Rozwi zywanie równa«nieliniowych W tym rozdziale zajmiemy si metodami rozwi zywania równa«nieliniowych skalarnych. Interesuje nas znalezienie zera nieliniowej funkcji f : [a, b] R: Przetestujemy kilka metod. f(x) = 0. 7.1 Funkcja octave'a fzero() Na pocz tek zapoznamy si z funkcj octave'a sªu» c do znajdowania zer równania nieliniowego, czyli fzero(). Funkcja posiada dwa wywoªania w pierwszym: x=fzero ( f, ap ) f jest wska¹nikiem (uchwytem) do funkcji function y=f ( x ) a app = (a, b) jest wektorem z dwoma liczbami lokalizuj cymi zero funkcji, tzn.»e to zero le»y pomi dzy a i b. Przetestujmy t funkcj z tym wywoªaniem na kilku prostych przykªadach: fzero (@( x ) x ^5,[ 1,2]) fzero (@( x ) x x 2,[1,2]) sqrt ( 2 ) fzero ( @sin, [ 1, 2 ] ) fzero ( @sin, [ 3, 4 ] ) pi 72

Funkcja dziaªa. Przetestujmy j w sytuacji kiedy zer mo»e by kilka np.: fzero ( " s i n ",[ 4,5]) Funkcja znalazªa pierwiastek π, ale mo»e nie zadziaªa : fzero ( " s i n ",[ 4,1]) Zwracaj c: error : fzero : not a v a l i d i n i t i a l b r a c k e t i n g Nietrudno si domy±le,»e dla tej funkcji wªa±ciwy przedziaª to taki,»e funkcja w ko«cach przyjmuje przeciwne znaki. Kolejnym mo»liwym wywoªaniem tej funkcji jest podanie ap jako liczby -przybli»enia zera: fzero (@( x ) x x 2,2) sqrt ( 2 ) fzero ( @sin, 1 ) fzero ( @sin,3) pi To wywoªanie te» dziaªa. Inn funkcj octave'a sªu» c rozwi zywaniu równa«nieliniowych jest fsolve (). Jej wywoªanie jest takie samo, jak druga wersja wywoªania funkcji fzero(), tzn. podajemy wska¹nik (uchwyt) do funkcji i liczb b d c przybli»eniem pierwiastka, np.: f s o l v e (@( x ) x x 4,2) Przetestujmy na kilku innych przykªadach: f s o l v e (@( x ) x x x 27,5) 3 f s o l v e ( @sin, 1 ) f s o l v e ( @sin,3) pi Wyniki s poprawne. Funkcja fsolve () jest bardziej ogólna od fzero(), mo»e sªu»y znajdowania zer ukªadów równa«nieliniowych, ale to wykracza poza standardowwy zakres wykªadu z Matematyki Obliczeniowej. 7.2 Metoda bisekcji Najprostsz metod znajdowania zera jest metoda bisekcji. Dla funkcji ci - gªej f - je±li f(a) f(b) < 0 - to istnieje zero pomi dzy punktami a, b. Idea metody bisekcji (poªowienia odcinka), to przyj cie za przybli»enie zera x = (a + b)/2 i sprawdzenie znaku f w x. Albo f(x) jest równe zero - wtedy otrzymali±my,»e x jest szukanym zerem. W przeciwnym razie zast pujemy jeden z ko«ców odcinka przez x - ten w którym znak warto±ci f 73

w tym ko«cu jest ten sam co dla f(x). Dalej post pujemy analogicznie z nowym odcinkiem o dªugo±ci równej poªowie poprzedniego. Poni»ej widzimy prost implementacj metody bisekcji: function x=b i s e k c j a ( f, a, b, eps=1e 4,itmax =200) #[ x]= b i s e k c j a ( f, a, b, eps=1e 4, itmax =200) #f wskaznik do f u n k c j i #a, b p o c z a t e k i koniec odcinka #eps t o l e r a n c j a met zatrzymuje s i e o i l e ( b a)<eps #itmax max i l o s c i t e r a c j i #Output : #x p r z y b l i z o n e zero #Zakladamy, ze uzytkownik poda dwa punkty a<b # w k t o r y c h f ( a ) f ( b)<0 ya=f ( a ) ; yb=f (b ) ; i t =0; x=(a+b ) / 2 ; while ( (b a>eps ) && ( i t <itmax ) ) y=f ( x ) ; i f ( sign ( y)==sign ( ya ) ) ya=y ; a=x ; else yb=y ; b=x ; end x=(a+b ) / 2 ; endwhile endfunction Przetestujmy dla kilku funkcji: b i s e k c j a (@( x ) x x 2,1,2) sqrt ( 2 ) Wynik jest poprawny. Je±li b a jest du»e to zbie»no± jest do± wolna: tic ; b i s e k c j a (@( x ) x x 2,1,1 e30) sqrt ( 2 ) ; toc Czas potrzebny do obliczenia zera wydaje si maªy, ale wyobra¹my sobie,»e musimy rozwi za kilka milionów takich równa«. Spróbujmy znale¹ zero dla funkcji bardziej skomplikowanej g(x) = x 0 exp( 0.5 t2 ) dt = 0: f=@( x ) exp( x x / 2 ) ; 74

g=@( x ) quad( f, 0, x) 1; x=b i s e k c j a ( g, 1, 2 ) g ( x ) 7.3 Metoda Newtona Kolejn bardzo wa»n metod jest metoda Newtona: x n+1 = x n f(x n )/f (x n ) n 0 poprawnie okre±lona, o ile f (x n ) 0. Zaimplementujmy w octave'ie metod Newtona. Poni»ej podajemy kod funkcji octave'a szukania zer za pomoc metody Newtona: function [ x, f v a l, info ]=newton ( f, df, x0,... epsr=1e 7, epsa=1e 9,maxit=30) #Metoda Newtona s k a l a r n a # #Input : #f f u n c t i o n handle do f u n k c j i p o s t a c i y=f ( x ), #k t o r e j zera szukamy przy czym zwracana wartosc #y to wartosc f ( x ) #d f f u n c t i o n handle do pochodnej f u n k c j i p o s t a c i #y=d f ( x ) k t o r e j zera szukamy #x s t a r t o w e p r z y b l i z e n i e # #P o z o s t a l e parametry opcjonalne #epsr = wzgledna t o l e r a n c j a #epsa bezwgledna t o l e r a n c j a #maxit maksymalna i l o s c i t e r a c j i #Output : #y p r z y b l i z e n i e zera #f v a l wartosc f ( x ) #i n f o wynik 0 z b i e z n o s c ; # 1 brak z b i e z n o s c i # p r z e k r o c z y l max i l o s c i t e r a c j i # 2 d f ( x ) zero nie mozna p o l i c z y c # k o l e j n e g o p r z y b l i z e n i a # i t e r a c j e zatrzymuja s i e j e s l i # z a c h o d z i jedna z dwu # 1/ f ( x ) > epsa + epsr f ( x0 ) 75

# l u b # 2/ i l o s c i t e r a c j i = maxit # # Przyklad : # f u n c t i o n y=f ( x ) # y=x x 2; # endfunction # # Wywolujemy : # y=newton ( @f, 2 ) # [ y, fy, i n f o ]=newton ( @f, 4, 1 e 2,1e 3) i t d fx=f ( x0 ) ; f v a l=fx ( 1 ) ; i t =0; info =0; eps =0.5 ( epsr abs ( f v a l )+epsa ) ; x=x0 ; while ( ( abs ( f v a l )>eps ) && ( i t <maxit ) ) #liczymy pochodna dfx=df ( x ) ; i f (abs ( dfx )>1e 12) x=x f v a l / dfx ; else info =2; printf ( "Pochodna df w punkcie x_%d=%g zero \n", i t, x ) ; return ; endif i t ++; fx=f ( x ) ; f v a l=fx ( 1 ) ; endwhile i f ( ( abs ( f v a l )>eps ) ) info =1; #brak z b i e z n o s c i printf ( "Brak z b i e z n o s c i! Po... %d i t e r a c j a c h f (%g) =%g>t o l=%g! \ n", i t 1,x, f v a l, eps ) ; endif endfunction Zbadajmy zbie»no± metody Newtona dla modelowej funkcji f(x) = x 2 76

4, której pierwiastkami s 2, 2. newton (@( x ) x x 4,@( x ) 2 x,4) 2 Teraz wywoªamy t funkcj ze wszystkimi zwracanymi warto±ciami: [ x, f v a l, info ]=newton (@( x ) x x 4,@( x ) 2 x, 4 ) Przetestujmy, czy metoda zbiega dla x 0 = 100: [ x, f v a l, info ]=newton (@( x ) x x 4,@( x ) 2 x, 1 0 0 ) czy dla x 0 jeszcze bardziej oddalonych od pierwiastków: [ x, f v a l, info ]=newton (@( x ) x x 4,@( x ) 2 x, 1 0 0 0 ) [ x, f v a l, info ]=newton (@( x ) x x 4,@( x ) 2 x, 0. 0 1 ) [ x, f v a l, info ]=newton (@( x ) x x 4,@( x ) 2 x, 1 e 9) [ x, f v a l, info ]=newton (@( x ) x x 4,@( x ) 2 x, 1 e6 ) W ostatnim przypadku ilo± iteracji w warunku stopu okazaªa si niewystarczaj ca. Mo»emy te» przetestowa rz d zbie»no±ci dla równania, którego rozwi - zanie znamy, np. rozpatrzmy ostatnie równanie x 2 = 4: Poni»szy kod testuje rz d zbie»no±ci metody Newtona dla dodatniego pierwiastka funkcji f(x) = x 2 4: M=6; x=4; e =0; i t =0; for k=1:m, x=x (x x 4)/(2 x ) ; i t ++; ep=e ; e=x 2; i f ( i t >1) printf ( "[%d ] e/ep=%3.4e e /( ep ep)=%3.4e \n",... i t, e/ep, e /( ep ep ) ) ; endif endfor Otrzymali±my,»e rz d zbie»no±ci dla tej funkcji jest równy dwa, co jest zgodne z teori, która mówi,»e je±li funkcja jest klasy C 2 na otoczeniu swojego pierwiastka x, oraz warto± pochodnej funkcji w pierwiastku jest ró»na od zera to metoda jest lokalnie zbie»na kwadratowo (zbie»na z rz dem równym dwa): tzn. istnieje takie ɛ > 0 i staªa C 0,»e je±li x 0 startowe 77

Rysunek 7.1: Wykresy funkcji f(x) = 2 x + sin(x) na [0, 3]. przybli»enie metody Newtona speªnia: x x 0 ɛ, to por. np. [11]. x n+1 x C x n x 2, 7.4 Odwracanie funkcji Podamy jeden przykªad zastosowania metod rozwi zywania równa«nieliniowych do znajdowania przybli»onych warto±ci funkcji odwrotnej do danej. Zaªó»my,»e potramy policzy warto±ci funkcji, i chcemy znale¹ warto±ci funkcji odwrotnej do danej funkcji, aby np. narysowa wykres funkcji odwrotnej (zakªadamy,»e na danym odcinku ona istnieje). Zazwyczaj niestety nie znamy wzoru analitycznego na funkcj odwrotn. Jak to zrobi z zastosowaniem funkcji fzero()? Gdyby chodziªo o sam wykres mo»emy zastosowa proste odbicie: x=linspace ( a, b ) ; 78

Rysunek 7.2: Wykresy funkcji odwrotnej do f(x) = 2 x + sin(x) na [0, 3]. y=f ( x ) ; plot ( x, y, " ; wykres y=f ( x ) ; " ) ; plot ( y, x, " ; wykres x=f ^{ 1}(y ) ; " ) ; Na rysunku 7.1 wida wykres f(x) = 2 x + sin(x) na [0, 3], a na rysunku 7.2 wykres funkcji do niej odwrotnej. Oczywi±cie wykres funkcji odwrotnej wygl da zgodnie z oczekiwaniami. Rozpatrzmy inn funkcje: f(x) = tan(x) na [ 1.57, 1.57] i popatrzmy na wykresy funkcji odwrotnej otrzymanej w analogiczny sposób i wykres rzeczywistej funkcji odwrotnej, której wzór analityczny w tym przypadku znamy: (tan) 1 (y) = atan(y): rysunek 7.3. Wida,»e wykres funkcji odwrotnej jest troch inny od wykresu uzyskanego naszym sposobem. Aby uzyska wykres prawidªowy powinni±my zna bardzo dokªadne przybli»enia warto±ci funkcji odwrotnej w punktach siatki. Aby obliczy warto± f 1 (y) dla konkretnego y nale»y rozwi za równanie: g(x) = y f(x) = 0, co w praktyce mo»na w sposób przybli»ony dokona przy u»yciu np. funkcji 79

Rysunek 7.3: Wykresy funkcji odwrotnej do f(x) = tan(x) na dwa sposoby. kolor zielony rzeczywisty wykres funkcji odwrotnej, kolor niebieski wykres uzyskany przez odbicie. fzero() w octave'ie. Poni»szy kod oblicza warto±ci funkcji odwrotnej do f(x) = tan(x) na siatce równomiernych punktów na [ f(1.57), f(1.57)] (korzystamy z tego,»e funkcja jest nieparzysta i obliczamy jej warto±ci tylko dla argumentów dodatnich): f=@tan ; c=f ( 1.57); d= c ; N=1000; y=linspace (0, d,n) ; x=zeros (N, 1 ) ; x (1)=0; #tan (0)=0 for k=2:n, x0=x ( k 1); g=@( x ) y ( k ) f ( x ) ; x ( k)= f s o l v e ( g, x0 ) ; 80

Rysunek 7.4: Wykresy funkcji odwrotnej do f(x) = tan(x). Wykonane na dwa sposoby. Kolor zielony - rzeczywisty wykres funkcji odwrotnej, kolor niebieski - wykres uzyskany przez odbicie. Oba wykresy si pokrywaj. endfor y=[y d y ] ; x=[ flipud ( x ) ; x ] ; plot ( y, x, " ; o b l i c z. f odwrotna ; ", y, atan ( y ), " ; atan ( y ) ; " ) pause ( 2 ) ; plot ( y, x' atan ( y ), " ; wykres bledu ; " ) Na rysunku 7.4 wida,»e wykresy funkcji odwrotnej oraz obliczonej przez nas pokrywaj si. Potwierdza to tak»e wykres bª du, por. rysunek 7.5. 81

Rysunek 7.5: Wykresy bª du obliczania funkcji odwrotnej do f(x) = tan(x). 82