Tài liệu Phương trình tích phân: 3
MỞ ĐẦU
Phương trình tích phân là một trong những loại phương trình quan trọng,
xuất phát từ nhiều bài toán ứng dụng. Đặc biệt đối với nhiều phương trình đạo hàm
riêng mà bằng cách dùng hàm Green, người ta quy về việc giải một phương trình
tích phân dạng
( ) ( ) ( ) ( )
D
f t K t s f s ds g tα + − =∫ , (1)
hay
( ) ( ) ( )
D
K t s f s ds g t− =∫ , (2)
với t D′∈ , trong đó nhân K và hàm g cho trước và f là Nn hàm cần tìm.
Tổng quát, (1) được gọi là phương trình tích phân Fredholm loại hai và là
bài toán chỉnh (với các mêtríc thông thường trên các không gian hàm) và (2) là
phương trình loại một và là bài toán không chỉnh.
Trong trường hợp D D′= = ℝ hay nℝ , người ta có thể dùng phép biến đổi
Fourier để giải (1) cũng như xây dựng nghiệm chỉnh hóa tường minh cho (2).
Nội dung luận văn nhằm tìm một cách tiếp cận khác cho các trường hợp
D ≠ ℝ hay nℝ , trong đó các phương trình (1) và (2) được xấp xỉ trực tiếp bằng các
hệ phương trình tuyến tính với Nn ...
56 trang |
Chia sẻ: hunglv | Lượt xem: 2006 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Phương trình tích phân, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
3
MỞ ĐẦU
Phương trình tích phân là một trong những loại phương trình quan trọng,
xuất phát từ nhiều bài tốn ứng dụng. Đặc biệt đối với nhiều phương trình đạo hàm
riêng mà bằng cách dùng hàm Green, người ta quy về việc giải một phương trình
tích phân dạng
( ) ( ) ( ) ( )
D
f t K t s f s ds g tα + − =∫ , (1)
hay
( ) ( ) ( )
D
K t s f s ds g t− =∫ , (2)
với t D′∈ , trong đĩ nhân K và hàm g cho trước và f là Nn hàm cần tìm.
Tổng quát, (1) được gọi là phương trình tích phân Fredholm loại hai và là
bài tốn chỉnh (với các mêtríc thơng thường trên các khơng gian hàm) và (2) là
phương trình loại một và là bài tốn khơng chỉnh.
Trong trường hợp D D′= = ℝ hay nℝ , người ta cĩ thể dùng phép biến đổi
Fourier để giải (1) cũng như xây dựng nghiệm chỉnh hĩa tường minh cho (2).
Nội dung luận văn nhằm tìm một cách tiếp cận khác cho các trường hợp
D ≠ ℝ hay nℝ , trong đĩ các phương trình (1) và (2) được xấp xỉ trực tiếp bằng các
hệ phương trình tuyến tính với Nn cần tìm chính là giá trị của Nn hàm tại các điểm
nút trong miền xác định của nĩ.
Hơn nữa, với một số các điều kiện thích hợp, hệ phương trình tuyến tính
nhận được cĩ ma trận các hệ số thuộc loại đặc biệt : ma trận Toeplitz, ma trận
Toeplitz đối xứng hay ma trận Circulant Toeplitz mà để giải nĩ, luận văn xây dựng
một giải thuật đệ quy nhằm xác định nghiệm. Giải thuật này cĩ ưu điểm về mặt tính
tốn do nĩ cĩ độ phức tạp nhỏ hơn hẳn các giải thuật giải hệ phương trình tuyến
tính thơng thường.
4
Với nội dung chính nêu trên, luận văn bao gồm 3 chương, trong đĩ Chương
1 giới thiệu một số khái niệm và kết quả về các loại ma trận Toeplitz, sự liên hệ
giữa ma trận Toeplitz với phương trình tích phân dạng (1) và (2). Đặc biệt, một số
kết quả về giá trị riêng cũng như vectơ riêng của các loại ma trận này cũng được
khảo sát. Điều này sẽ giúp ích sau này trong việc kiểm sốt các sai số tính tốn khi
giải số bằng máy tính.
Chương 2 nhằm xây dựng một số kết quả mà đặc biệt là xây dựng giải thuật
cũng như chương trình giải xấp xỉ phương trình tích phân Fredholm loại hai.
Chương 3 đưa ra giải thuật đệ quy giải hệ phương trình tuyến tính cĩ ma
trận các hệ số là ma trận loại Toeplitz. Từ đĩ, tính tốn cũng như so sánh trên một
số ví dụ cụ thể cho các hệ phương trình tuyến tính cũng như một số phương trình
tích phân cụ thể.
5
Chương 1
MA TRẬN TOEPLITZ & CIRCULANT TOEPLITZ
Trong chương này, chúng tơi trình bày một số kết quả cho ma trận Toeplitz,
ma trận Toeplitz đối xứng và ma trận Circulant Toeplitz, trong đĩ ma trận loại này
xuất hiện khi ta xấp xỉ một phương trình tích phân loại Fredholm với nhân dạng tích
chập về một hệ phương trình tuyến tính.
1. MA TRẬN TOEPLITZ
1.1. Khái niệm ma trận Toeplitz
Một ma trận vuơng cấp n được gọi là ma trận Toeplitz (hay ma trận hằng
đường chéo), ký hiệu n k, j k, j 0,1, ,n 1T t = − = … , khi k, j k jt t −= , với mọi k, j 0,1, ,n 1= −… ,
nghĩa là ma trận cĩ dạng
0 1 2 (n 1)
1 0 1 (n 2)
n 2 1 0 (n 3)
n 1 n 2 n 3 0
t t t t
t t t t
T t t t t
t t t t
− − − −
− − −
− −
− − −
=
…
…
…
⋮ ⋮ ⋮ ⋱ ⋮
…
(1.1)
Loại ma trận này xuất hiện nhiều trong các bài tốn ứng dụng. Chẳng hạn,
xét phương trình Fredholm loại một,
( ) ( ) ( )
b
a
g t K t,s f s ds= ∫ (1.2)
với ( )f t là Nn hàm cần tìm, ( )g t và ( )K t,s là các hàm cho trước, trong đĩ ( )K t,s
được gọi là nhân của phương trình tích phân.
6
Giả sử a, b hữu hạn. Ta chia đoạn [ ]a ;b thành n 1− đoạn bằng nhau
[ ]0 1s ;s , [ ]1 2s ;s , ..., [ ]n 2 n 1s ;s− − , mỗi đoạn cĩ độ dài b ah
n 1
−
=
−
, bằng các điểm chia
is a ih= + , i 0, n 1= − . Ta cĩ thể xấp xỉ tích phân ở vế phải bằng cơng thức cầu
phương,
( ) ( )
b n 1
i i
i 0a
y s ds w y s
−
=
=∑∫
trong đĩ ( )iw là những trọng số của cơng thức cầu phương. Trường hợp đơn giản
nhất, ta chọn iw 1= . Áp dụng cơng thức trên vào phương trình (1.2), ta được
( ) ( ) ( )n 1 i i
i 0
g t K t,s f s , t [a ;b]
−
=
= ∀ ∈∑ (1.3)
Khi đĩ, tại các điểm jt t= , với j 0, n 1= − , ta cĩ hệ phương trình
( ) ( ) ( )n 1j j i i
i 0
g t K t ,s f s
−
=
=∑
và tại những điểm j js t= , ta được hệ phương trình tuyến tính theo giá trị của Nn
hàm f tại các điểm is ,
( ) ( ) ( )n 1j j i i
i 0
g s K s ,s f s
−
=
=∑ (1.4)
Trong trường hợp nhân K cĩ dạng ( ) ( )K t,s t s= ϕ − , trong đĩ ϕ là một
hàm số thực cho trước, ta cĩ
( )j, i j i j it s s t −= ϕ − = ,
và với ( )j jg s g= , ( )i if s f= , phương trình (1.4) được viết lại thành
n 1 n 1
j j, i i j i i
i 0 i 0
g t f t f
− −
−
= =
= =∑ ∑
7
nghĩa là ta được hệ
o 0 1 1 2 2 (n 1) n 1 0
1 0 0 1 1 2 (n 2) n 1 1
2 0 1 1 0 2 (n 3) n 1 2
n 1 0 n 2 1 n 3 2 0 n 1 n 1
t f t f t f t f g
t f t f t f t f g
t f t f t f t f g
t f t f t f t f g
− − − − −
− − − −
− − −
− − − − −
+ + + + =
+ + + + =
+ + + + =
+ + + + =
…
…
…
……
…
(1.5)
Hệ phương trình (1.5) được viết lại dưới dạng phương trình ma trận
nT f g= ,
trong đĩ
0 1 2 (n 1)
1 0 1 (n 2)
n 2 1 0 (n 3)
n 1 n 2 n 3 0
t t t t
t t t t
T t t t t
t t t t
− − − −
− − −
− −
− − −
=
…
…
…
⋮ ⋮ ⋮ ⋱ ⋮
…
là ma trận Toeplitz cấp n và
0
1
n 1
g
g
g
g
−
=
⋮
là những ma trận đã biết, và
0
1
n 1
f
f
f
f
−
=
⋮
là ma trận Nn cần tìm.
8
Một trường hợp đặc biệt của ma trận Toeplitz là ma trận Toeplitz đối xứng
dạng
0 1 2 n 1
1 0 1 n 2
n 2 1 0 n 3
n 1 n 2 n 3 0
t t t t
t t t t
T t t t t
t t t t
−
−
−
− − −
=
…
…
…
⋮ ⋮ ⋮ ⋱ ⋮
…
.
Chú ý rằng ma trận Toeplitz đối xứng được hồn tồn xác định chỉ bằng n
số thực 0 1 n 1t , t , t − ∈ℝ .
1.2. Vectơ riêng và giá trị riêng
Nhắc lại rằng số phức α được gọi là một trị riêng của ma trận A nếu tồn tại
vectơ x khác vectơ khơng sao cho
Ax x= α (1.6)
và khi đĩ vectơ x được gọi là một vectơ riêng tương ứng với trị riêng α .
Trường hợp đặc biệt khi A là ma trận Hermite, nghĩa là *A A= , trong đĩ
*A là ma trận liên hợp chuyển vị của A thì các trị riêng của A là số thực. Khi đĩ, ta
cĩ thể giả sử dãy giá trị riêng ( )iα của ma trận A là dãy khơng tăng, nghĩa là
0 1 2α ≥ α ≥ α ≥…
Xét dãy ma trận Toeplitz Hermite n k j k, j 0,1,...,n 1T t − = − = ứng với tập giá trị
riêng { }n,i ; i 0,1,2,..., n 1τ = − . Dáng điệu tiệm cận của các giá trị riêng
{ }n,i ; i 0,1,2,...,n 1τ = − này được cho bởi Định lý Szegư với điều kiện tồn tại sự
liên hệ của chuỗi Fourier với các hệ số kt ,
( ) [ ]ikk
k
f t e , 0;2
+∞
λ
=−∞
λ = λ ∈ pi∑ (1.7)
và
9
( )
2
ik
k
0
1
t f e d
2
pi
− λ
= λ λ
pi ∫
. (1.8)
Điều kiện này cĩ nghĩa rằng dãy ( )kt xác định một hàm f và ngược lại,
các kt được xác định từ một hàm số f. Khi đĩ, dãy các ma trận Toeplitz được ký
hiệu bởi ( )nT f . Khi ( )nT f là ma trận Hermite thì *k kt t− = và f là hàm nhận giá trị
thực. Khi đĩ với mỗi hàm F liên tục trên miền xác định của f , định lý Szegư cho
( ) ( )( )2n 1 n,k
n k 0 0
1 1lim F F f d
n 2
pi
−
→∞
=
τ = λ λ
pi
∑ ∫ (1.9)
Chẳng hạn, với ( )F x x= , ta cĩ
( )
2n 1
n,k
n k 0 0
1 1lim f d
n 2
pi
−
→∞
=
τ = λ λ
pi
∑ ∫ (1.10)
và điều này cĩ nghĩa là trung bình cộng các trị riêng của nT (f ) hội tụ về tích phân
của hàm f .
Mặt khác, do vết ( )Tr A là tổng các phần tử trên đường chéo của A và cũng
chính là tổng của các giá trị riêng của A khi A là ma trận Hermite, nên từ (1.10), ta
suy ra
( )( ) ( )2n
n
0
1 1lim Tr T f f d
n 2
pi
→∞
= λ λ
pi ∫
(1.11)
Tương tự, với sF(x) x= , ta được
( )
2n 1
s s
n,k
n k 0 0
1 1lim f d
n 2
pi
−
→∞
=
τ = λ λ
pi
∑ ∫ (1.12)
Nếu f là hàm thực và các giá trị riêng thỏa n,k m 0 ; n,kτ ≥ > ∀ thì do hàm
F(x) ln x= liên tục trên [ )m ; + ∞ , ta suy ra
10
( )
2n 1
n,i
n i 0 0
1 1lim ln ln f d
n 2
pi
−
→∞
=
τ = λ λ
pi
∑ ∫ (1.13)
Mặt khác, do định thức của các ( )nT f chính là tích các giá trị riêng của nĩ,
( )( ) n 1n n,i
i 0
det T f
−
=
= τ∏ ,
(1.13) trở thành
( )( )( ) ( )21 n 1nn n,i
n x i 0 0
1 1lim ln det T f lim ln ln f d
n 2
pi
−
→∞ →∞
=
= τ = λ λ
pi
∑ ∫ (1.14)
Nếu f bị chặn dưới thì tất cả các giá trị riêng của nT (f ) sẽ bị chặn dưới và
(1.14) mơ tả giới hạn của dãy định thức Toeplitz.
2. MA TRẬN CIRCULANT TOEPLITZ
2.1. Khái niệm ma trận Circulant Toeplitz
Ma trận C được gọi là ma trận Cicurlant Toeplitz nếu nĩ là ma trận Toeplitz
cĩ dạng
0 1 2 n 1
n 1 0 1 2
n 1 0 1
1 n 1 0
c c c c
c c c c
C c c c
c c c
−
−
−
−
=
…
⋮
⋱
⋮ ⋱ ⋱
…
(1.15)
ký hiệu ( )k, j j k mod nC C c − = = . Đây là một trường hợp đặc biệt của ma trận Toeplitz,
trong đĩ là mỗi hàng dưới của ma trận là một dịch chuyển tuần hồn của hàng trên.
Ma trận Cicurlant Toeplitz thường dùng để xấp xỉ cũng như biểu diễn dáng
điệu tiệm cận của các ma trận Toeplitz.
11
2.2. Vectơ riêng và giá trị riêng
Giá trị riêng kψ và vectơ riêng (k )y của C là nghiệm phương trình
Cy y= ψ (1.16)
hoặc tương đương với n phương trình sai phân
m 1 n 1
n m k k k m k m
k 0 k m
c y c y y ; m 0, 1, ,n 1
− −
− + −
= =
+ = ψ = −∑ ∑ … . (1.17)
Đổi chỉ số, ta được
n 1 m n 1
k k m k k (n m) m
k 0 k n m
c y c y y ; m 0, 1, ,n 1
− − −
+ − −
= = −
+ = ψ = −∑ ∑ … (1.18)
Ta cĩ thể giải các phương trình sai phân này với cùng một phương pháp
giải các phương trình vi phân bằng cách tìm nghiệm đặc biệt của nĩ. Do phương
trình là tuyến tính với các hệ số hằng, một nghiệm đặc biệt hợp lý là kky = ρ (tương
tự như dạng nghiệm mũ ( ) sty t e= trong phương trình vi phân tuyến tính). Thay vào
(1.18), ta được
n 1 m n 1
k m k (n m) m
k k
k 0 k n m
c c
− − −
+ − −
= = −
ρ + ρ = ψρ∑ ∑
hay
n 1 m n 1
k n k
k k
k 0 k n m
c c
− − −
−
= = −
ρ + ρ ρ = ψ∑ ∑ .
Nếu ta chọn n 1−ρ = , nghĩa là ρ là một căn bậc n phức của đơn vị, ta nhận
được giá trị riêng
n 1
k
k
k 0
c
−
=
ψ = ρ∑ (1.19)
với vectơ riêng tương ứng
12
( )T2 n 11y 1, , , ,
n
−
= ρ ρ ρ… (1.20)
Cụ thể, với
2i m
n
m e
pi
−ρ = , ta cĩ giá trị riêng
2 imkn 1
n
m k
k 0
c e
pi
−
−
=
ψ =∑ (1.21)
và vectơ riêng tương ứng
( )( )2 i n 12 imn n T(m) 1y 1,e , ,e
n
pi −pi
− −
= …
Từ định nghĩa của trị riêng và vectơ riêng,
(m) (m)
mCy y ; m 0,1, ,n 1= ψ = −… (1.22)
và do (1.21) chính là biểu thức Fourier rời rạc (DFT) của dãy k(c ) , ta cĩ thể phục
hồi k(c ) từ các kψ bằng cơng thức biến đổi Fourier ngược. Đặc biệt,
( )
( )
2 imk
n
2 i l k m
n
n 1 n 1 n 1
2 ilm 2 ilm
m k
m 0 m 0 k 0
n 1 n 1
k l
k 0 m 0
1 1
e c e e
n n
1
c e c
n
pi
pi −
− − −
−pi pi
= = =
− −
= =
ψ =
= =
∑ ∑∑
∑ ∑
(1.23)
trong đĩ ta dùng tính chất
2 imk
n
n l
k mod n
m 0
n khi k mod n 0
e n
0 khi k mod n 0
pi
−
=
=
= δ =
≠
∑ (1.24)
với ký hiệu Kronecker
m
1 khi m 0
0 khi m 0
=δ =
≠
Như vậy, giá trị riêng của ma trận Circulant là biến đổi Fourier rời rạc của
dịng đầu tiên của nĩ, và ngược lại, dịng đầu tiên của ma trận Circulant là biến đổi
Fourier rời rạc ngược của các giá trị riêng của nĩ.
13
Phương trình (1.22) cĩ thể được viết lại dưới dạng ma trận
CU U= Ψ (1.25)
trong đĩ
(0) (1) (2) (n 1)
2 imk
n
m,k 0,1, , n 1
U y y y y
1
e
n
−
pi
−
= −
=
=
…
…
là ma trận mà mỗi vectơ cột là một vectơ riêng và ( )kdiagΨ = ψ là ma trận chéo
với các phần tử chéo là 0ψ , 1ψ , ..., n 1−ψ . Hơn nữa (1.24) cho thấy U là ma trận
unita. Thật vậy, ký hiệu phần tử hàng k cột j của *UU bởi k, ja và chú ý rằng k, ja
chính là tích của hàng thứ k của U,
2 imk
n
1
e ;m 0,1, ,n 1
n
pi
−
= −
…
với cột thứ j của *U ,
2 imj
n
1
e ;m 0,1, ,n 1
n
pi
= −
… .
Do đĩ
( )
( )
2 im j kn 1
n
k, j k j mod n
m 0
1
a e
n
pi −
−
−
=
= = δ∑
và ta cĩ *UU I= . Tương tự *U U I= . Do vậy (1.25) trở thành
*C U U= Ψ (1.26)
*U CUΨ = (1.27)
2.3. Các phép tốn trên ma trận Circulant
Từ các kết quả nhận được trong phần trên, ta tổng kết một số tính chất quan
trọng về phép tốn trên ma trận Circulant như sau :
14
Định lý. Mỗi ma trận Circulant C cĩ vectơ riêng
( )( )2 i n 12 imn n T(m) 1y 1,e , ,e
n
pi −pi
− −
= … ,
với m 0, 1, ,n 1= −… , tương ứng với các giá trị riêng
2 imkn 1
n
m k
k 0
c e
pi
−
−
=
ψ =∑
và cĩ thể biểu thị dưới dạng
*C U U= Ψ
trong đĩ U cĩ các vectơ cột chính là các vectơ riêng và Ψ là ma trận chéo
( )kdiagΨ = ψ . Đặc biệt, mọi ma trận Circulant cĩ cùng các vectơ riêng cĩ thể biểu
diễn bởi ma trận U và bất kỳ ma trận C cĩ dạng *C U U= Ψ là ma trận Circulant.
Cho ( )k jC c −= và ( )k jB b −= là hai ma trận Circulant cấp n với các giá trị
riêng tương ứng
2 imkn 1
n
m k
k 0
c e
pi
−
−
=
ψ =∑ ,
2 imkn 1
n
m k
k 0
b e
pi
−
−
=
β =∑ .
Khi đĩ
(1) C và B giao hốn,
*CB BC U U= = γ ,
trong đĩ ( )m mdiagγ = ψ β , và CB cũng là ma trận Circulant.
(2) C B+ là ma trận Circulant và
*C B U U+ = Ω
trong đĩ ( )( )m m k m−Ω = ψ + β δ .
(3) Nếu m 0 ; m 0, 1, ,n 1ψ ≠ = −… thì C là khơng suy biến và
1 1 *C U U− −= Ψ .
15
Chứng minh. Ta cĩ
*C U U= Ψ và *B U U= Φ ,
với ( )mdiagΨ = ψ và ( )mdiagΦ = β .
(1) Ta cĩ
* * * *CB U U U U U U U U BC= Ψ Φ = ΨΦ = ΦΨ =
và vì ΦΨ là ma trận chéo nên ta suy ra CB là ma trận Circulant.
(2) *C B U( )U+ = Ψ + Φ
(3) Nếu Ψ khơng suy biến, thì
1 * * 1 * 1 * *CU U U U U U U U UU I− − −Ψ = Ψ Ψ = ΨΨ = = .
Do đĩ,
1 1 *C U U− −= Ψ .
16
Chương 2
PHƯƠNG TRÌNH FREDHOLM LOẠI HAI
Trong chương này, chúng ta khảo sát phương trình Fredholm loại hai dạng
( ) ( ) ( ) ( )
b
a
f t K t,s f s ds g t= λ +∫ (2.1)
với ( )f t là Nn hàm cần tìm, ( )g t và ( )K t,s là các hàm cho trước, trong đĩ ( )K t,s
được gọi là nhân của phương trình tích phân. Khi ( )g t 0= phương trình tương ứng
được gọi là thuần nhất.
Ta khảo sát 3 bài tốn sau :
Bài tốn 1 : Tìm nghiệm của phương trình khơng thuần nhất (2.1) với λ và
( )g t cho trước.
Bài tốn 2 : Tìm giá trị riêng và vectơ riêng của nhân ( )K t,s , tức là tìm
tham số λ , để phương trình thuần nhất
( ) ( ) ( )
b
a
f t K t,s f s ds= λ∫
cĩ nghiệm khơng tầm thường ( )f t . Giá trị λ nhận được gọi là giá trị riêng của
( )K t,s và hàm ( )f t 0≠ tương ứng được gọi là hàm riêng (vectơ riêng) của
( )K t,s .
Bài tốn 3 : Các giải thuật giải số phương trình Fredholm loại hai và thực
hành một số ví dụ cụ thể.
17
1. TÌM NGHIỆM XẤP XỈ CỦA PHƯƠNG TRÌNH FREDHOLM LOẠI HAI
KHƠNG THUẦN NHẤT
1.1. Phương pháp Nystrom (thay nhân bằng tổng hữu hạn)
Dùng cơng thức cầu phương
( ) ( )b n j j
j 1a
y s ds w y s
=
=∑∫ (2.2)
trong đĩ ( )jw là những trọng số của cơng thức cầu phương và [ ]1 2 ns ,s ,...,s a ; b∈ .
Thay cơng thức (2.2) vào (2.1), ta được phương trình xấp xỉ
( ) ( ) ( ) ( )n j j j
j 1
f t w K t,s f s g t
=
= λ +∑ (2.3)
Khi đĩ, với it t= , i 1,..., n= , ta cĩ phương trình
( ) ( ) ( ) ( )ni j i j j i
j 1
f t w K t ,s f s g t
=
= λ +∑ ; i 1,..., n= (2.4)
Đặt ( )i if f t= , ( )i ig g t= , ( )ij i jK K t ,s= và ij i j jK K w=ɶ thì (2.4) được viết
lại thành hệ phương trình tuyến tính
1 11 1 12 2 1n n 1
2 21 1 22 2 2n n 2
n n1 1 n2 2 nn n n
f K f K f ... K f g
f K f K f ... K f g
...
f K f K f ... K f g
= λ + λ + + λ +
= λ + λ + + λ +
= λ + λ + + λ +
ɶ ɶ ɶ
ɶ ɶ ɶ
ɶ ɶ ɶ
(2.5)
hay dưới dạng phương trình ma trận
( )1 K f g− λ ⋅ =ɶ . (2.6)
Hệ (2.5) là hệ gồm n phương trình tuyến tính, n Nn. Giải hệ phương trình
này, ta được giá trị của hàm f tại những điểm ( )it . Tại những điểm t khác, ta dùng
18
(2.3) làm cơng thức nội suy. Như vậy, biểu thức giải tích của nghiệm gần đúng cĩ
thể lấy ở cơng thức (2.3).
Để tìm các giá trị riêng gần đúng, trong (2.6) cho ig 0= , ta được hệ
phương trình thuần nhất. Để hệ cĩ nghiệm khơng tầm thường thì định thức của hệ
phải bằng khơng. Từ đĩ, ta được phương trình bậc n của λ . Giải phương trình này,
ta được các giá trị riêng gần đúng 1 n, ...,λ λɶ ɶ . Thay các giá trị riêng này vào hệ thuần
nhất tương ứng, ta được các hàm số riêng tương ứng độc lập tuyến tính của ( )K t,s .
Ví dụ 2.1. Giải xấp xỉ phương trình tích phân Fredholm loại hai với nhân
khơng suy biến
( ) ( ) ( )1 t s t
0
f t t 1 e f s ds e t= − + −∫ .
Dùng cơng thức cầu phương Simpson
( ) ( ) ( ) ( )
1
0
1y x dx y 0 4y 0.5 y 1
6
≈ + + ∫ ,
để tìm nghiệm gần đúng tại 1 2 3t 0 ; t 0.5 ; t 1= = = , ta được hệ phương trình tuyến
tính (theo (2.6))
( )
( )
( )
11 1 12 2 13 3 1
21 1 22 2 23 3 2
31 1 32 2 33 3 3
1 K f K f K f g
K f 1 K f K f g
K f K f 1 K f g
− − − =
− + − − =
− − + − =
ɶ ɶ ɶ
ɶ ɶ ɶ
ɶ ɶ ɶ
(2.7)
Do
t t s
1 2 3
1 2 1g(t) e t ;w ,w ,w ;K(t,s) t(1 e )
6 3 6
= − = = = = −
ta suy ra
19
( )
( )
( ) ( )
11 12 13
21
0,25
22
0,5
23
0,5
31 32 33
K K(0,0) 0;K K(0,0.5) 0;K K(0,1) 0
K K(0.5,0) 0;
1K K(0.5,0.5) 1 e ;
2
1K K(0.5,1) 1 e
2
K K(1,0) 0 ; K K(1,0.5) 1 e ; K K(1,1) 1 e
= = = = = =
= =
= = −
= = −
= = = = − = = −
Từ đĩ, ta cĩ
( ) ( )
( ) ( )
11 12 13
0,25 0,5
21 22 23
0,5
31 32 33
K K K 0
1 1K 0 ; K 1 e ; K 1 e
3 12
2 1K 0 ; K 1 e ; K 1 e
3 6
= = =
= = − = −
= = − = −
ɶ ɶ ɶ
ɶ ɶ ɶ
ɶ ɶ ɶ
và
0.5
1 2 3g 1 ; g e 0.5 ; g e 1= = − = − .
Thay vào (2.7) ta được
( ) ( )
( ) ( )
1
0.25 0.5 0.5
2 3
0.5
2 3
f 1
1 1
e 2 f e 1 f e 0.5
3 12
2 1
e 1 f e 5 f e 1
3 6
=
+ + − = −
− + + = −
(2.8)
Với các xấp xỉ
0.25 0.5e 1.2840254 ; e 1.6487213≈ ≈
( ) ( )
( ) ( )
0.25 0.5
0.5
1 1
e 2 1.0947 ; e 1 0.0541
3 12
2 1
e 1 0.4325 ; e 5 1.2864
3 6
+ ≈ − ≈
− ≈ + ≈
20
(2.8) trở thành
1
2 3
2 3
f 1
1.0947f 0.0541f 1.1487
0.4325f 1.2864f 1.7183
=
+ =
+ =
và ta được 1 2 3f 1 ; f 0.9999 ; f 0.9996= = = .
Ta nhận được một biểu thức giải tích của nghiệm xấp xỉ theo cơng thức
(2.3)
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )1 1 1 2 2 2 3 3 3f t w K t,s f s w K t,s f s w K t,s f s g t= + + +
trong đĩ
1 2 3
0.5 t
1 2 1
w , w , w
6 3 6
K(t,0) 0, K(t,0.5) t(1 e ) ,K(t,1) t(1 e )
f (0) 1, f (0.5) 0.9999, f (1) 0.9996
= = =
= = − = −
= = =
và do đĩ
( ) ( ) ( )0.5t t t2 1f t t 1 e 0.9999 t 1 e 0.9996 e t3 6= − + − + −
hay
( ) 0.5t t tf t 0.1668t 0.6666te 0.1666te e= − − − +
Nghiệm này cho các giá trị xấp xỉ tại một vài điểm như sau
( ) ( ) ( ) ( ) ( )f 0 1 ; f 0.5 1.0000 ; f 1 0.9996; f 0.4 1.0000 ; f 0.8 0.9999= = = = = .
Chú ý rằng nghiệm chính xác của phương trình là ( )f t 1= .
21
1.2. Phương pháp thay nhân bằng nhân suy biến
Khi nhân ( )K t,s ở phương trình (2.1) cĩ thể biểu diễn dưới dạng
( ) ( ) ( )n i i
i 1
K t,s A t B s
=
=∑ (2.9)
thì nhân ( )K t,s được gọi là nhân suy biến, chẳng hạn các nhân
( ) t st s, t s, sin t s , e ,...−+ ⋅ + là các nhân suy biến. Chú ý rằng nhân ( ) t sK t,s e= tuy
là nhân khơng suy biến nhưng ta cĩ thể xấp xỉ ( )K t,s bằng nhân suy biến với độ
chính xác tùy ý bằng khai triển Taylor
( )knt s
k 0
t s
e
k!
=
=∑ .
Giả sử ta phải giải phương trình (2.1) với nhân dạng (2.9). Khi đĩ, ta giả sử
các hệ ( ) ( ) ( ){ }1 2 nA t ,A t ,...,A t và ( ) ( ) ( ){ }1 2 nB s ,B s ,...,B s là các hệ độc lập tuyến
tính trên [ ]a ; b (vì trong trường hợp ngược lại, ta cĩ thể rút gọn bớt số hạng trong
tổng ở vế phải của (2.9)). Thay (2.9) vào phương trình (2.1), ta được
( ) ( ) ( ) ( )
b n
i i
i 1a
f t A (t)B s f s ds g t
=
= λ +∑∫
hay
( ) ( ) ( ) ( ) ( )
bn
i i
i 1 a
f t A t B s f s ds g t
=
= λ +∑ ∫ (2.10)
Đặt
( ) ( )
b
i i
a
C B s f s ds= ∫ (2.11)
thì nghiệm của phương trình đã cho cĩ thể được tìm dưới dạng
22
( ) ( ) ( )n i i
i 1
f t g t C A t
=
= + λ∑ (2.12)
Thay (2.12) vào (2.10), ta cĩ
( ) ( ) ( ) ( ) ( ) ( ) ( )
bn n n
i i i i j j
i 1 i 1 j 1a
g t C A t A t B s g s C A s ds g t
= = =
+ λ = λ + λ +
∑ ∑ ∑∫
Rút gọn hai vế, ta suy ra
( ) ( ) ( ) ( ) ( )
bn n n
i i i i j j
i 1 i 1 j 1a
C A t A t B s g s C A s ds
= = =
= + λ
∑ ∑ ∑∫
nghĩa là
( ) ( ) ( ) ( ) ( ) ( ) ( )
b bn n n n
i i i i i j i j
i 1 i 1 i 1 j 1a a
C A t A t B s g s ds A t C B s A s ds
= = = =
= + λ∑ ∑ ∑ ∑∫ ∫ (2.13)
Đặt
( ) ( )
b
i i
a
g B s g s ds= ∫ , ( ) ( )
b
ij i j
a
B s A s dsα = ∫
và vì ( ) ( ) ( ){ }1 2 nA t ,A t ,...,A t độc lập tuyến tính, (2.13) trở thành hệ phương trình
tuyến tính
n
i i j ij
j 1
C g C
=
= + λ α∑
hay
n
i ij j i
j 1
C C g
=
− λ α =∑ (2.14)
Nếu định thức của (2.14) là ( )D 0λ ≠ thì ta tìm được duy nhất các giá trị
iC ; i 1,...,n= và ta cĩ nghiệm duy nhất của phương trình ở cơng thức (2.12).
23
Nếu ( )D 0λ = khi kλ = λ , thì kλ là giá trị riêng của ( )K t,s và ta tìm
nghiệm của (2.14) ứng với ig 0= , ta sẽ được hệ hàm số riêng độc lập tuyến tính của
( )K t,s tương ứng với kλ .
Như vậy, thuật tốn giải phương trình (2.1) với nhân suy biến gồm các
bước sau :
Bước 1. Tính các tích phân
( ) ( )
b
i i
a
g B s g s ds= ∫ ; ( ) ( )
b
ij i j
a
B s A s dsα = ∫ ; ( )i, j 1,...,n=
Bước 2. Giải hệ phương trình tuyến tính
n
i ij j i
j 1
C C g
=
− λ α =∑ ; ( )i 1,...,n=
Nếu định thức của hệ khác khơng, thì tồn tại duy nhất iC ( )i 1,...,n=
Bước 3. Nghiệm cần tìm cĩ dạng
( ) ( ) ( )n i i
i 1
f t g t C A t
=
= + λ∑ .
Ví dụ 2.2. Giải phương trình tích phân Fredholm loại hai với nhân suy biến,
( ) ( ) ( )1 t s t
0
f t e f s ds e t+= − + +∫ .
Ta cĩ nhân ( ) t s t sK t,s e e .e+= − = − cho ( ) tA t e= − và ( ) sB s e= .
Ta tìm nghiệm của phương trình dưới dạng,
( ) ( )t t tf t e t C A t e t Ce= + + ⋅ = + − .
Ta cĩ
( ) ( )1 1 1s s s 2s 2
0 0 0
1g s e e ds se ds e ds e 1
2
= + = + = +∫ ∫ ∫
24
( )1 1s s 2s 2
0 0
1
e e ds e ds 1 e
2
α = − = − = −∫ ∫
và ta cĩ phương trình
( ) ( )2 21 1C e 1 C 1 e C 1
2 2
= + + − ⇔ =
Vậy, nghiệm của phương trình là
t tf (t) e t e t= + − = .
Ví dụ 2.3. Ta khảo sát lại ví dụ 2.1 với phương trình
( ) ( ) ( )1 t s t
0
f t t 1 e f s ds e t= − + −∫ .
Ta xấp xỉ ( )K t,s bằng cơng thức Taylor,
2 2 3 3 2 3
t s 2 3 4t s t s s st (1 e ) t 1 1 ts t ( s) t t
2 6 2 6
− ≈ − + + + = − + − + −
Thay vào phương trình ban đầu, ta được
( ) ( )
1 2 3
2 3 4 t
0
s sf t t ( s) t t f s ds e t
2 6
= − + − + − + −
∫
và ta nhận được phương trình Fredholm loại hai với nhân suy biến.
Ta tìm nghiệm của phương trình dưới dạng
( ) t 2 3 41 2 3f t e t C t C t C t= − + + + ,
trong đĩ 1 2 3C ,C ,C là nghiệm của hệ (theo (2.14))
1 1 11 2 12 3 13 1
2 1 21 2 22 3 23 2
3 1 31 2 32 3 33 3
C (C C C ) g
C (C C C ) g
C (C C C ) g
− α + α + α =
− α + α + α =
− α + α + α =
hay
25
11 1 12 2 13 3 1
21 1 22 2 23 3 2
31 1 32 2 33 3 3
(1 )C C C g
C (1 )C C g
C C (1 )C g
− α − α − α =
−α + − α − α =
−α − α + − α =
Ta được
1
s
1
0
1 2g (e s)sds 1
3 3
= − − = − − = −
∫
1 2
s
2
0
s e 9g (e s) ds
2 2 8
= − − = − +∫
1 3
s
3
0
s 2e 29g (e s) ds
6 6 30
= − − = −∫
1 1 1
3 4 5
11 12 13
0 0 0
1 1 1
s ds ; s ds ; s ds
4 5 6
α = − = − α = − = − α = − = −∫ ∫ ∫
1 1 1
4 5 6
21 22 23
0 0 0
1 1 1 1 1 1
s ds ; s ds ; s ds
2 10 2 12 2 14
α = − = − α = − = − α = − = −∫ ∫ ∫
1 1 1
5 6 7
31 32 33
0 0 0
1 1 1 1 1 1
s ds ; s ds ; s ds
6 36 6 42 6 48
α = − = − α = − = − α = − = −∫ ∫ ∫
Thay các ig và ijα vào hệ phương trình trên, ta được
1 2 3
1 2 3
1 2 3
5 1 1 2C C C
4 5 6 3
1 13 1 e 9C C C
10 12 14 2 8
1 1 49 2e 29C C C
36 42 48 6 30
+ + = −
+ + = − +
+ + = −
Giải hệ này, ta được (lấy e 2.7183≈ )
26
1
2
3
C 0.5010
C 0.1671
C 0.0418
= −
= −
= −
và ta nhận được một biểu thức giải tích của nghiệm xấp xỉ
( ) t 2 3 4f t e t 0.5010t 0.1671t 0.0418t= − − − − .
Các giá trị xấp xỉ của nghiệm tại một vài giá trị là
( ) ( ) ( ) ( ) ( )f 0 1 ; f 0.5 1.0000 ; f 1 1.0084; f 0.4 0.9999 ; f 0.8 1.0022= = = = = .
Nhắc lại rằng, nghiệm chính xác của phương trình là ( )f t 1= .
2. CHƯƠNG TRÌNH TÍNH XẤP XỈ NGHIỆM PHƯƠNG TRÌNH TÍCH
PHÂN FREDHOLM LOẠI HAI
Trong phần này, chúng tơi đưa ra hai chương trình dùng để giải các phương
trình Fredholm tuyến tính loại hai. Chương trình fred2 được cài đặt giải hệ (2.6)
bằng phân rã LU. Chương trình fredin nhằm tính nội suy Nystrom của phương
trình (2.3).
2.1. Cấu trúc chương trình
Các chương trình được sử dụng gồm fred2 và fredin.
Chương trình fred2 cĩ dữ liệu đầu vào là một con trỏ hàm g trả về ( )g t
và một con trỏ hàm khác ( )ak trả về ( )K t,s , dữ liệu đầu ra là hàm nghiệm f tại
các điểm quadrature, các điểm quadrature và trọng số. Các dữ liệu ra này được sử
dụng cho chương trình fredin nhằm tính nội suy Nystrom của phương trình (2.3)
từ đĩ trả về giá trị của f tại bất kỳ điểm nào trong đoạn [ ]a ; b .
2.1.1. Chương trình fred2
Chương trình này nhằm giải phương trình tích phân Fredholm loại hai cĩ
dạng
27
( ) ( ) ( ) ( )
b
a
f t K t,s f s ds g t= λ +∫ .
Input :
a, b : Giới hạn trên và giới hạn dưới của tích phân,
n : Số điểm được sử dụng trong luật xấp xỉ tích phân,
con trỏ hàm g : Trỏ đến hàm ( )g t ,
con trỏ hàm ak : Trỏ đến hàm ( )K t,s .
Output :
mảng t cĩ n phần tử : Các hệ số it của luật xấp xỉ tích phân Gaussian,
mảng f cĩ n phần tử : Giá trị hàm nghiệm f tại các điểm it ,
mảng w cĩ n phần tử : Các trọng số Gaussian iw .
Mã lệnh chương trình :
void fred2(int n, float a, float b, float t[], float f[],
float w[],float (*g)(float), float (*ak)(float, float))
{
int i,j,*indx; (1)
float d,**omk;
indx=ivector(1,n); (2)
omk=matrix(1,n,1,n); (3)
gauleg(a,b,t,w,n); (4)
for (i=1;i<=n;i++) { (5)
for (j=1;j<=n;j++) (6)
omk[i][j]=(float)(i == j)-(*ak)(t[i],t[j])*w[j];
f[i]=(*g)(t[i]); (7)
}
ludcmp(omk,n,indx,&d); (8)
lubksb(omk,n,indx,f); (9)
28
free_matrix(omk,1,n,1,n); (10)
free_ivector(indx,1,n);
}
Chú thích
(1) : Khai báo các biến sử dụng trong chương trình.
(2) : Gán indx là vector (mảng một chiều) cĩ n phần tử, indx được sử
dụng cho bước (8).
(3) : Gán omk là ma trận (mảng hai chiều) cĩ kích thước 1..n 1..n× .
(4) : Gọi chương trình gauleg để lấy các hệ số it và trọng số iw của cơng
thức xấp xỉ tích phân cho n điểm Gauss-Legendre.
(5), (6) : Vịng lặp hai chiều để gán ma trận omk là ma trận ( )1 K− λ ɶ .
(5), (7) : Với i chạy từ 1 đến n, gán [ ]f i bằng ( )ig t . Lúc này f sẽ là cột tự
do g trong hệ ( )1 K f g− λ ⋅ =ɶ .
(8) : Gọi chương trình ludcmp để thực hiện phân rã LU ma trận hệ số của
hệ ( )1 K f g− λ ⋅ =ɶ . Chương trình này nhận vào ma trận vuơng omk cấp n, và trả về
kết quả phân rã trở lại trong omk, mảng chứa chỉ số indx và d. Các kết quả trả về
này sẽ được sử dụng cho chương trình lubksb để thực hiện giải hệ với một cột tự
do cụ thể.
(9) : Gọi chương trình lubksb để giải hệ với cột tự do chứa trong f (đã
được gán ở bước (7)). Nghiệm trả về được lưu trở lại trong f. Lúc này, [ ]f i cho ta
giá trị của hàm nghiệm f tại các điểm quadrature it . Các giá trị này sẽ là căn cứ cho
chương trình fredin thực hiện nội suy Nystrom để tính giá trị hàm nghiệm f tại
một điểm bất kỳ trong đoạn [ ]a ; b .
(10) : Giải phĩng các biến trung gian, và kết thúc chương trình. Các kết quả
output của chương trình lúc này được chứa trong các mảng t, f và w.
29
2.1.2. Chương trình fredin
Chương trình này nhằm nội suy giá trị của hàm nghiệm f tại một điểm x
bất kỳ trong đoạn [ ]a ; b bằng cơng thức nội suy Nystrom (2.3).
Input :
a, b : Giới hạn trên và giới hạn dưới của tích phân,
n : Số điểm được sử dụng trong luật xấp xỉ tích phân,
con trỏ hàm g : Trỏ đến hàm ( )g t ,
con trỏ hàm ak : Trỏ đến hàm ( )K t,s ,
mảng t cĩ n phần tử : Các hệ số it của luật xấp xỉ tích phân Gaussian,
mảng f cĩ n phần tử : Giá trị hàm nghiệm f tại các điểm it ,
mảng w cĩ n phần tử : Các trọng số Gaussian iw .
(t, f, và w là các Output của chương trình fred2)
Output :
Giá trị nội suy.
Mã lệnh chương trình :
float fredin(float x, int n, float a, float b, float t[], float f[],
float w[], float (*g)(float), float (*ak)(float, float))
{
int i;
float sum=0.0;
for (i=1;i<=n;i++) sum += (*ak)(x,t[i])*w[i]*f[i];
return (*g)(x)+sum;
}
30
2.2. Kết quả thử nghiệm
Ví dụ 2.4. Giải xấp xỉ phương trình tích phân Fredholm loại hai với nhân
suy biến
( ) ( ) ( )1 t s t
0
f t e f s ds e t+= − + +∫
trong đĩ ( )f t là Nn hàm cần tìm, ( ) t sK t,s e += − là nhân, ( ) tg t e t= + . Phương
trình này cĩ nghiệm chính xác là ( )f t t= .
Mã lệnh chương trình
DP g(const DP t) (1)
{
const DP EE = 2.71828;
return (pow(EE,t)+t);
}
DP ak(const DP t, const DP s) (2)
{
const DP EE = 2.71828;
return -pow(EE,t+s);
}
int main(void)
{
const int N=8; (3)
DP a=0.0,b=1.0,x,ans; (4)
Vec_DP t(N),f(N),w(N); (5)
NR::fred2(a,b,t,f,w,g,ak); (6)
cout << fixed << setprecision (6);(7)
cout << "Vi du 1" << endl;
for (;;) { (8)
cout << "Nhap vao gia tri x trong khoang tu 0 den 1" << endl;
(8.1)
cin >> x; (8.2)
if (x < 0.0) break; (8.3)
31
ans=NR::fredin(x,a,b,t,f,w,g,ak); (8.4)
cout << "x da nhap, ket qua f(x) xap xi, ket qua f(x) thuc" <<
endl;
cout << setw(10) << x << setw(11) << ans; (8.5)
cout << setw(11) << x << endl << endl; (8.6)
}
return 0; (9)
}
Chú thích
(1) : Định nghĩa hàm ( ) tg t e t= + .
(2) : Định nghĩa hàm ( ) t sK t,s e += − .
(3) : Khai báo hằng số N bằng 8, là số điểm của luật xấp xỉ tích phân.
(4) : Khai báo các giới hạn trên, giới hạn dưới của tích phân, biến x, ans sẽ
được dùng khi chạy thử nghiệm kết quả ở bước (8).
(5) : Khai báo các vectơ t, f, w cĩ N phần tử.
(6) : Gọi chương trình fred2, các kết quả trả về được lưu trong các vectơ
t, f, w.
(7), (8) : Yêu cầu người sử dụng nhập vào một giá trị x để thử nghiệm (8.1,
8.2) (nếu x bé hơn 0 thì kết thúc chương trình (8.3)). Sau đĩ chương trình sẽ gọi
chương trình fredin tính nội suy Nystrom để cĩ xấp xỉ của ( )f x (được trả về
trong biến ans) (8.4), và xuất các kết quả gồm : giá trị x được nhập vào, giá trị xấp
xỉ ( )f x (8.5), giá trị ( )f x thực (trong ví dụ này, hàm nghiệm chính xác là
( )f x x= ) (8.6).
(9) : Kết thúc chương trình.
Với một số giá trị x = 0.2 ; 0.5 ; 0.8, chương trình nêu trên cho ta kết quả
như sau :
32
Ví dụ 2.5. Giải xấp xỉ phương trình tích phân Fredholm loại hai với nhân
khơng suy biến
( ) ( ) ( )1 t s t
0
f t t 1 e f s ds e t= − + −∫
trong đĩ, ( )f t là Nn hàm cần tìm, ( ) ( )t sK t,s t 1 e= − là nhân, ( ) tg t e t= − . Phương
trình này cĩ nghiệm chính xác là ( )f t 1= .
Mã lệnh chương trình
DP g(const DP t)
{
const DP EE = 2.71828;
return (pow(EE,t)-t);
}
DP ak(const DP t, const DP s)
{
const DP EE = 2.71828;
return t*(1-pow(EE,t*s));
}
int main(void)
{
const int N=8;
DP a=0.0,b=1.0,x,ans;
Vec_DP t(N),f(N),w(N);
NR::fred2(a,b,t,f,w,g,ak);
33
cout << fixed << setprecision(6);
cout << "Vi du 2" << endl;
for (;;) {
cout << "Nhap vao gia tri x trong khoang tu 0 den 1" << endl;
cin >> x;
if (x < 0.0) break;
ans=NR::fredin(x,a,b,t,f,w,g,ak);
cout << "x da nhap, ket qua f(x) xap xi, ket qua f(x) thuc" <<
endl;
cout << setw(10) << x << setw(11) << ans;
cout << setw(11) << 1 << endl << endl;
}
return 0;
}
Với một số giá trị x = 0.2 ; 0.4 ; 0.7, chương trình cho kết quả sau
Ví dụ 2.6. Giải xấp xỉ phương trình tích phân Fredholm loại hai với nhân
dạng tích chập
( ) ( )
1
t t s
0
f t e t e f s ds−= + − ∫
trong đĩ, ( )f t là Nn hàm cần tìm, ( ) ( )t sK t,s e t s−= − = ϕ − là nhân, ( ) tg t e t= + .
Phương trình này cĩ nghiệm chính xác là ( ) t 1f t t e −= + .
34
Mã lệnh chương trình
DP g(const DP t)
{
const DP EE = 2.71828;
return (pow(EE,t)+t);
}
DP ak(const DP t, const DP s)
{
const DP EE = 2.71828;
return -pow(EE,t-s);
}
int main(void)
{
const DP EE = 2.71828;
const int N=8;
DP a=0.0,b=1.0,x,ans;
Vec_DP t(N),f(N),w(N);
NR::fred2(a,b,t,f,w,g,ak);
cout << fixed << setprecision(6);
cout << "Vi du 3" << endl;
for (;;) {
cout << "Nhap vao gia tri x trong khoang tu 0 den 1" << endl;
cin >> x;
if (x < 0.0) break;
ans=NR::fredin(x,a,b,t,f,w,g,ak);
cout << "x da nhap, ket qua f(x) xap xi, ket qua f(x) thuc" <<
endl;
cout << setw(10) << x << setw(11) << ans;
cout << setw(11) << (x+(1.0/EE)*pow(EE,x)) << endl << endl;
}
return 0;
}
Với một số giá trị x = 0.2 ; 0.4 ; 0.7 ; 0.9, chương trình cho kết quả
35
Ví dụ 2.7. Giải xấp xỉ phương trình tích phân Fredholm loại hai với nhân
dạng tích chập và cĩ nhiễu tham số
( ) ( ) ( )
1
2
0
1 f t t s f s ds t t
n
= − + +∫
hay
( ) ( ) ( ) ( )1 2
0
f t n t s f s ds n t t= − + +∫ ,
trong đĩ ( )f t là Nn hàm cần tìm, ( ) ( ) ( )K t,s n t s t s= − = ϕ − là nhân,
( ) ( )2g t n t t= + . Phương trình này cĩ nghiệm chính xác là
( ) ( )
3 2 3 2
2
2 2
n 10n 12n n 42nf t nt t
n 12 6 n 12
− + + −
= + + + +
.
Với n 10= ta cĩ ( ) 2 15 200f t 10t t
14 42
= + − .
Với n 100= ta cĩ ( ) ( )2f t 100t 89,77227327 t 9,65508057= − + .
Với n 1000= ta cĩ ( ) ( )2 957,9885041f t 1000t 989,9761203 t
6
= − + .
36
Mã lệnh chương trình
DP n = 100;
DP g(const DP t)
{
return n*(t*t+t);
}
DP ak(const DP t, const DP s)
{
return n*(t-s);
}
int main(void)
{
const int N=8;
DP a=0.0,b=1.0,x,ans;
Vec_DP t(N),f(N),w(N);
NR::fred2(a,b,t,f,w,g,ak);
cout << fixed << setprecision(6);
cout << "Vi du 4 voi N = " << (int)n << endl;
for (;;) {
cout << "Nhap vao gia tri x trong khoang tu 0 den 1" << endl;
cin >> x;
if (x < 0.0) break;
ans=NR::fredin(x,a,b,t,f,w,g,ak);
cout << "x da nhap, ket qua f(x) xap xi, ket qua f(x) thuc" <<
endl;
cout << setw(10) << x << setw(11) << ans;
DP tmp = n*x*x + ((-n*n*n+10*n*n+12*n)/(n*n+12))*x + (n*n*n-
42*n*n)/(6*(n*n+12));
cout << setw(11) << tmp << endl << endl;
}
return 0;
}
Với n 10= và các giá trị x = 0.2 ; 0.4 ; 0.7 ; 0.9, chương trình cho
37
Với n 100= và các giá trị x = 0.2 ; 0.4 ; 0.7 ; 0.9, ta được
Với n 1000= và các giá trị x = 0.2 ; 0.4 ; 0.7 ; 0.9, ta cĩ
38
Chương 3
THUẬT TỐN TOEPLITZ
Trong chương này, chúng ta trình bày giải thuật giải số hệ phương trình
tuyến tính AX B= , với A là ma trận Toeplitz đối xứng nhằm ứng dụng vào việc
giải số các phương trình Fredholm loại một và Fredholm loại hai cĩ nhân là các
hàm dạng tích chập.
1. THUẬT TỐN TOEPLITZ
Trước hết, ta xét hệ phương trình
0 0 1 1 n n 0
1 0 0 1 n 1 n 1
n 0 n 1 1 0 n n
t f t f t f g
t f t f t f g
t f t f t f g
−
−
+ + + =
+ + + =
+ + + =
…
…
…
…
(3.1)
hay dưới dạng ma trận
nT f g=
với ma trận
0 1 n
1 0 n 1
n
n n 1 0
t t t
t t t
T
t t t
−
−
=
…
…
…
…
là ma trận Toeplitz đối xứng cấp n 1+ và ma trận cột [ ]T0 1 ng g g ... g= là những
ma trận đã biết, cịn ma trận cột [ ]T0 1 nf f f ... f= là ma trận Nn hàm cần tìm.
Ta xây dựng [ ]Tn n0 n1 nnf f f f= … là nghiệm của hệ phương trình (3.1)
bằng quy nạp theo n như sau
39
1. Với k 0= , đặt
00 0 0 0 1
0
00 0 00 1
0
a 1, t , t
gf , f t
t
= α = β =
= γ =
2. Giả sử ta cĩ [ ]Tk k0 k1 kkf f f f= … là nghiệm của hệ (3.1) với n k= ,
nghĩa là ta cĩ
k0 k1 kk k ka , a , , a ; ,α β…
và
k0 k1 kk kf , f , , f ; γ…
sao cho các hệ (3.2) và (3.3) sau đây thỏa
k0 0 k1 1 kk k k
k0 1 k1 0 kk k 1
k0 k k1 k 1 kk 0
k0 k 1 k1 k kk 1 k
a t a t a t
a t a t a t 0
a t a t a t 0
a t a t a t
−
−
+
+ + + = α
+ + + =
+ + + =
+ + + = β
…
…
…
…
…
(3.2)
k0 0 k1 1 kk k 0
k0 1 k1 0 kk k 1 1
k0 k k1 k 1 kk 0 k
k0 k 1 k1 k kk 1 k
f t f t f t g
f t f t f t g
f t f t f t g
f t f t f t
−
−
+
+ + + =
+ + + =
+ + + =
+ + + = γ
…
…
…
…
…
(3.3)
Ta cần chứng minh
T
k 1 k 1,0 k 1,1 k 1,k 1f f f f+ + + + + = … là nghiệm của (3.1)
với n k 1= + .
a) Trước hết, ta tính
k 1,0 k 1,1 k 1,k k 1,k 1 k 1 k 1a , a , , a , a ; ,+ + + + + + +α β…
bằng cách đặt
40
k 1,0 k0
k 1,1 k1 k kk
k 1,k kk k k1
k 1,k 1 k k0
a a
a a p a
a a p a
a p a
+
+
+
+ +
=
= +
= +
=
… (3.4)
và
k 1 k k k
k 1 k 1,0 k 2 k 1,1 k 1 k 1,k 1 1
p
a t a t a t
+
+ + + + + + +
α = α + β
β = + + + …
(3.5)
với
k
k
k
p β= −
α
(3.6)
thì ta cần chứng tỏ rằng
k 1,0 0 k 1,1 1 k 1,k 1 k 1 k 1
k 1,0 1 k 1,1 0 k 1,k 1 k
k 1,0 k 1 k 1,1 k k 1,k 1 0
k 1,0 k 2 k 1,1 k 1 k 2,k 2 1 k 1
a t a t a t
a t a t a t 0
a t a t a t 0
a t a t a t
+ + + + + +
+ + + +
+ + + + +
+ + + + + + +
+ + + = α
+ + + =
+ + + =
+ + + = β
…
…
…
…
…
(3.7)
Thật vậy, để kiểm chứng (3.7), ta cĩ
k 1,0 0 k 1,1 1 k 1,k k k 1,k 1 k 1a t a t a t a t+ + + + + ++ + + +…
k0 0 k1 k kk 1 kk k k1 k k k0 k 1a t (a p a )t (a p a )t p a t += + + + + + +…
k0 0 k1 1 kk k k k0 k 1 k1 k kk 1(a t a t a t ) p (a t a t a t )+= + + + + + + +… …
k k k k 1p += α + β = α
k 1,0 1 k 1,1 0 k 1,k k 1 k 1,k 1 ka t a t a t a t+ + + − + ++ + + +…
k0 1 k1 k kk 0 kk k k1 k 1 k k0 ka t (a p a )t (a p a )t p a t−= + + + + + +…
41
k0 1 k1 0 kk k 1 k k0 k k1 k 1 kk 0(a t a t a t ) p (a t a t a t )− −= + + + + + + +… …
k0 p 0 0= + =
k 1,0 k 1 k 1,1 k k 1,k 1 k 1,k 1 0a t a t a t a t+ + + + + ++ + + +…
k0 k 1 k1 k kk k kk k k1 1 k k0 0a t (a p a )t (a p a )t p a t+= + + + + + +…
k0 k 1 k1 k kk 1 k k0 0 k1 1 kk k(a t a t a t ) p (a t a t a t )+= + + + + + + +… …
k
k k
k
0β= β − α =
α
k 1,0 k 2 k 1,1 k 1 k 2,k 2 1 k 1a t a t a t+ + + + + + ++ + + = β…
theo (3.5)
b) Tiếp theo, ta tính
k 1,0 k 1,1 k 1,k k 1,k 1 k 1f , f , , f , f ;+ + + + + +γ…
bằng cách đặt
k 1,0 k0 k k 1,k 1
k 1,1 k1 k k 1,k
k 1,k kk k k 1,1
k 1,k 1 k k 1,0
f f q a
f f q a
f f q a
f q a
+ + +
+ +
+ +
+ + +
= +
= +
= +
=
… (3.8)
và
k 1 k 1,0 k 2 k 1,1 k 1 k 1,k 1 1f t f t f t+ + + + + + +γ = + + +…
với
k 1 k
k
k 1
gq +
+
− γ
=
α
(3.9)
Khi đĩ, ta cần phải chứng tỏ rằng
42
k 1,0 0 k 1,1 1 k 1,k 1 k 1 0
k 1,0 1 k 1,1 0 k 1,k 1 k 1
k 1,0 k 1 k 1,1 k k 1,k 1 0 k 1
k 1,0 k 2 k 1,1 k 1 k 1,k 1 1 k 1
f t f t f t g
f t f t f t g
f t f t f t g
f t f t f t
+ + + + +
+ + + +
+ + + + + +
+ + + + + + +
+ + + =
+ + + =
+ + + =
+ + + = γ
…
…
…
…
…
(3.10)
Thật vậy, ta cĩ
k 1,0 0 k 1,1 1 k 1,k k k 1,k 1 k 1f t f t f t f t+ + + + + ++ + + +…
k0 k k 1,k 1 0 k1 k k 1,k 1 kk k k 1,1 k k k 1,0 k 1(f q a )t (f q a )t (f q a )t q a t+ + + + + += + + + + + + +…
k0 0 k1 1 kk k k k 1,0 k 1 k 1,1 k k 1,k 1 0(f t f t f t ) q (a t a t a t )+ + + + += + + + + + + +… …
0 k 0g q .0 g= + =
k 1,0 1 k 1,1 0 k 1,k k 1 k 1,k 1 kf t f t f t f t+ + + − + ++ + + +…
k0 k k 1,k 1 1 k1 k k 1,k 0 kk k k 1,1 k 1 k k 1,0 k(f q a )t (f q a )t (f q a )t q a t+ + + + − += + + + + + + +…
k0 1 k1 0 kk k 1 k k 1,0 k k 1,1 k 1 k 1,k 1 1(f t f t f t ) q (a t a t a t )− + + − + += + + + + + + +… …
1 k 1g q .0 g= + =
k 1,0 k 1 k 1,1 k k 1,k 1 k 1,k 1 0f t f t f t f t+ + + + + ++ + + +…
k0 k 1 k1 k kk 1 k k 1,0 0 k 1,1 1 k 1,k 1 k 1(f t f t f t ) q (a t a t a t )+ + + + + += + + + + + + +… …
k 1 k
k k k 1 k k 1 k 1
k 1
gq g++ + +
+
− γ
= γ + α = γ + α =
α
Từ đĩ, ta xây dựng được thuật tốn giải hệ phương trình (3.1) gồm các
bước như sau :
Bước 1. Với k = 0, đặt
43
00 0 0 0 1
0
00 0 00 1
0
a 1, t , t
gf , f t
t
= α = β =
= γ =
Bước 2. Giả sử, ta đã xây dựng được
k0 k1 kk k k
k0 k1 kk k
a , a , , a ; ,
f , f , , f ;
α β
γ
…
…
thì ta đặt
k 1,0 k0
k 1,1 k1 k kk
k 1,k kk k k1
k 1,k 1 k k0
a a
a a p a
a a p a
a p a
+
+
+
+ +
=
= +
= +
=
…
k 1 k k kp+α = α + β
với
k
k
k
k 1 k
k
k 1
p
gq +
+
β
= − α
− γ
=
α
Bước 3. Nghiệm của hệ phương trình là
T
k 1 k 1,0 k 1,1 k 1,k 1f f f f+ + + + + = …
với
k 1,0 k0 k k 1,k 1
k 1,1 k1 k k 1,k
k 1,k kk k k 1,1
k 1,k 1 k k 1,0
f f q a
f f q a
f f q a
f q a
+ + +
+ +
+ +
+ + +
= +
= +
= +
=
…
44
2. CHƯƠNG TRÌNH GIẢI HỆ PHƯƠNG TRÌNH TOEPLITZ
Chương trình mytoeplitz
Input :
n : Cấp của ma trận Toeplitz.
t : Mảng một chiều gồm n phần tử it ( )i 0,...,n 1= − đại diện cho n đường
chéo của ma trận Toeplitz đối xứng.
g : Mảng một chiều gồm n phần tử ứng với vectơ cột hệ số tự do của hệ cần
giải.
Output :
Mảng f cĩ n phần tử ứng với vectơ nghiệm tìm được.
Mã lệnh chương trình :
void NR::mytoeplitz(float[] t, float[] g, float[] f, int n)
{
int i;
float alpha,beta,gamma,p,q; (1)
float *a, *anext; (2)
a = fvector(1,n);
anext = fvector(1,n);
if (n<2) (3)
{
nrerror("Size of n must be larger than 1");
return;
}
a[0] = 1; (4)
alpha = t[0];
beta = t[1];
f[0] = g[0]/t[0];
gamma = f[0]*t[1];
for(int k=1;k<n;k++) (5)
45
{
p = -beta/alpha; (5.1)
anext[0] = a[0]; (5.2)
for(i=1;i<k;i++)
{
anext[i] = a[i] + p*a[k-i];
}
anext[k] = a[0]*p;
alpha = alpha + p*beta; (5.3)
beta = 0; (5.4)
for(i=0;i<=k;i++)
{
beta += anext[i]*t[k+1-i];
}
q = (g[k] - gamma)/alpha; (5.5)
for(i=0;i<k;i++) (5.6)
{
f[i] = f[i] + q*anext[k-i];
}
f[k] = q*anext[0];
gamma = 0; (5.7)
for(i=0;i<=k;i++)
{
gamma += f[i]*t[k+1-i];
}
for(i=0;i<=k;i++)
{
a[i] = anext[i];
}
}
}
46
Chú thích
(1) : Khai báo các biến sử dụng trong chương trình. alpha ứng với kα ,
beta ứng với kβ , gamma ứng với kγ , p ứng với kp , q ứng với kq .
(2) : Khai báo mảng a và anext cĩ n phần tử, [ ]ia (phần tử thứ i của
mảng a, i 0..n 1= − ) ứng với kia , [i]anext ứng với k 1, ia + .
(3) : Kiểm tra nếu n 2< thì thốt khỏi chương trình.
(4) : Gán các giá trị khởi tạo : 00a 1= , 0tα = , 1tβ = , 000
0
gf
t
= , 0 00 1f tγ = .
(5) : Cho vịng lặp với k chạy từ 1 đến n 1− , lần lượt tính các kia , kα , kβ ,
kif , kγ .
(5.1) : Tính kk
k
p β= −
α
.
(5.2) : Tính k 1,0 k0a a+ = , k 1,1 k1 k kka a p a+ = + , ..., k 1, k kk k k1a a p a+ = + ,
k 1,k 1 k0 ka a p+ + = .
(5.3) : Tính k 1 k k kp+α = α + β .
(5.4) : Tính k 1+β theo cơng thức k 1 k 1,0 k 2 k 1,1 k 1 k 1,k 1 1a t a t ... a t+ + + + + + +β = + + +
(giá trị của k 1+β được gán trở lại vào biến beta vì phần sau ta khơng cịn dùng đến
kβ nữa).
(5.5) : Tính k 1 kk
k 1
gq +
+
− γ
=
α
.
(5.6) : Tính các k 1,if + theo cơng thức : k 1,0 k0 k k 1,k 1f f q a+ + += + ,
k 1,1 k1 k k 1, kf f q a+ += + , ..., k 1,k kk k k 1,1f f q a+ += + , k 1, k 1 k k 1,0f q a+ + += .
(5.7) : Tính k 1 k 1,0 k 2 k 1,1 k 1 k 1, k 1 1f t f t ... f t+ + + + + + +γ = + + + .
47
3. KẾT QUẢ THỬ NGHIỆM
3.1. Kết quả thử nghiệm đối với hệ Toeplitz
Ví dụ 3.1. Xét lại hệ phương trình (3.1)
nT f g=
trong đĩ ma trận
0 1 n
1 0 n 1
n
n n 1 0
t t t
t t t
T
t t t
−
−
=
…
…
…
…
là ma trận Toeplitz đối xứng cấp n 1+ và ma trận cột [ ]T0 1 ng g g ... g= .
a) Với n = 9 và
( )0 1 9 0.000001,0.111111,0.222222,0.333333,0.444444,t , t ,..., t 0.555556,0.666667,0.777778,0.888889,1.0
=
[ ]T0 1 ng g g ... g=
T0.132120, 0.102953, 0.084845, 0.076632, 0.077274,
0.085841, 0.101500, 0.123500, 0.151179, 0.183940
=
Nếu giải bằng thuật giải Toeplitz thì nghiệm của hệ là
T0.026777, 0.049764, 0.044531, 0.039848, 0.035658,
f
0.031908, 0.028552, 0.025550, 0.022863, 0.010608
=
Nếu ta dùng phần mềm Maple 12 thì kết quả là (làm trịn 6 chữ số thập
phân)
T0.026778, 0.049766, 0.044528, 0.039848, 0.035662,
f
0.031914, 0.028535, 0.025556, 0.022869, 0.010605
=
b) Với n = 9 và
48
( )0 1 9 1.00, 1111.11, 2222.22, 3333.33, 4444.44,t , t ,..., t 5555.56, 6666.67, 7777.78, 8888.89, 10000.00
− − − −
=
− − − − −
[ ]T0 1 ng g g ... g= .
Ta xét hai trường hợp sau :
- Trường hợp 1 : với
T1321.2, 1029.53, 848.45, 766.32, 772.74,
g
858.41, 1014.98, 1235.0, 1511.79, 1839.4
− − − − −
=
− − − − −
nếu giải bằng thuật giải Toeplitz, nghiệm thu được là
T0.026789, 0.049752, 0.044531, 0.039848, 0.035658,
f
0.031908, 0.028553, 0.025550, 0.022859, 0.010615
=
và nếu ta dùng phần mềm Maple 12 thì kết quả là (làm trịn 6 chữ số thập phân)
T0.026791, 0.049753, 0.044528, 0.039848, 0.035662,
f
0.031905, 0.028553, 0.025550, 0.022864, 0.010612
=
- Trường hợp 2 : với
[ ]Tg 1000, 2000,3000, 4000,5000, 6000,7000, 8000,9000, 10000= − − − − −
nếu giải bằng thuật giải Toeplitz, nghiệm thu được là
T1.79726, 3.593531, 5.390298, 7.187063, 8.983829,
f
10.780595, 12.577361, 14.374125, 16.175334, 8.089396
− −
=
− − −
và nếu ta dùng phần mềm Maple 12 thì kết quả là (làm trịn 6 chữ số thập phân)
T1.797212, 3.593430, 5.390182, 7.186933, 8.983721,
f
10.780545, 12.577333, 14.374082, 16.175277, 8.089364
− −
=
− − −
49
3.2. Giải một số phương trình Fredholm bằng cách đưa về hệ Toeplitz
Ví dụ 3.2. Cho phương trình Fredholm loại một
( )
1
t
0
e 1 e 2
t s f s ds e t
2e 2e
−
+ +
− = + −
∫ (3.11)
trong đĩ ( )f t là Nn hàm cần tìm, hàm nhân ( ) ( )K t,s t s t s= ϕ − = − và hàm
t e 1 e 2g(t) e t
2e 2e
−
+ +
= + −
.
Nghiệm chính xác của phương trình là t1f (t) e
2
−
= .
a) Giải trực tiếp sử dụng thuật giải Toeplitz : Ta chia đoạn [ ]0; 1 thành
n 1− đoạn bằng nhau [ ]0 1s ,s , [ ]1 2s ,s , ... , [ ]n 2 n 1s ,s− − , với 0s 0= , n 1s 1− = , nghĩa là
mỗi đoạn cĩ độ dài 1h
n 1
=
−
.
Xấp xỉ tích phân ở vế trái của (3.11) bằng cơng thức cầu phương,
( ) ( )
1 n 1
i i
i 00
f s ds w f s
−
=
=∑∫ ,
và để đơn giản trong việc tính tốn ta chọn iw 1= , với mọi i 0,n 1= − . Khi đĩ
(3.11) trở thành
( ) ( ) ( )n 1 i i
i 0
g t K t,s f s
−
=
=∑
Tại điểm jt t= ; j 0,...,n 1= − , ta cĩ
n 1
j j i i
i 0
g(t ) K(t ,s )f (s )
−
=
=∑ (3.12)
hay
50
( ) ( ) ( ) ( ) ( )n 1 n 1j j i i j i i
i 0 i 0
g s K s ,s f s s s f s
− −
= =
= = ϕ −∑ ∑
Đặt
( )ji j i j it s s t −= ϕ − = , j jg(s ) g= , i if (s ) f=
(3.12) cĩ thể viết lại dạng
n 1
j j i i
i 0
g t f
−
−
=
=∑
hay dưới dạng phương trình ma trận
nT .f g=
trong đĩ
0 1 2 (n 1)
1 0 1 (n 2)
n 2 1 0 (n 3)
n 1 n 2 n 3 0
t t t t
t t t t
T t t t t
t t t t
− − − −
− − −
− −
− − −
=
…
…
…
⋮ ⋮ ⋮ ⋱ ⋮
…
là ma trận Toeplitz cấp n và
0
1
n 1
g
g
g
g
−
=
⋮
là những ma trận đã biết và
0
1
n 1
f
f
f
f
−
=
⋮
là ma trận Nn phải tìm.
51
Do ( )t s t sϕ − = − là hàm đối xứng, nên nT là ma trận Toeplitz đối xứng.
Khi đĩ, nT cĩ dạng
0 1 n 1
1 0 n 2
n
n 1 n 2 0
t t ... t
t t ... t
T
... ... ... ...
t t ... t
−
−
− −
=
.
Giải ví dụ (3.2) với n = 10. Khi đĩ,
h 0.111111=
is 0 h i h i 0.111111 i= + ⋅ = ⋅ = ⋅ .
( ) ( ) ( ) T0 1 9
T
g g s ,g s ,...,g s
0.13212,0.102953,0.084845,0.076632,0.077274,
0.085841,0.1015,0.1235,0.151179,0.18394
=
=
( )0 1 9 0.000001,0.111111,0.222222,0.333333,0.444444,t , t ,..., t 0.555556,0.666667,0.777778,0.888889,1.0
=
(ta đã cộng thêm 0.000001 vào 0t để phù hợp với thuật giải Toeplitz).
Kết quả nghiệm f là
T0.026777,0.049764,0.044531,0.039848,0.035658,
f
0.031908,0.028552,0.02555,0.022863,0.010608
=
,
với nghiệm chính xác của hệ là t1f (t) e
2
−
= . Ta cĩ bảng so sánh giữa nghiệm f thực
và nghiệm f giải được theo cách trên :
52
(Với n càng lớn, thì kết quả càng xấu đi)
b) Giải bằng cách đưa về dạng Fredholm loại hai : Ta viết lại (3.11) thành
( ) ( )
1
0
0 t s f s ds g t= − −∫
Cộng thêm ( )1 f t
M
vào vế trái (với M khá lớn) và đặt
( ) t e 1 e 2g t e t
2e 2e
−
+ +
= − + −
Ta cĩ
( ) ( ) ( )
1
0
1 f t t s f s ds g t
M
= − +∫ (3.13)
Ta coi như (3.13) xấp xỉ tương đương với (3.11) khi M khá lớn, nghĩa là
nghiệm của (3.13) cũng là nghiệm của (3.11) và ngược lại.
Giải (3.13) với chương trình fred2 đã trình bày ở trên, với M = 100, số
khoảng chia là 10, sử dụng chương trình gauleg để xấp xỉ tích phân, khơng sử
dụng thuật giải Toeplitz (đương nhiên, vì các khoảng chia khơng đều nhau), ta cĩ
kết quả
53
(cột Abscissa là cột các it , cột Calc soln là cột nghiệm f đã tính được, cột True soln
là cột f tính từ nghiệm thực t1f (t) e
2
−
= )
Thực hiện lại với M 1000= , ta cĩ
Với M 10000= , ta cĩ
Nếu khơng dùng chương trình gauleg để chọn khoảng it và iw , mà
chọn it cách đều nhau, cho tất cả iw 1= , thì kết quả sẽ rất xấu :
Với M 10000=
54
Với M 10000= và số khoảng chia là 100
Với số khoảng chia lớn hơn nữa thì chương trình chạy rất chậm, do chương
trình fred2 này vẫn đang sử dụng kiểu giải ma trận bằng phân rã LU.
Trong trường hợp ví dụ này, ta vẫn cĩ thể sử dụng thuật giải Toeplitz, vì
trong phương trình Fredholm loại hai, ma trận hệ số là ( )i j j1 K w− λ (theo phương
trình (2.6)), nên khi các khoảng chia đều nhau, jw 1= với mọi j, và
( ) ( )K t,s t s t s= ϕ − = − là hàm đối xứng, thì ma trận hệ số này cũng cĩ dạng
Toeplitz đối xứng, thậm chí cịn tốt hơn trường hợp Fredholm loại một, vì 0t đã
khác 0 ( 0t 1= ).
Với M 10000= và số khoảng chia là 100
55
Nhận thấy rằng kết quả khơng hề khác so với khi sử dụng kiểu giải ma trận
bình thường (điều này cho thấy thuật giải Toeplitz của ta là chính xác). Tuy nhiên,
ta đã cĩ thể chạy với số khoảng chia lớn hơn mà chương trình khơng bị chậm.
Với M 10000= và số khoảng chia là 1000
Tuy nhiên, vấn đề cần hướng đến là xấp xỉ được nghiệm thực thì ta vẫn
chưa đạt được.
56
KẾT LUẬN
Luận văn đã trình bày được giải thuật cơ bản cho việc xấp xỉ nghiệm của
phương trình tích phân với dữ liệu rời rạc bằng việc khảo sát một hệ phương trình
tuyến tính.
Đối với phương trình tích phân Fredholm loại hai, ta được bài tốn chỉnh
nhưng nếu cần xấp xỉ nghiệm tại một số lớn các điểm nút, hệ phương trình tuyến
tính nhận được là tương đối lớn và như vậy việc sử dụng các giải thuật thơng
thường như giải thuật LU sẽ cho thời gian thực khi chạy chương trình là chậm, thậm
chí khơng khả thi.
Luận văn khảo sát một loại phương trình tích phân quan trọng trong khá
nhiều ứng dụng với nhân cĩ dạng ( ) ( )K t,s t s= ϕ − , với hàm số thực ϕ cho trước.
Phương trình tích phân với nhân loại này cho hệ phương trình tuyến tính với ma
trận các hệ số thuộc loại ma trận Toeplitz mà luận văn đưa ra giải thuật giải với độ
phức tạp ( )O n thay vì ( )2O n cho trường hợp tổng quát.
Đối với phương trình tích phân loại một, luận văn cũng đã đưa ra các tính
số nghiệm xấp xỉ tương ứng với nghiệm của một số các phương trình tích phân loại
hai.
Kết quả nhận được của luận văn chưa thật sự thuyết phục do các phép xấp
xỉ tích phân với các trọng số iw 1= và các điểm nút đều nhau khơng cho được sai
số nhỏ cần thiết.
Hướng phát triển bổ sung là các kết quả lý thuyết cho việc đánh giá các sai
số trong việc xấp xỉ phương trình tích phân bằng hệ phương trình tuyến tính cũng
như khảo sát trường hợp xấp xỉ tích phân bằng các trọng số cũng như các điểm nút
thay đổi.
57
TÀI LIỆU THAM KHẢO
[1] Đặng Đình Áng, Trần Lưu Cường, Huỳnh Bá Lân, Nguyễn Văn Nhân (2001),
Biến Đổi Tích Phân, NXB Giáo Dục.
[2] Phạm Kỳ Anh (2000), Giải Tích Số, NXB ĐHQG Hà Nội.
[3] Nguyễn Minh Chương, Nguyễn Văn Khải, Khuất Văn Ninh, Nguyễn Văn
Tuấn, Nguyễn Tường (2002), Giải Tích Số, NXB Giáo Dục.
[4] Nguyễn Cơng Tâm, Đinh Ngọc Thanh (2005), Phương Trình Tích Phân, NXB
ĐHQG TP. Hồ Chí Minh.
[5] Lê Đình Thịnh (1995), Phương Pháp Tính, NXB Khoa học và Kỹ thuật Hà
Nội.
[6] Hồ Thuần, Nguyễn Cơng Thúy, Nguyễn Quý Hỷ, Phan Văn Hạp (1970), Cơ
Sở Phương Pháp Tính, NXB Đại học và Trung học Chuyên nghiệp.
[7] Trần Văn Trân (2007), Phương pháp số thực hành, NXB ĐHQG Hà Nội.
[8] Dương Thủy Vỹ (2001), Phương Pháp Tính, NXB Khoa học và Kỹ thuật Hà
Nội.
[9] Andreas Kirsch (1996), An Introduction to the Mathematical Theory of
Inverse Problems.
[10] Andrei D. Polyanin and Alexander V. Manzhirov (1998), Handbook of
Integral Equations, CRC Press Boca Raton London New York Washington.
[11] E. C. Titchmarsh (1975), Introduction to the theory of Fourier integrals, 7th
edition, Oxford University Press, London.
[12] N.S. Bakhvalov (1977), Numerical Methods, Mir Publishers, Moscow.
[13] Robert M. Gray, Toeplitz and Circulant Matrices: A review, Stanford
University, Stanford 94305, USA.
58
[14] Seymour Lipschutz, Marc Lars Lipson (2001), Theory and Problems of Linear
Algebra, Third edition, McGraw-Hill.
[15] U. Grenander, G. Szegư (1958), Toeplitz Forms and Their Applications, Univ.
of California Press, Berkeley and Los Angeles, 3, pp. 64-65.
[16] William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery
(1992), Numerical Recipes in C: The Art of Scientific Computing, Cambridge
University Press.
Các file đính kèm theo tài liệu này:
- Luanvanchinhthuc.pdf