BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM TP. HCM
KHOA TOÁN – TIN
TIỂU LUẬN PHƢƠNG PHÁP TÍNH
THÀNH PHỐ HỒ CHÍ MINH
THÁNG 01 NĂM 2015
GIẢNG VIÊN
:
TS. TRỊNH CÔNG DIỆU
THỰC HIỆN
) 1
II.1.2. Định lý 1 1
II.1.3. Định lý 2 (Định lý Banach về điểm bất động của hàm co từ
,ab
vào
,ab
) 2
II.1.4. Định lý 3 (Định lý giá trị trung gian của hàm số liên tục) 3
II.1.5. Phƣơng pháp tính 4
II.2. THUẬT TOÁN TƢƠNG ỨNG 7
II.3. VÍ DỤ MINH HỌA 8
III. KIẾN THỨC MỞ RỘNG 18
IV. TÀI LIỆU THAM KHẢO 20
, nhƣ vậy
*x
là một nghiệm của
phƣơng trình
0fx
nếu và chỉ nếu
*x
là nghiệm của phƣơng trình
xx
hay
*x
là một
điểm bất động của hàm
. Điều này nói lên rằng việc tìm nghiệm một phƣơng trình có thể đƣa về
việc tìm điểm bất động của một hàm số.
Các định lý điểm bất động đóng một vai trò quan trọng trong việc chứng minh sự tồn tại
nghiệm của các phƣơng trình đại số, siêu việt và phƣơng trình vi phân…. Trong số các định lý điểm
bất động thì định lý điểm bất động của Banach là một định lý không những giúp ta chứng tỏ đƣợc
sự tồn tại nghiệm của một phƣơng trình, tính duy nhất của nghiệm đó mà còn chỉ ra một phƣơng
pháp để sau một số bƣớc tính hữu hạn ta có thể tìm đƣợc nghiệm gần đúng của phƣơng trình với sai
số không quá
cho trƣớc. Sau đây chúng ta sẽ tìm hiểu về cách xác định giá trị gần đúng cho
nghiệm của phƣơng trình sử dụng định lý điểm bất động Banach.
vào
,ab
và
c
đƣợc gọi là hệ số co.
Nhận xét: Trong nhiều trƣờng hợp, việc dùng định nghĩa để chứng tỏ một hàm có tính chất
co là không đơn giản, định lý sau đây giúp ta kiểm tra tính co dễ dàng hơn đối với các hàm khả vi.
II.1.2. Định lý 1
Cho
là hàm số liên tục trên
,ab
và khả vi trên
,ab
thỏa:
, , ,x a b x a b
và tồn tại c sao cho
' 1, ,x c x a b
' , , ,x y k x y c x y x y a b
Mà
, , ,x a b x a b
và
0,1c
nên
là hàm co từ
,ab
vào
,ab
với hệ số co
c.▐
II.1.3. Định lý 2 (Định lý Banach về điểm bất động của hàm co từ
,ab
vào
,ab
)
n
x
với
1nn
xx
,
*
n
.
Từ giả thiết
: , ,a b a b
và cách thiết lập dãy
n
x
ta suy ra
,
n
x a b
1 1 2 1
12
1 0 1 0 1 0
1
10
10
10
do 1
1
1
1
do 0,1
1
n p n n p n p n p n p n n
n p n p n
np
p
n
n
x x x x x x x x
c x x c x x c x x
c x x c c
c
c x x
c
xx
cc
c
Mà
10
0 do 0,1
1
n
n
xx
cc
c
Do đó theo định lý giới hạn kẹp ta suy ra:
0, *
n
n p n
pxx
.
Vậy
n
x
. Ta có
,y a b
vì
,ab
đóng. Do
MÔN HỌC: PHƢƠNG PHÁP TÍNH GV: TS. TRỊNH CÔNG DIỆU
SVTH: NHÓM 8 – LỚP VB2 TOÁN – KHÓA 2 Trang 3
là hàm co nên
nn
y y c y y
với mọi
n
, mà
0
n
n
c y y
nên theo định lý
n n n
n n n
x x x x x
, nghĩa là
x
là điểm bất động của
.
Ta chứng minh điểm bất động này là duy nhất:
Giả sử có hai điểm
, , ,x y a b x y
sao cho:
,x x y y
thì:
x y x y c x y
(do
là hàm co)
,ab
và
.0f a f b
thì tồn tại ít nhất một điểm
,p a b
sao
cho
0fp
.
Ghi chú: Định lý này giúp ta xác định đƣợc khoảng chứa nghiệm của một phƣơng trình cho
trƣớc. Do đây là một định lý quen thuộc trong giải tích cổ điển nên chúng tôi không trình bày phần
chứng minh.
trong đó
n
x
là
giá trị đã đƣợc làm tròn của
1n
x
tới hàng thứ
l
, với
*n
. Sơ đồ so sánh giữa lý thuyết và
thực tế : Do việc làm tròn nhƣ vậy, trong dãy số
{}
n
cho trƣớc ?
GIẢI QUYẾT VẤN ĐỀ:
- Giải quyết câu hỏi 1:
Nếu ta chọn
,ab
là các số thập phân có tối đa
l
chữ số sau dấu phẩy (thông thƣờng ta chọn
,ab
là các số nguyên) thì giải quyết đƣợc câu hỏi 1.
Thật vậy giả sử tồn tại
i
sao cho
,
i
x a b
và
1
,
i
x a b
, vì
1i
1
1
.10
2
l
ii
xx
Không mất tính tổng quát ta giả sử thêm
1
()
ii
x a x
suy ra:
11
10
l
i i i
x x a x
(mâu thuẫn). ▐
n n n n
x x x x x x
Đánh giá
*
n
xx
:
Trong Định lý 2 ta đã chứng minh đƣợc:
10
, , *
1
n
n p n
c
x x x x n p
c
Cho
p
đối với biểu thức trên ta nhận đƣợc:
10
*
1
n
n
c
10
*.
1 2 1
n l n
n
cc
x x x x
cc
(1)
Đánh giá
nn
xx
:
Ta có:
1 1 1 1 1
10
2
l
n n n n n n n n
x x x x x x c x x
Suy ra :
ll
n
x x c x x
cc
c
c
MÔN HỌC: PHƢƠNG PHÁP TÍNH GV: TS. TRỊNH CÔNG DIỆU
SVTH: NHÓM 8 – LỚP VB2 TOÁN – KHÓA 2 Trang 6
Suy ra :
1
Ta sẽ chọn
l
và
n
sao cho
10
10
2 1 1
ln
c
xx
cc
Để thuận tiện ta chọn
l
và
n
thỏa
10
2 1 2
l
trên có thể âm nếu
đủ lớn, mà
l
nên ta có một cách chọn nhƣ sau:
ln 1
max 0; 1
ln10
c
l
trong đó ký hiệu
x
là phần nguyên của số
x
.
từ (3) ta nhận đƣợc:
10
1
ln
2
ln
c
xx
n
c
Từ đây ta cũng chọn đƣợc số nguyên dƣơng
n
ứng với mỗi số
l
đã chọn , cụ thể nhƣ sau:
10
cho trƣớc. ▐
Nhận xét: Công thức tìm
l
và
n
quả là phức tạp, chúng tôi vẫn chƣa có cách thức nào để
làm đơn giản nó. Nếu có cơ hội quay trở lại, có lẽ chúng tôi sẽ có thêm những góc nhìn mới để cải
thiện vấn đề này đƣợc tốt hơn. MÔN HỌC: PHƢƠNG PHÁP TÍNH GV: TS. TRỊNH CÔNG DIỆU
SVTH: NHÓM 8 – LỚP VB2 TOÁN – KHÓA 2 Trang 7
II.2. THUẬT TOÁN TƢƠNG ỨNG
Tên thuật toán:
<Xác định giá trị gần đúng cho nghiệm của phƣơng trình bằng cách sử dụng định lý điểm bất
động>
1. Thuật toán :
- Bƣớc 1: Tìm khoảng chứa nghiệm
, , ,a b a b
ln 1
max 0; 1
ln10
c
l
- Bƣớc 4: Trong đoạn
,ab
lấy tùy ý
0
x
là số có tối đa
l
chữ số sau dấu phẩy khi biểu diễn
dƣới dạng thập phân, tính
1
: Ta tiến hành các bƣớc tiếp theo
- Bƣớc 5: Chọn
n
thỏa
10
ln 1 ln 2
max 1; 1
ln
c x x
n
c
- Bƣớc 6: Đặt
1k
x
…
n-1
1n
x
n
n
x - Bƣớc 8: Kết luận
n
x
là nghiệm gần đúng của phƣơng trình với sai số không quá
. MÔN HỌC: PHƢƠNG PHÁP TÍNH GV: TS. TRỊNH CÔNG DIỆU
SVTH: NHÓM 8 – LỚP VB2 TOÁN – KHÓA 2 Trang 8
Lƣu ý:
- Việc thực hiện Bƣớc 1 và Bƣớc 2 đòi hỏi phải có sự khéo léo, ta viết ra làm hai bƣớc nhƣ vậy
nhƣng thực ra hai bƣớc này không thực sự phân định rõ ràng mà cần thực hiện đồng thời để chọn ra
đƣợc đoạn chứa nghiệm và hàm co tƣơng ứng với đoạn đó. Ví dụ khi chọn đƣợc đoạn chứa nghiệm
,ab
rồi, nhƣng hàm
chỉ co từ
2, 3
vào
2, 3
. Vấn đề này vẫn đƣa đƣợc
giải quyết triệt để.
Vì một số lý do nhƣ trên nên chúng tôi vẫn chƣa đề cập đƣợc cách thức để thực hiện bƣớc 1 và
bƣớc 2 bằng chƣơng trình máy tính. Hai bƣớc này đòi hỏi phải tính bằng tay, sau đó sử dụng dữ liệu
vừa tìm đƣợc để viết chƣơng trình cho máy tính.
Cụ thể đoạn mã giả sẽ có dạng:
- Dữ liệu đầu vào :
{hàm co}, c {hệ số co},
{sai số tối đa} , a, b {hai đầu đoạn nghiệm,
ab
}
- Giải thuật: Tƣơng tự phần trƣớc từ bƣớc 3 đến bƣớc 8
II.3. VÍ DỤ MINH HỌA
Ví dụ 1: Tìm nghiệm gần đúng của phƣơng trình
3
10xx
0fx
có nghiệm thuộc
1,2
.
- Bƣớc 2: Tìm hàm
:
Ta có:
3
3
1 0 1x x x x
.
Xét
3
1xx
, ta thấy
1,2 , 1,2xx
và
2
3
11
11
. Chọn
5l
.
- Bƣớc 4: Tính
1
ln
3
c x x
c
.
Chọn
9n
.
- Bƣớc 6: Đặt
1k
1,32235x
4
4
1,32427x
5
5
1,32463x
6
6
1,32470x
7
7
1,32471x
8
8
1,32472x
9
9
1,32472x Vậy nghiệm gần đúng của phƣơng trình với sai số không quá
4
10
for(i = 1; i <= chuSo+1; i++)
{
result *= 10;
} for(i = 1; i <= chuSo; i++)
{
result1 *= 10;
}
temp = soCanLamTron*result;
temp1 = soCanLamTron*result1;
if(temp%10 >= 5)
{
temp1 += 1;
}
soCanLamTron = (double)temp1/result1;
return soCanLamTron;
}
void PP_danhgiahaunghiem(double saiso,double hsco,double x0)
{
unsigned int n0=1,l,n;
double x,xp;
l= abs(log(saiso*(1-hsco))/log(double(10)))+1;
x=round(phi_co_da(x0),l);
n=abs(log((saiso*(1-hsco))/(2*abs(x-x0)))/log(hsco))+1;
printf("Gia tri lam tron den hang thu (-%d) \n",l);
printf("Tinh duoc n = %d ",n);
printf("\n Bang tinh \n");
printf("He so co la 1/3\n");
PP_danhgiahaunghiem(saiso,hsco,x0);
}
Ví dụ 2: Tìm nghiệm gần đúng của phƣơng trình
10 1 cos 0xx
với sai số không quá
5
10
.
Giải:
- Bƣớc 1: Tìm khoảng chứa nghiệm:
Đặt
10 1 cosf x x x
, ta có
1 . 0 0ff
và
f
liên tục trên
0,1
, suy ra phƣơng trình
và
sin 1
1
10 10
x
x
Nhƣ vậy hàm
thỏa các điều kiện của Định lý 1 và hệ số co
1
10
c
.
- Bƣớc 3: Chọn
l
:
MÔN HỌC: PHƢƠNG PHÁP TÍNH GV: TS. TRỊNH CÔNG DIỆU
SVTH: NHÓM 8 – LỚP VB2 TOÁN – KHÓA 2 Trang 12
Ta có:
5
1
. Chọn
6l
.
- Bƣớc 4: Tính
1
x
:
Chọn
0
0,5x
, suy ra
1
0,187758x
.
- Bƣớc 5: Chọn
n
:
Ta có:
5
10
1
ln 10 1 ln 2 0,187758 0,5
ln 1 ln 2
Chọn
5n
.
- Bƣớc 6: Đặt
1k
x
là giá trị đã đƣợc làm tròn của
k
x
tới hàng thứ
6
*k
- Bƣớc 7: Lập bảng tính :
k
k
x
1
1
0,187758x
2
2
#include "math.h"
double phi_co_cos(double x)
{
return (1+cos(x))/10;
}
double round(double soCanLamTron, int chuSo)
{
int temp,temp1;
int i, result = 1,result1 = 1;
MÔN HỌC: PHƢƠNG PHÁP TÍNH GV: TS. TRỊNH CÔNG DIỆU
SVTH: NHÓM 8 – LỚP VB2 TOÁN – KHÓA 2 Trang 13
//Pow
for(i = 1; i <= chuSo+1; i++)
{
result *= 10;
} for(i = 1; i <= chuSo; i++)
{
result1 *= 10;
}
temp = soCanLamTron*result;
temp1 = soCanLamTron*result1;
if(temp%10 >= 5)
void main()
{
double saiso, x0;
double hsco=1.0/10.0;
//SAI SO epsilon = 0.00001 = 10^(-5)
//He so co c = 1/10
MÔN HỌC: PHƢƠNG PHÁP TÍNH GV: TS. TRỊNH CÔNG DIỆU
SVTH: NHÓM 8 – LỚP VB2 TOÁN – KHÓA 2 Trang 14
//X0 = 0.5, l=6, n=5
printf("\n GIAI PT GAN DUNG BANG PP DIEM BAT DONG \n\n");
printf("Tim nghiem gan dung cua phuong trinh: 10x - 1 - cosx = 0\n");
printf("Nhap Sai So = ");
scanf_s("%lf",&saiso);
printf("Nhap gia tri ban dau X0 = ");
scanf_s("%lf",&x0);
printf("He so co la 1/10");
printf("\nGia tri lam tron den hang thu (-6) \n");
printf("Tinh duoc n = 5 ");
printf("\n Bang tinh \n");
PP_danhgiahaunghiem(saiso,hsco,x0);
}
Ví dụ 3: Tìm nghiệm gần đúng của phƣơng trình
2
0,1
.
- Bƣớc 2: Tìm hàm
:
Ta có:
2
3x
3
x
x
e
ex
Xét
3
x
e
x
, ta thấy
0,1 , 0,1xx
và
1
1, 0,1
1
5 log 5
ln10 ln10 2
c
ln
ln
2
c x x
c
Chọn
12n
.
3
0,909069x
4
4
0,909581x
5
5
0,909814x
6
6
0,909920x
7
7
0,909968x
8
8
0,909990x
9
9
0,910000x
10
10
0,910004x
#include "stdlib.h"
double phi_co_emu(double x)
{
double bieuthuc, mu, ketqua;
mu = (1.0/2.0);
bieuthuc=pow(2.718281828,x)/3;
ketqua = pow(bieuthuc, mu);
return ketqua;
}
double round(double soCanLamTron, int chuSo)
{
int temp,temp1;
int i, result = 1,result1 = 1;
//Pow
for(i = 1; i <= chuSo+1; i++)
{
result *= 10;
}
for(i = 1; i <= chuSo; i++)
{
result1 *= 10;
}
temp = soCanLamTron*result;
temp1 = soCanLamTron*result1;
if(temp%10 >= 5)
{
temp1 += 1;
}
void main()
{
double saiso, x0;
double hsco=1.0/2.0;
//SAI SO epsilon = 0.00001 = 10^(-5)
//He so co c = 1/2
//X0 = 0.9, l=6, n=12
printf("\n GIAI PT GAN DUNG BANG PP DIEM BAT DONG \n\n");
printf("Tim nghiem gan dung cua phuong trinh: e^x - 3x^2 = 0\n");
printf("Nhap Sai So = ");
scanf_s("%lf",&saiso);
printf("Nhap gia tri ban dau X0 = ");
scanf_s("%lf",&x0);
printf("He so co la 1/2\n");
PP_danhgiahaunghiem(saiso,hsco,x0);
} MÔN HỌC: PHƢƠNG PHÁP TÍNH GV: TS. TRỊNH CÔNG DIỆU
SVTH: NHÓM 8 – LỚP VB2 TOÁN – KHÓA 2 Trang 18
III. KIẾN THỨC MỞ RỘNG
Việc tìm đƣợc hàm
thỏa mãn các điều kiện của Định lý 1 và Định lý 2 là một vấn đề khó
thỏa các điều kiện của Định lý 1.
Chứng minh:
Vì
f
là một hàm khả vi, xác định trên
,ab
nên
cũng khả vi, xác định trên
,ab
.
Ta có:
12
1 2 1 2
''
'1
f x k k f x
x
k k k k
suy ra
1 2 1 2
,,
f a f b
a a x b b x a b
k k k k
Do đó
, , ,x a b x a b
Vậy
thỏa các điều kiện của Định lý 1.▐
Kết quả tƣơng tự : Nếu hàm
f
là một hàm khả vi, xác định trên
ex
với sai số
4
10
.
Xét
fx
=
2x
ex
MÔN HỌC: PHƢƠNG PHÁP TÍNH GV: TS. TRỊNH CÔNG DIỆU
SVTH: NHÓM 8 – LỚP VB2 TOÁN – KHÓA 2 Trang 19
Ta có
1
1 1 0 , 0 1 0ff
e
và
1