Całkowanie numeryczne - Mathcad
Transkrypt
Całkowanie numeryczne - Mathcad
trapez.xmcd Całkowanie numeryczne metodą trapezów Wzór trapezów b 1 ⌠ 1 f ( x) dx = h ⋅ ⋅ y0 + y1 + ... + yn−1 + yn 2 ⌡a 2 Funkcja całkowana 3 2 ⋅x + 3 ϕ ( x) := sin ( x) Funkcja trapez obliczająca całkę z funkcji f(x) w przedziale a, b z podziałem przedziału całkowania na n części. trapez ( f , a , b , n) := s← f ( a) + f ( b) 2 h← b−a n for i ∈ 1 .. n − 1 if n > 1 xi ← a + i ⋅h yi ← f ( xi) s ← s + yi s ← h ⋅s trapez ( ϕ , 1 , 3 , 450) = 102.024 całka z funkcji φ(x) 3 ⌠ ϕ ( x) dx = 102.018 ⌡1 całka obliczona metodą Romberga 2006-12-09 13:38 simpson.xmcd Całkowanie numeryczne metodą Simpsona Wzór Simpsona b h ⌠ f ( x) dx = ⋅ ( y0 + 4 ⋅y1 + 2 ⋅y2 + 4 ⋅y3 + ... + 4 ⋅ y2n−1 + y2n) 3 ⌡a Funkcja całkowana 3 2 ⋅x + 3 ϕ ( x) := sin ( x) Funkcja Simpson obliczająca całkę z funkcji f(x) w przedziale a, b z podziałem przedziału całkowania na n części (n musi być parzyste i nie mniejsze niż 4). Simpson ( f , a , b , n) := n ← 4 if n < 4 n ← n + 1 if mod ( n , 2) > 0 s ← f ( a) + f ( b ) h← b−a n for i ∈ 1 , 3 .. n − 1 xi ← a + i ⋅h yi ← 4 ⋅f ( xi) s ← s + yi for i ∈ 2 , 4 .. n − 2 xi ← a + i ⋅h yi ← 2 ⋅f ( xi) s ← s + yi s← h ⋅s 3 Simpson ( ϕ , 1 , 3 , 60) = 102.024 całka z funkcji φ(x) 3 ⌠ ϕ ( x) dx = 102.018 ⌡1 całka obliczona metodą Romberga 2006-12-09 13:39 richardson-01.xmcd Ekstrapoplacja Richardsona Całkowana funkcja 3 2 ⋅x + 3 ϕ ( x) := 1 + sin ( x) Funkcja trapez obliczająca całkę z funkcji f(x) w przedziale a, b z podziałem przedziału całkowania na n części. trapez ( f , a , b , n) := s← f ( a) + f ( b) 2 h← b−a n for i ∈ 1 .. n − 1 if n > 1 xi ← a + i ⋅h yi ← f ( xi) s ← s + yi s ← h ⋅s h Całka obliczona metodą Romberga 3 ⌠ IR := ϕ ( x) dx ⌡1 IR = 29.5 Błąd przybliżenia całki ∆I ( I) := I − IR IR 1/2 2006-12-10 16:11 richardson-01.xmcd I1 := trapez ( ϕ , 1 , 3 , 4) h1 I1 = 31.3 h1 = 0.5 ∆I I1 = 6.090 % I2 := trapez ( ϕ , 1 , 3 , 8) h2 I2 = 29.96 h2 = 0.25 ∆I I2 = 1.548 % In := trapez ( ϕ , 1 , 3 , 54) hn In = 29.51 hn = 0.037 ∆I In = 0.034 % ( ) ( ) ( ) Ekstrapolacja Richardsona I := I2 + I2 − I1 ∆I ( I) = 0.034 % I = 29.51 2 h1 −1 h2 ∆I ( n) := trapez ( ϕ , 1 , 3 , n) 0 − IR n := 3 .. 100 4 blad przyblizenia calki 3 2 ∆I ( n) 1 0 −1 0 0 10 20 30 40 50 60 70 80 90 100 n liczba podprzedzialów 2/2 2006-12-10 16:11 romberg-2.xmcd Całkowanie numeryczne metodą Romberga (2) Funkcja całkowana 3 2 ⋅x + 3 ϕ ( x) := 1 + sin ( x) Funkcja trapez obliczająca całkę z funkcji f(x) w przedziale a, b z podziałem przedziału całkowania na n części. trapez ( f , a , b , n) := h← b−a n s ← h⋅ f ( a) + f ( b) 2 n− 1 s ← s + h⋅ ∑ f ( a + i ⋅h) if n > 1 i=1 s romberg ( f , a , b , n) := I0 , 0 ← trapez ( f , a , b , 1) I1 , 0 ← trapez ( f , a , b , 2) "ekstrapolacja Richardsona" I0 , 1 ← 4 ⋅I1 , 0 − I0 , 0 3 for k ∈ 2 .. n k m← 2 Ik , 0 ← trapez ( f , a , b , m) for j ∈ 1 .. k c← 4 j "ekstrapolacja Richardsona" I k− j , j ← c ⋅ Ik−j +1 , j−1 − Ik−j , j −1 c−1 I0 , n I 1/2 2008-11-20 12:37 romberg-2.xmcd n W funkcji romberg 2 jest maksymalną liczbą podprzedziałów dla metody trapezów. trapez ( ϕ , 1 , 3 , 500) = 29.49981 trapez ( ϕ , 1 , 3 , 1000) = 29.49973 trapez ( ϕ , 1 , 3 , 1500) = 29.49971 romberg ( ϕ , 1 , 3 , 4) 0 = 29.49970 52.66615 36.28438 romberg ( ϕ , 1 , 3 , 4) 1 = 31.29610 29.95637 29.61437 4 30.82379 29.55398 29.50072 29.49970 29.63334 29.50155 29.49971 0.00000 29.50979 29.49974 0.00000 29.50037 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 2 = 16 Całka obliczona metodą Romberga zaimplementowaną w programie MathCad 3 ⌠ I := ϕ ( x) dx ⌡1 I = 29.49970 2/2 2008-11-20 12:37