TÍNH ĐẠO HÀM BẬC NHẤT BẰNG PHƯƠNG PHÁP ROMBERG Đạo hàm theo phương pháp Romberg là một phương pháp ngoại suy để xác định đạo hàm với một độ chính xác cao... số được chia thành 2 nhóm: c
Trang 1CHƯƠNG 6: ĐẠO HÀM VÀ TÍCH PHÂN SỐ
§1. TÍNH ĐẠO HÀM BẬC NHẤT BẰNG PHƯƠNG PHÁP ROMBERG
Đạo hàm theo phương pháp Romberg là một phương pháp ngoại suy
để xác định đạo hàm với một độ chính xác cao. Ta xét khai triển Taylor của hàm f(x) tại (x + h) và (x ‐ h):
⋅
⋅++
=
!4
h)x(f
!3
h)x(f2
h)x(fh)x()hx
4 3
h)x(f
!3
h)x(f2
h)x(fh)x()hx
4 3
2
(2) Trừ (1) cho (2) ta có:
⋅⋅
⋅++
h2)x(f
!3
h2)x(fh2)hx()hx
5 3
=
!5
h)x(f
!3
hh
2
)hx()hx()
x
(
4 2
2
2h a h a ha
)hx()hx(h2
1)
1)
2
a)x(f)h()1
=
64
ha16
ha4
ha)x(f2
h)
4 4
i 6
4 i 4
2 i 2
i) f(x) a h a h a hh
()1
a4
3)x(f32
h4)
1)x(f4
)1,1(D)1,2(D4)2
Trang 22
ha16
52
ha4
1)x(f)2
x(f15)
2,3(D16)3
1)x(f15
)2,2(D)2,3(D16)3
14
)1j1i(D)1ji(D4)j
i
(
1 j
1)h()j
Trang 3!4
h)x(f
!3
h)x(f2
h)x(fh)x()hx
4 3
Trang 42 (2) (2)
4 ( 5)
f(x 2h) 16f(x h) 30f(x) 16f(x h) f(x 2h)
D (x, h)
12hh
Trang 7số được chia thành 2 nhóm: các phương pháp Newton ‐ Cotes và các phương pháp Gauss. Khi dùng các phương pháp Newton ‐ Cotes khoảng lấy tích phân được chia đều như trong phương pháp hình thang hay phương pháp Simpson. Khi dùng các phương pháp Gauss, cácc diểm chia được chọn để đạt
độ chính xác cao nhất. Do phương pháp này cần ít lần tính giá trị hàm dươci dấu tích phân nên thích hợp khi hàm f(x) khó tính.
A
By
x
Trang 9Ta xây dựng hàm trapezoid() để thực hiện thuật toán trên.
Trang 12tích phân bằng phương pháp Simpson, các
đoạn được chia đều và làm cho sai số không
giống nhau trên các đoạn: sai số lớn trên các
đoạn hàm biến đổi nhiều và sai số nhỏ trên các
đoạn hàm tương đối bằng phẳng. Ngược lại
phương pháp cầu phương thích nghi chia các đoạn không đều: ngắn trên các đoạn hàm thay đổi nhiều và dài trên các đoạn thay đổi ít và sẽ có sai số nhỏ khi số đoạn chia nhỏ.
Thuật toán cầu phương thích nghi bắt đầu bằng việc tính tích phân int đối với toàn bộ đoạn [a, b] và tổng tích phân int12 = int1 + int2 trên 2 đoạn bằng nhau. Dựa trên int và int12 ta tính sai số. Nếu chưa đạt độ chính xác, ta chia đôi mỗi đoạn và lặp lại quá trình tính. Ta dùng hàm adaptivesimpson()
Trang 13Ri,1 = Ji
Trong đó Ji là giá trị xấp xỉ của
b
af(x)dx
∫ có được bằng cách tính theo quy tắc lặp hình thang lần thứ i.
Tích phân Romberg bắt đầu từ R1,1 = J1 (một hình thang) và R2,1 = J2 (hai hìn thang). Sau đó tính R2,2 bằng cách ngoại suy:
2 2,1 1,1
Trang 144 3,2 2,2
Trang 15k 1 a
Trang 17n 2n 1 2i 1 2i‐1
2
θθ
Trang 24
1
2 1
1f(t)dt
Trang 26+ +
Trang 27Như vậy ta có thể viết lại công thức tích phân Gauss ‐ Legendre trên
Trang 28t = roots(hermite(n))ʹ;
Trang 29b(1) = sqrt(pi);
for n = 2:n A(n,:) = A(n ‐ 1,:).*t; %Pt.(7)
if mod(n,2) == 1 b(n) = (n ‐ 2)/2*b(n ‐ 2); %Pt.(14) else
b(n) = 0;
end end
Trang 30n
i n
0 0
Trang 39Trong đó xi làn nghiệm của đa thức Jacobi. Các công thức tính đa thức Jacobi là:
Trang 40w(i) = num/den;
Trang 41n 1 i
1 xw
Trang 44Để tính tích phân của một hàm cụ thể ta dùng chương trình ctchebradau.m:
Trang 45x(free) = xold(free) ‐ ((1‐xold(free))/N1).*(P(free, N1) + P(free, N1+1)) /(P(free, N1) ‐ P(free, N1+1));
Sau đây chúng ta sẽ xây dựng chương trình ctinterp.m để tính tích phân dùng
Trang 46Ta xây dựng hàm int2simpson() để tính tích phân kép bằng công thức Simpson.