Tải bản đầy đủ (.pdf) (100 trang)

bài giảng phương pháp tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (783.67 KB, 100 trang )


0
Trường Đại học Thủy lợi

Phạm Phú Triêm

























phương pháp tính






















1





Carl Friedrich Gauss
(1777-1855)
vua Toán học



2

MỤC LỤC
Lời nói đầu 4
Chương 1: HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 5
1.1 Phương pháp Cholesky 5
1.2 Phương pháp lặp Gauss-Seidel 8
1.3 Phương pháp nới lỏng 13
Chương 2 : PHƯƠNG TRÌNH VÀ HỆ PHƯƠNG TRÌNH PHI TUYẾN 22
2.1 Phương pháp chia đôi 22
2.2 Phương pháp dây cung 25
2.3 Phương pháp tiếp tuyến 28
2.4 Phương pháp lặp đơn 31
2.5 Phương pháp Newton-Raphson cho hệ phương trình 33
2.6 Phương pháp lặp Seidel cho hệ phương trình 37
Kiểm tra nhận thức 42
Chương 3 : NỘI SUY GIÁ TRỊ HÀM SỐ 44
3.1 Công thức nội suy Gregory-Newton tiến 44
3.2 Công thức nội suy Gregory-Newton lùi 46
3.3 Công thức nội suy Gauss 48
3.4 Công thức nội suy Lagrange 50
3.5 Công thức nội suy Newton 51
3.6 Công thức bình phương nhỏ nhất 54
Bài tập 57
Kiểm tra nhận thức 58
Chương 4 : XẤP XỈ ĐẠO HÀM VÀ TÍCH PHÂN XÁC ĐỊNH 59
4.1 Xấp xỉ giá trị đạo hàm theo tỷ sai phân 59
4.2 Xấp xỉ giá trị đạo hàm theo công thức Richardson 60
4.3 Xấp xỉ giá trị đạo hàm theo công thức nội suy với các mốc cách đều 62

a- Công thức nội suy Gregory-Newton tiến 62
b- Công thức nội suy Gregory-Newton lùi 62
c- Công thức nội suy Gauss 62
4.4 Xấp xỉ giá trị đạo hàm theo c
ông thức nội suy với các mốc bất kỳ 65
a- Công thức nội suy Lagrange 65
b- Công thức nội suy Newton 65
c- Công thức bình phương nhỏ nhất 65
4.5 Xấp xỉ giá trị tích phân xác định A
68
a- Công thức hình thang 68
b- Công thức Simpson 68
4.6 Dãy quy tắc 71
a- Dãy quy tắc hình thang 71
b- Dãy quy tắc Simpson 72
Bài tập 75
Kiểm tra nhận thức 78
Chương 5: XẤP XỈ NGHIỆM PHƯƠNG TRÌNH VI PHÂN 79
5.1 Xấp xỉ nghiệm phương trinh vi phân cấp một 79
a- Phương pháp Euler 79
b- Phương pháp Runge-Kutta bậc hai
80
c- Phương pháp Runge-Kutta bậc bốn
80
5.2 Xấp xỉ nghiệm hệ phương trình vi phân cấp một 82
a- Phương pháp Euler 82

3
b- Phương pháp Runge-Kutta bậc bốn 83
5.3 Xấp xỉ nghiệm phương trình vi phân cấp 2 85

5.4 Xấp xỉ nghiệm phương trình đạo hàm riêng 86
Kiểm tra nhận thức 96









































4
Lời nói đầu

Nhu cầu nâng cao chất lượng đào tạo sinh viên và các bài toán thực tiễn rất đa
dạng, phức tạp là đòi hỏi cấp thiết đưa vào môn học PHƯƠNG PHÁP TÍNH nhằm
giúp cho sinh viên khối kỹ thuật- Kỹ sư tương lai, tiếp cận với cách giải gần đúng
phương trình, hệ phương trình có đánh giá sai só . . . , kết hợp trên cơ sở làm quen và
tự nâng cao khả năng lập trình bằng một ngôn ngữ thường được sử dụng, đó l
à
PASCAL.
Bộ môn Toán và tác giả trân trọng giới thiệu Giáo trình này và vô cùng cảm ơn các ý
kiến đóng góp quý giá của độc giả.

Hà nội 8-2005






5

Chương 1: HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH

Chúng ta biết rằng hầu hết các bài toán thực tế đều dẫn đến giải hệ phương
trình tuyến tính. Các phương pháp giải hệ được trình bày khá đầy đủ trong các tài liệu
về Đại số tuyến tính. Tuy nhiên mọi cách giải về mặt thực tiễn đều phải tính gần đúng
gắn liền với sai số. Vì vậy trong chương này chúng ta giải quyết vấn đề nêu ra trên
đây.

1.1 Phương
pháp Cholesky
Giải hệ
AX = B
(1.1.1)
trong đó
A =
11 1
1



n
nnn
aa
aa
éù
êú
êú

êú
êú
êú
ëû
, X =
1

n
x
x
é
ù
ê
ú
ê
ú
ê
ú
ê
ú
ê
ú
ë
û
, B =
1

n
b
b

éù
êú
êú
êú
êú
êú
ëû

(1.1.2)
Các bước cơ bản của phương pháp này là
** Tìm 2 ma trận tam giác
L =
21
31 32
123 1
1 0 0 0 0
1 0 0 0
1 0 0

1
nn n nn
l
ll
ll l l
-
é
ù
ê
ú
ê

ú
ê
ú
ê
ú
ê
ú
ê
ú
ê
ú
ê
ú
ê
ú
ê
ú
ë
û
, U =
11 12 13 1 1 1
22 23 2 1 2
33 3 1 3

0
0 0

0 0 0 0
nn
nn

nn
nn
uu u u u
uu u u
uuu
u
-
-
-
éù
êú
êú
êú
êú
êú
êú
êú
êú
êú
êú
ëû

(1.1.3)
thoả mãn
LU = A
(1.1.4)
** Giải hệ sau đây tìm Y
LY= B
(1.1.5)
** Tìm nghiệm X từ hệ

UX= Y
(1.1.6)
Đó chính là nghiệm của hệ (1.1.1).
Thật vậy
AX = L(UX) = LY = B.
Để tìm L , U ta tìm lần lượt hàng 1 của U , cột 1 của L , hàng 2 của U , cột 2 của L
, . . . theo
công thức tổng quát sau đây

6

1
1
1
1
,
,
i
i
ij ij ik kj
k
ij ik kj
k
ij
jj
ua lu ij
alu
lij
u
-

-
=
=
ì
ï
ï
ï
=- £
å
ï
ï
ï
ï
ï
í
ï
-
å
ï
ï
ï
=>
ï
ï
ï
ï
î

(1.1.7)
Để đơn giản ta chỉ xét n = 3 và các bước tìm nghiệm

* Tìm L và U
L =
21
31 32
100
10
1
l
ll
éù
êú
êú
êú
êú
êú
êú
ëû
, U =
11 12 13
22 23
33
0
00
uu u
uu
u
é
ù
ê
ú

ê
ú
ê
ú
ê
ú
ê
ú
ê
ú
ë
û

(1.1.8)
Hàng 1 của U là
u
11
= a
11
, u
12
= a
12
, u
13
= a
13

Cột 1 của L là


21
21
11
a
l
u
=
,
31
31
11
a
l
u
=

Hàng 2 của U là
u
22
= a
22
– l
21
u
12
u
23
= a
23
– l

21
u
13

Cột 2 của L là

32 31 12
32
22
alu
l
u
-
=

Hàng 3 của U là
u
33
= a
33
– (l
31
u
13
+ l
32
u
23
)
* Tìm Y

y
1
= b
1
∧ y
2
= b
2
– l
21
y
1
∧ y
3
= b
3
– ( l
31
y
1
+ l
32
y
2
)
* Tính nghiệm X

3
3
33

y
x
u
=
2233
2
22
y
x
ux
u
-
Ù=
1122133
1
11
y( )
x
ux ux
u
-+
Ù=

Ví dụ 1.1
Giải hệ sau đây bằng phương pháp Cholesky
13
123
12
23
32 5 10

0
xx
xxx
xx
ì
ï
+=
ï
ï
ï
++ =
í
ï
ï
ï
-=
ï
î

Giải
A =
201
325
110
é
ù
ê
ú
ê
ú

ê
ú
ê
ú
-
ê
ú
ë
û
, X =
1
2
3
x
x
x
é
ù
ê
ú
ê
ú
ê
ú
ê
ú
ê
ú
ë
û

, B =
3
10
0
é
ù
ê
ú
ê
ú
ê
ú
ê
ú
ê
ú
ë
û
.
* Tìm L và U
Hàng1 của U là
u
11
= a
11
= 2 , u
12
= a
12
= 0 , u

13
= a
13
= 1
Cột 1 của L là

21
21
11
3
2
a
l
u
==
,
31
31
11
1
2
a
l
u
==


7
Hàng 2 của U là
u

22
= a
22
– l
21
u
12
= 2 –
3
2
.0 = 2 ; u
23
= a
23
– l
21
u
13
= 5 –
3
2
.1 =
7
2

Cột 2 của L là

32 31 12
32
22

1
1.0
1
2
22
alu
l
u

-
===-

Hàng 3 của U là
u
33
= a
33
– (l
31
u
13
+ l
32
u
23
) = 0 –
5
117
.1 .
4

222
æö
÷
ç
-=
÷
ç
÷
ç
èø
1175
.1 .
2224
æö
÷
ç
-=
÷
ç
÷
ç
èø

* Tìm Y
y
1
= b
1
= 3 ∧ y
2

= b
2
– l
21
y
1
= 10 –
3
2
.3 =
11
2


∧ y
3
= b
3
– ( l
31
y
1
+ l
32
y
2
) = 0 –
5
1111
.3 .

4
222
æö
÷
ç
-=
÷
ç
÷
ç
èø

* Tính nghiệm X
3
3
33
y
x
u
=
=
5
4
5
4
= 1
2233
2
22
y

x
ux
u
-
Ù=
=
11 7
.1
22
2
-
= 1

1122133
1
11
y( )
x
ux ux
u
-+
Ù=
=
3(0.11.1)
2
-+
= 1
Program CHOLESKY;
Var
A:Array[1 10,1 10] of real;

B,X,Y:Array[1 10] of real;
R:Array[1 10] of integer;
DK,I,J,K,T,N:Integer;
DET,SUM:Real;
BEGIN
Write('So an N=');Readln(N);
Writeln('Nhap ma tran A ');
For I:=1 to N do
For J:=1 to N do
Begin Write('A[',I,J,']=');Readln(A[I,J]); End;
Writeln(' Nhap vecto B ');
For I:=1 to N do
Begin Write('B[',I,']=');Readln(B[I]); End;
DK:=1;DET:=1;
For I:=1 to N do R[I]:=I;
For I:=1 to N-1 do
If DK=1 then
Begin
For K:=I+1 to N do
Begin
If ABS(A[R[K],I])>ABS(A[R[I],I]) then

8
Begin
T:=R[I];R[I]:=R[K];R[K]:=T;DET:==-DET;
End;
If A[R[I],I]=0 then DK:=2 Else
Begin
DET:=DET*A[R[I],I];
For K:=I+1 to N do

Begin
A[R[K],I]:=A[R[K],I]/A[R[I],I];
For J:=I+1 to N do
A[R[K],J]:=A[R[K],J]-A[R[K],I]*A[R[I],J];
End;
End;
End;
End;
If A[N,N]=0 then DK:=2 Else
Begin
Y[1]:=B[R[1]];
For K:=2 to N do
Begin
SUM:=0;
For J:=1 to K-1 do
SUM:=SUM+A[R[K],J]*Y[J];
Y[K]:=B[R[K]]-SUM;
End;
X[N]:=Y[N]/A[R[N],N];
For K:=N-1 downto 1 do
Begin
SUM:=0;
For J:= K+1 to N do
SUM:=SUM+A[R[K],J]*X[J];
X[K]:=(Y[K]-SUM)/A[R[K],K];
End;
End;
If DK=1 then
For I:=1 to N do Write('X[',I,']=',X[I]);
If DK=2 then Writeln('Khong tinh duoc');

Readln;
END.

1.2 Phương
pháp lặp Gauss-Seidel
Giải hệ

9

11 1 1 1
11



nn
nnnnn
ax a x b
ax a x b
ì
ï
++ =
ï
ï
ï
ï
í
ï
ï
ï
++ =

ï
ï
î

(1.2.1)
* Điều kiện lặp: A có đường chéo trội, có nghĩa là

1;
n
aa
ii i j
jji
³
å

i = 1 , . . . , n
(1.2.2)
* Điều kiện hội tụ: A xác định dương, có nghĩa là
a
11
> 0 ,
11 12 13
11 12
21 22 23
21 22
31 31 33
0, 0, , 0
aaa
aa
aaa A

aa
aaa
>>>

(1.2.3)
* Đưa hệ (1.2.1) về hệ tương đương

1122 1 1
2211233 2 2
11 2 2 1 1
'

'


'

nn
nn
nn nnn nnn n
xcx cxb
xcxcx cxb
x
cx c x c x b

ì
ï
ï
=+++
ï

ï
ï
ï
ï
=+++ +
ï
í
ï
ï
ï
ï
ï
ï
=++ + +
ï
ï
î

(1.2.4)
bằng cách: chuyển các x
K
( k

i ) của phương trình thứ i sang vế phải và chia 2 vế
cho a
ii
, i = 1, . . . , n
* Thay xấp xỉ ban đầu X
(0)
= (x

1
(0)
. . . x
n
(0)
) của nghiệm vào (1.2.4) để tìm xấp xỉ
thứ nhất
X
(1)
= (x
1
(1)
. . . x
n
(1)
) của nghiệm

(1) (0)
(0)
12 1 1
12
(1) (1) (0)
(0)
21 23 2 2
21 3
(1) (1) (1) (0)
(0)
31 32 34 3 3
31 2 4
(1) (1) (1)

(0)
11 1 2 1 1
11 2
'

'

'



nn
nn
nn
nnnnnnn
nn
xcx cxb
xcxcx cx b
xcxcxcx cx b
xcx c x cxb


=+++
=+ ++ +
=+ + ++ +
=++ + +
(1) (1) (1)
(1)
121
121

'
'

nn nn nn n
nn
xcx c x c x b


ì
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
í
ï
ï
ï
ï
ï
ï

ï
ï
ï
ï
ï
ï
=++ + +
ï
ï
î

(1.2.5)
Như vậy ta đã sử dụng các giá trị x
1
(1)
, . . . , x
i
(1)
được tính ở các hàng trên để tìm
các giá trị
x
i+1
(1)
, . . . , x
n
(1)
, i =1, . . . , n – 1, ở các hàng dưới.
* Nếu

(1) (0)

1
n
ii
i
x
x
=
å
-
≤ εx
(1.2.6)
trong đó εx> 0 , cho trước (sai số đối với nghiệm) thì ta dừng ở X
(1)
.
* Ngược lại, có nghĩa là

10

(1) (0)
1
n
ii
i
x
x
=
å
-
> εx
(1.2.7)

ta lại thay xấp xỉ thứ nhất X
(1)
= (x
1
(1)
. . . x
n
(1)
) của nghiệm vào (1.2.4) để tìm
xấp xỉ thứ hai
X
(2)
= (x
1
(2)
. . . x
n
(2)
) của nghiệm

(2) (1)
(1)
12 1 1
12
(2) (2) (1)
(1)
21 23 2 2
21 3
(2) (2) (2) (1)
(1)

31 32 34 3 3
31 2 4
(2) (2) (2)
(1)
11 1 2 1 1
11 2
'

'

'



nn
nn
nn
nnnnnnn
nn
xcx cxb
xcxcx cxb
xcxcxcx cxb
xcx c x cxb


=+++
=++++
=+ ++++
=++ + +
(2) (2) (2)

(2)
121
121
'
'

nn nn nn n
nn
xcx c x cx b


ì
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
í
ï
ï
ï

ï
ï
ï
ï
ï
ï
ï
ï
ï
=++ + +
ï
ï
î

(1.2.8)
* Một cách tổng quát
Ta tiếp tục cho đến xấp xỉ thứ k : X
(k)
= (x
1
(k)
. . . x
n
(k)
) của nghiêm theo công thức

() ( 1)
(1)
12 1 1
12

() () ( 1)
(1)
21 23 2 2
21 3
() () () ( 1)
(1)
31 32 34 3 3
31 2 4
() () ()
11 1 2
11 2
'

'

'



kk
k
nn
kk k
k
nn
kk k k
k
nn
kk k
nnnn

nn
xcx cx b
xcxcx cx b
xcxcxcx cx b
xcx c x c
-
-
-
-
-
-


=+++
=+ ++ +
=+ + ++ +
=++ +
(1)
11
() () ()
()
121
121
'
'

k
nn n
kkk
k

nn nn nn n
nn
xb
xcx c x cx b
-
-


ì
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï
í
ï
ï
ï
ï
ï
ï

+
ï
ï
ï
ï
ï
ï
=++ + +
ï
ï
î

(1.2.9)
và dừng lại ở X
(k)
khi thoả mãn

(1)
()
1
n
k
k
ii
i
xx
-
=
å
-

≤ εx
(1.2.10)
hoặc

(1) (2)
1
n
kk
ii
i
x
xx
kM
e

=
ì
ï
ï
->
ï
å
ï
í
ï
ï
ï
=
ï
î


(1.2.11)
trong đó M là số bước lặp tối đa cho trước mà ta phải dừng lại mặc dù tại bước
lặp thứ M – 1 vẫn
chưa đảm bảo sai số.
Ví dụ 1.2
Giải hệ sau đây bằng phương pháp Gauss-Seidel
123
123
12 3
526
42
241
xx x
xx x
xx x
ì
ï
-+=
ï
ï
ï
-+=-
í
ï
ï
ï
-+ =
ï
î


với X
(0)
= (0 0 0) , εx = 0,15 và M =
10.
Giải

11
* Kiểm tra điều kiện đường chéo trội ⎜a
11
⎜= ⎜5 ⎜> ⎜– 1 ⎜ + ⎜2 ⎜= ⎜a
12
⎜ +
⎜a
13

⎜a
22
⎜= ⎜– 5 ⎜> ⎜1 ⎜ + ⎜1 ⎜= ⎜a
21
⎜ + ⎜a
23


⎜a
33
⎜= ⎜4 ⎜> ⎜– 2 ⎜ + ⎜– 1 ⎜= ⎜a
31
⎜ +
⎜a

32

* Kiểm tra điều kiện xác định dương: a
11
= 5 > 0.
Sau khi đổi dấu 2 vế của phương trình thứ 2 ta tính được

11 12
21 22
51
14
aa
aa
-
=
-
= 19 > 0

11 12 13
21 22 23
31 31 33
512
14 1
214
aaa
aaa
aaa
-
=- -


= 5.4.4 + ( – 1).( – 1).2
+ ( – 2).( – 1).( – 1) – ( – 2).4.2 – ( – 1).( – 1).5 – (
– 1).( – 1).4 = 87 > 0
* Đưa hệ đã cho về hệ tương đương theo công thức (1.2.4)

123
213
31 2
0,2 0,4 1,2
0,25 0,25 0,5
0,5 0,25 0,25
xxx
xxx
xx x
ì
ï
=- +
ï
ï
ï
=+ +
í
ï
ï
ï
=+ +
ï
î

* Thay xấp xỉ ban đầu X

(0)
= (0 0 0) của nghiệm vào vế phải tìm xấp xỉ thứ nhất
X
(1)
= (x
1
(1)
x
2
(1)
x
3
(1)
)
của nghiệm theo công thức (1.2.5) với n = 3

(1)
1
(1)
2
(1)
3
0,2.0 0,4.0 1,2 1,2
0,25.1,2 0,25.0 0,5 0,8
0,5.1,2 0,25.0,8 0,25 1,05
x
x
x
ì
ï

=- +=
ï
ï
ï
ï
=++=
í
ï
ï
ï
ï
=+ +=
ï
î

* Tính sai số

3
(1) (0)
1
ii
i
x
x
=
å
-
= 1,2 + 0,8 + 1,05 = 3,05 > 0,15
* Tìm xấp xỉ thứ hai X
(2)

= (x
1
(2)
x
2
(2)
x
3
(2)
) của nghiệm theo công thức (1.2.8)

(2)
1
(2)
2
(2)
3
0,2.0,8 0,4.1,05 1,2 0,94
0,25.0,94 0,25.1,05 0,5 0,9975
0,5.0,94 0,25.0,9975 0,25 0,969375
x
x
x
ì
ï
=- +=
ï
ï
ï
ï

=++=
í
ï
ï
ï
ï
=+ +=
ï
î

* Tính sai số

3
(2) (1)
1
ii
i
x
x
=
å
-
= ⎜0,94 – 1,2⎜ + ⎜0,9975 – 0,8⎜ + ⎜0,969375 – 1,05⎜ =
0,538125 > 0,15
* Tìm xấp xỉ thứ ba X
(3)
= (x
1
(3)
x

2
(3)
x
3
(3)
) của nghiệm theo công thức (1.2.9) :

(3)
1
(3)
2
(3)
3
0,2.0,9975 0,4.0,969375 1,2 1,01175
0,25.1,01175 0,25.0,969375 0,5 0,995281
0,5.1,01175 0,25.0,995281 0,25 1,004695
x
x
x
ì
ï
=- +=
ï
ï
ï
ï
=+ +»
í
ï
ï

ï
ï
=+ +»
ï
î

* Tính sai số

12

3
(3) (2)
1
ii
i
xx
=
å
-
= ⎟1,01175 – 0,94⎟ + ⎟0,995281 – 0,9975⎟
+ ⎟1,004695 – 0,969375⎟
= 0,109289 < 0,15
Như vậy ta dừng ở xấp xỉ thứ 3 của nghiệm với độ chính xác cho trước
X
(3)
= ( 1,01175
0,995281 1,004695)

Program G_SEIDEL;
Var

AB:Array[1 20,1 20] of real;
X0,XK:Array[1 20] of real;
I,J,K,M,N,KMAX,DK:Integer;
R,EPS,SUM,SUMEPS:Real;
BEGIN
Write('So an N = ');Readln(N);
M:=N+1;
Writeln('Nhap ma tran AB : N hang, N+1 cot ’);
Writeln('N cot dau la cac cot cua ma tran A’);
Writeln('cot thu N+1 la cot cac he so tu do B ’);
For I:=1 to N do
For J:=1 To M do
Begin Write('AB[',I,J,']=');Readln(AB[I,J]); end;
Write(' So buoc lap toi da KMAX=');Readln(KMAX);
Write(' Sai so EPS =');Readln(EPS);
DK:=1;I:=1;
{ Kiem tra tinh cheo troi }
While ((I<=N) and (DK=1)) do
Begin
R:=0;
For J:=1 to N do
R:=R + ABS(AB[I,J]);
If R>=2*ABS(AB[I,I]) then
DK:=2;I:=I+1:
end;
If DK=1 then
{ Khi tinh cheo troi thoa man ta nhap xap xi ban dau }
Writeln(‘ Nhap xap xi ban dau X’);
Begin
For I:=1 to N do

Begin Write('X0[',I,']=');Readln(X0[I]); end;
end;

13
K:=1;
While ((K<KMAX) and (DK=1)) do
{ Tinh cac thanh phan XK[I] o buoc lap thu K khi khong su dung cac gia tri XK[1] ,
XK[2] , . . . , XK[I] da tinh o tren de tinh XK[I+1], . . . ,XK[N] ; I = 1 , . . . , N– 1 }
Begin
For I:=1 to N do
Begin
SUM:=AB[I,M];
For J:=1 to N do
If J<>I then
SUM:=SUM – AB[I,J]*X0[J];XK[I]:=SUM/AB[I,I];
end;
{ So sanh tong sai so cac thanh phan o buoc lap thu K va K-1 voi sai so da cho }
SUMEPS:=0;
For I:=1 to N do
SUMEPS:=SUMEPS + ABS(XK[I]-X0[I]);
If SUMEPS<EPS then DK:=3;
For I:=1 to N do
X0[I]:=XK[I];K:=K+1;
end;
If DK=3 then
Begin
Writeln('Nghiem xap xi la');
For I:=1 to N do
Writeln('X',K,'[',I,']=',XK[I]);
end;

If DK=2 then
Writeln('Khong cheo troi');
If K=KMAX then
Begin
Writeln('Chua hoi tu va ta dung o xap xi thu k cua nghiem,k= ', K);
For I:=1 to N do
Writeln('X',K,'[',I,']=',XK[I]);
end;
Readln;
END.

1.3 Phương
pháp nới lỏng
Giải hệ

14

11 1 1 1
11



nn
nnnnn
ax a x b
ax a x b
ì
ï
++ =
ï

ï
ï
ï
í
ï
ï
ï
++ =
ï
ï
î

(1.3.1)
* Điều kiện lặp: A có đường chéo trội, có nghĩa là

1;
n
aa
ii i j
jji
³
å

i = 1 , . . . , n
(1.3.2)
* Điều kiện hội tụ: A xác định dương, có nghĩa là
a
11
> 0 ,
11 12 13

11 12
21 22 23
21 22
31 31 33
0, 0, , 0
aaa
aa
aaa A
aa
aaa
>>>

(1.3.3)
* Đưa hệ (1.3.1) về hệ mới tương đương bằng cách: chuyển tất cả các ẩn sang phải
và chia phương trình
thứ i cho a
ii
, i = 1 , . . . , n

1122 1 1
21 1 2 23 3 2 2
11 1 1
'
0
'
0

'
0
nn

nn
nnnnnn
xcx cxb
cx x cx c x b
cx c x x b

ì
ï
ï
-+ ++ +=
ï
ï
ï
ï
ï
-+ ++ +=
ï
í
ï
ï
ï
ï
ï
ï
++ - + =
ï
ï
î

(1.3.4)

* Thay xấp xỉ ban đầu X
(0)
= (x
1
(0)
. . . x
n
(0)
) của nghiệm vào (1.3.4) tìm sai số
xấp xỉ ban đầu
R
(0)
= (R
1
(0)
. . . R
n
(0)
)

(0) (0) (0)
(0)
12 1 1
12 1
(0) (0) (0) (0)
(0)
21 23 2 2
12 3 2
(0) (0) (0) (0) (0)
(0)

31 32 34 3 3
1234 3
(0) (0)
11 1 2
121
'

'

'



nn
nn
nn
nnn
nn
xcx cxbR
cxxcx cxbR
cx c x x cx c x b R
cx c x x


-+ ++ +=
-+ ++ +=
+-+ ++ +=
++ -
(0) (0)
(0)

11
1
(0) (0) (0)
(0) (0)
121
121
'
'

nnn n
n
nnnnnnnn
nn
cxb R
cx c x c x x b R

-


ì
ï
ï
ï
ï
ï
ï
ï
ï
ï
ï

ï
ï
ï
ï
í
ï
ï
ï
ï
ï
ï
++=
ï
ï
ï
ï
ï
ï
++ + - + =
ï
ï
î

(1.3.5)
* Xác định R
h
(0)
thoả mãn
⎜R
h

(0)
⎜= max(⎜R
1
(0)
⎜, . . . , ⎜R
n
(0)
⎜)
(1.3.6)
* Nếu
⎜R
h
(0)
⎜ ≤ εf
(1.3.7)
trong đó εf > 0 , cho trước (sai số đối với phương trình) thì ta dừng ở X
(0)
.
* Ngược lại, có nghĩa là

15
⎜R
h
(0)
⎜ > εf
(1.3.8)
ta tìm xấp xỉ thứ nhất X
(1)
= (x
1

(1)
. . . x
n
(1)
) của nghiệm theo công thức

(1) (0) (0)
(1) (0)
; 1, , ;
hh h
ii
xxR
x
xi nih
ì
ï
=+
ï
ï
í
ï
ï
== ¹
ï
î


(1.3.9)
và tính xấp xỉ thứ nhất R
(1)

= (R
1
(1)
. . . R
n
(1)
) của sai số theo công thức

(0)
(0) (0) (0)
0
; 1, , ;
h
ih
ii
h
R
R
cR R i ni h
ì
ï
=
ï
ï
í
ï
ï
=+= ¹
ï
î


(1.3.10)
* Xác định R
h
(1)
thoả mãn
⎜R
h
(1)
⎜= max(⎜R
1
(1)
⎜, . . . , ⎜R
n
(1)
⎜)
(1.3.11)
* Nếu
⎜R
h
(1)
⎜ ≤ εf
(1.3.12)
thì ta dừng ở X
(1)
.
* Ngược lại, có nghĩa là
⎜R
h
(1)

⎜ > εf
(1.3.13)
tương tự ta tìm xấp xỉ thứ 2 của nghiệm và xấp xỉ thứ 2 của sai số . . .
* Một cách tổng quát
Ta tiếp tục cho đến xấp xỉ thứ k : X
(k)
= (x
1
(k)
. . . x
n
(k)
) của nghiệm được tính theo
công thức

(1) (1)
()
(1)
()
; 1, , ;
kk
k
hh h
k
k
ii
xx R
x
xinih


-
ì
ï
=+
ï
ï
í
ï
ï
==¹
ï
î

(1.3.14)
và tính xấp xỉ thứ k : R
(k)
= (R
1
(k)
. . . R
n
(k)
) của sai số theo công thức

(0)
(1) (1)
()
0
; 1, , ;
h

kk
k
ih
ii
h
R
R
cR R i ni h

ì
ï
=
ï
ï
í
ï
ï
=+=¹
ï
î

(1.3.15)
và dừng lại ở X
(k)
khi
⎜R
h
(k)
⎜= max(⎜R
1

(k)
⎜, . . . , ⎜R
n
(k)
⎜)
(1.3.16)
thoả mãn
⎜R
h
(k)
⎜≤ εf
(1.3.17)
hoặc

16

(1)k
h
R
f
kM
e
-
ì
ï
ï
>
ï
í
ï

ï
=
ï
î

(1.3.18)
trong đó M là số bước lặp tối đa cho trước mà ta phải dừng mặc dù tại bước lặp
thứ M – 1 vẫn chưa
đảm bảo sai số.
Nội dung tư tưởng của phương pháp nới lỏng: Biến đổi sao cho trong xấp xỉ tiếp theo,
sai số tương ứng với phương trình thứ h (sai số xấp xỉ có trị tuyệt đối lớn nhất) sẽ bằng
không. Điều nà
y thể hiện bởi các công thức (1.3.14), (1.3.15).
Ví dụ 1.3
Giải hệ
123
123
123
526
42
241
xx x
xxx
xx x
ì
ï
-+=
ï
ï
ï

-+=-
í
ï
ï
ï
+ =
ï
î
bằng phương pháp nới lỏng với X
(0)
= (0 0 0) , εf =
0,15 và M = 3.
Giải
* Kiểm tra điều kiện đường chéo trội : ⎜a
11
⎜= ⎜5 ⎜> ⎜– 1 ⎜ + ⎜2 ⎜= ⎜a
12
⎜ + ⎜a
13


⎜a
22
⎜= ⎜– 4 ⎜> ⎜1 ⎜ + ⎜1 ⎜= ⎜a
21
⎜ + ⎜a
23


⎜a

33
⎜= ⎜4 ⎜> ⎜– 2 ⎜ + ⎜– 1 ⎜= ⎜a
31
⎜ +
⎜a
32

* Kiểm tra điều kiện xác định dương: a
11
= 5 > 0.
Sau khi đổi dấu 2 vế của phương trình thứ 2 ta tính được

11 12
21 22
51
14
aa
aa
-
=
-
= 19 > 0

11 12 13
21 22 23
31 31 33
512
14 1
214
aaa

aaa
aaa
-
=- -

= 5.4.4 + ( – 1).( – 1).2
+ ( – 2).( – 1).( – 1) – ( – 2).4.2 – ( – 1).( – 1).5 – (
– 1).( – 1).4 = 87 > 0
* Đưa hệ đã cho về hệ tương đương theo công thức (1.3.4)

123
123
123
0,2 0,4 1,2 0
0,25 0,25 0,5 0
0,5 . 0,25 0,25 0
xxx
xxx
xxx
ì
ï
-+ - + =
ï
ï
ï
-++=
í
ï
ï
ï

+-+=
ï
î

* Thay xấp xỉ ban đầu X
(0)
= (0 0 0) của nghiệm vào vế phải tìm sai số ban đầu
R
(0)
= (R
1
(0)
R
2
(0)
R
3
(0)
)
theo công thức (1.3.5) với n = 3

(0)
1
(0)
2
(0)
3
0 0,2.0 0,4.0 1,2 1,2
0,25.0 0 0,25.0 0,5 0,5
0,5.0 0,25.0 0 0,25 0,25

R
R
R
ì
ï
-+ - + = =
ï
ï
ï
ï
-+ + = =
í
ï
ï
ï
ï
+-+==
ï
î

* Xác định theo công thức (1.3.6)
⎜R
1
(0)
⎜= max(1,2 ; 0,5 ; 0,25) = 1,2 > 0,15

17
cho nên ta chuyển sang bước sau với h = 1.
* Tìm X
(1)

= (x
1
(1)
x
2
(1)
x
3
(1)
) theo công thức (1.3.9)

(1) (0) (0)
11 1
(1) (0)
22
(1) (0)
33
01,21,2
0
0
xxR
xx
xx
ì
ï
=+=+=
ï
ï
ï
ï

==
í
ï
ï
ï
ï
==
ï
î

* Tìm xấp xỉ thứ nhất của sai số theo (1.3.10)

(1)
1
(1) (0) (0)
21
212
(1) (0) (0)
31
313
0
0,25.1,2 0,5 0,8
0,5.1,2 0,25 0,85
R
RcR R
RcR R
ì
ï
=
ï

ï
ï
ï
ï
=+=+=
í
ï
ï
ï
ï
=+=+=
ï
ï
î

* Xác định theo công thức (1.3.11)
⎜R
3
(1)
⎜= max(0 ; 0,8 ; 0,85) = 0,85 > 0,15
cho nên ta chuyển sang bước sau với h = 3.
* Tìm X
(2)
= (x
1
(2)
x
2
(2)
x

3
(2)
) theo công thức (1.3.14)

(2) (1) (1)
333
(2) (1)
1,2
11
(2)
2
0 0,85 0,85
(1)
0
2
xx
xxR
xx
=
=
ì
ï
ï
=+ =+=
ï
ï
ï
ï
=
í

ï
ï
ï
ï
=
ï
ï
î

* Tìm xấp xỉ thứ hai của sai số theo (1.3.15)

(2)
1
(2)
3
(1) (1)
13
31
(2) (1) (1)
23
232
0
0,4.0,85 0 0,36
0,25.0,85 0,8 1,0125
R
RcR R
RcRR
ì
ï
=

ï
ï
ï
ï
ï
=+=- +=-
í
ï
ï
ï
ï
=+= +=
ï
ï
î

* Xác định theo công thức (1.3.16)
⎜R
2
(2)
⎜= max(0 ; 0,36 ; 1,0125) = 1,0125 > 0,15
cho nên ta chuyển sang bước sau với h = 2.
* Tìm X
(3)
= (x
1
(3)
x
2
(3)

x
3
(3)
)

theo công thức (1.3.14)

(2
(3) (2)
22 2
(3) (2)
11
(3) (2)
33
)
0 1,0125 1,0125
1,2
0,85
xxR
xx
xx
ì
ï
ï
=+=+ =
ï
ï
ï
ï
==

í
ï
ï
ï
ï
==
ï
ï
î

* Tìm xấp xỉ thứ ba của sai số theo (1.3.15)

(3)
2
(3) (2) (2)
12
121
(3) (2) (2)
32
323
0
0,2.1,0125 0,36 0,1575
0,25.1,0125 0 0,2531
R
RcRR
RcRR
ì
ï
=
ï

ï
ï
ï
ï
=+= -=-
í
ï
ï
ï
ï
=+= +=
ï
ï
î

* Xác định theo công thức (1.3.16)
⎜R
3
(3)
⎜= max(0 ; 0,1575 ; 0,2531) = 0,2531 > 0,15
nhưng vì số bước lặp tối đa M = 3 nên ta dừng ở X
(3)
= (
1,2 1,0125 0,85)

Program PP_NOILONG;
Var
C: Array[1 20,1 20] of real;

18

X,R:Array[1 20] of real;
I,J,K,K1,L,LMAX,M,N,DK:Integer;
AB,ABMAX,DELX,EPS: Real;
BEGIN
Write('So an N = ');Readln(N);
M:=N+1;
Writeln('Nhap ma tran C ');
{C là ma trận N hàng, M cột- các hệ số vế trái của hệ (1.3.4):

1122 1 1
21 1 2 23 3 2 2
11 1 1
'
0
'
0

'
0
nn
nn
nnnnnn
xcx cxb
cx x cx c x b
cx c x x b

ì
ï
ï
-+ ++ +=

ï
ï
ï
ï
ï
-+ ++ +=
ï
í
ï
ï
ï
ï
ï
ï
++ - + =
ï
ï
î

For I:=1 to N do
For J:=1 to M do
Begin
Write('C[',I,J,']=');Readln(C[I,J]);
End;
Writeln('Xap xi ban dau');
For I:=1 to N do
Begin
Write('X[',I,']=');Readln(X[I]);
end;
Write('So buoc lap toi da la LMAX=');Readln(LMAX);

Write('Sai so EPS =');Readln(EPS);
DK:=1;L:=0;
While ((L<LMAX) and (DK=1)) do
Begin
For I:=1 to N do
Begin
R[I]:=C[I,M];
For J:=1 to N do
R[I]:=R[I]+C[I,J]*X[J];
end;
AB:=0;
For K:=1 to N do
Begin
ABMAX:=ABS(R[K]);
If AB<ABMAX then
Begin
AB:=ABMAX;K1:=K;
End;
end;

19
If ABS(R[K1})<EPS then DK:=2 ELSE
Begin
DELX:=R[K1];X[K1}:=X[K1}+DELX;
For I:=1 to N do
If I<>K1 then
R[I]:=R[I]+C[I,K1]*DELX; R[K1]:=0;
end;
L:=L+1;
end;

If DK=2 then
Begin
Writeln('Nghiem xap xi o buoc lap thu l =',l);
For I:=1 to N do
Writeln('X[',I,']=',X[I]);
end;
If L=LMAX then
Begin
Writeln('Chua hoi tu va ta tam dung o xap xi thu l cua nghiem, l=',l);
For I:=1 to N do
Writeln('X[',I,']=',X[I]);
end;
Readln;
END.


Bài tập

1- Giải các hệ sau đây bằng phương pháp Cholesky
a-
123
123
123
x2x 4x 1
2x 3x x 0
3x x 5x 7

−+=−

−−+=



+−=

b-
2x y 3z 13
x2y3z14
3x 2y z 10

++=

++=


++=

c-
x2y3z 6
2x 3y z 1
3x y 2z 7

++=

+
+=−


++=

d-

123
12 3
12 3
2x x 3x 7
3x 2x x 3
x3x 4x 4

−+=

−− + =−


+− =−


Đs: a- ( 1 – 1 – 1 ) b- ( 1 2 3 ) c- ( 1 – 2 3 ) d- ( 1 1
2 ) {Vô số nghiệm}

2- Giải các hệ sau đây bằng phương pháp Gauss-Seidel và nới lỏng

20
a-

123

123
12 3
5x x 3x 1
x 4x 2x 3
2x x 4x 3


−−=

+−=


−++=

b-
12 3
12 3
12 3
4x x 2x 5
3x 8x 2x 3
x 2x 10x 9

−+ =

−+− =


−+ =


a1- Với X
(0)
= ( 0,8 0,9 1,1 ) , ε = 0,1 , M = 4
a2- Với X
(0)
= ( 0,8 0,9 1,1 ) , ε = 0,1 , M = 10

a3- Với X
(0)
= ( 0,8 0,9 1,1 ) , ε = 0,01 , M = 10
a4- Với X
(0)
= ( 1,1 0,8 0,9 ) , ε = 0,01 , M = 8
b1- Với X
(0)
= ( 1,1 0,8 0,9 ) , ε = 0,1 , M = 4
b2- Với X
(0)
= ( 1,1 0,8 0,9 ) , ε = 0,1 , M = 8
b3- Với X
(0)
= ( 1,1 0,8 0,9 ) , ε = 0,01 , M = 15
b4- Với X
(0)
= ( 0,9 1,1 0,8 ) , ε = 0,01 , M = 15
c-
3
123
12 34
12 34
12 4
10x x 5x 16
x 10x 2x 6x 3
2x 4x 20x 10x 24
x 2x 3x 25x 31

−+ =


−−+=


−+ + − =


−+ − + =−

với X
(0)
= (0,9 – 0,8 1,1 – 1,2) ; ε = 0,01 ; M = 20
d-
123
123
123
10x 2x x 3
x 10x 2x 13
2x x 10x 26

−−=

−+ − =


−− + =

e-
123
123

12 3
10x 2x x 9
x 10x x 22
2x 3x 10x 22

++=

+−=−


−+ + =


với X
(0)
= (0 0 0) ; ε = 0,1 ; M = 8 với X
(0)
= (1,2 – 1,9
3,1) ; ε = 0,1 ; M = 6
Đs:
a- Phương pháp Gauss-Seidel
a1- Dừng ở xấp xỉ thứ 2 của nghiệm X
(2)
= (1,014 1,0015 1,006625)
a2- Nghiệm xấp xỉ là X
(2)
= (1,014 1,0015 1,006625)
a3- Nghiệm xấp xỉ là X
(7)
= ( 0,998953 1,000680 0,000047 )

a4- Dừng ở xấp xỉ thứ 8 X
(8)
= ( 1,000160 1,000646 1,000141 )
Phương pháp nới lỏng
a1- Dừng ở xấp xỉ thứ 2 X
(4)
= ( 1,04 1,04 1,1 ).
a2- Dừng ở xấp xỉ thứ 2 X
(4)
= ( 1,04 1,04 1,1 ).
a3- Dừng ở xấp xỉ thứ 7 X
(7)
= ( 1,05 0,995 1,01 ).
a4- Dừng ở xấp xỉ thứ 8 X
(8)
= ( 0,995 1,003125 0,990625 ).
b- Phương pháp Gauss-Seidel
b1-Dừng ở xấp xỉ thứ 4 X
(4)
= ( 0,995625 1,011172 0,994688 ).
b2-Dừng ở xấp xỉ thứ 4 X
(4)
= ( 0,995625 1,011172 0,994688 ).
b3- Dừng ở xấp xỉ thứ 7 X
(7)
= ( 1,001247 0,998936 1,000750 ).
b4- Dừng ở xấp xỉ thứ 9 X
(9)
= ( 0,998971 1,001005 0,999428 ).
Phương pháp nới lỏng


21
b1-Dừng ở xấp xỉ thứ 4 X
(4)
= ( 1,1 1,7475 1,1395 ).
b2-Dừng ở xấp xỉ thứ 4 X
(4)
= ( 1,1 1,7475 1,1395 ).
b3-Dừng ở xấp xỉ thứ 8 X
(8)
= ( 1,132094 1,830643 1,1152919 ).
b4-Dừng ở xấp xỉ thứ 11 X
(11)
= ( 1,130200 1,884884 1,162042 ).
c - Phương pháp Gauss-Seidel
Dừng ở xấp xỉ X
(6)
= ( 0,999477 –1,000426
0,999579 – 0,999930 ).
Phương pháp nới lỏng
Dừng ở xấp xỉ X
(18)
= ( 1,41845 0,989316
0,543982 – 1,2 )
Kiểm tra nhận thức

1* Trình bày cụ thể các bước tìm nghiệm bằng phương pháp Cholesky với n = 4 và
giải hệ

1234

1234
1234
1234
x2x 3x4x 2
2x 3x 4x x 2
3x 4x x 2x 2
4x x 2x 3x 2

+++=−

+++=


+++=−


+++=


2* Nêu những điểm giống nhau, khác nhau của hai phương pháp Gauss-Seidel và nới
lỏng.
3* Hãy chạy chương trình PASCAL đã có để giải các ví dụ. Nếu có điều gì chưa thoả
mãn thì chủ động viết
lại chương trình (có thể bằng ngôn ngữ lập trình bậc cao khác) và giải lại các ví dụ,
các bài tập.










22


Chương 2 : PHƯƠNG TRÌNH VÀ HỆ PHƯƠNG TRÌNH PHI TUYẾN

Trong thực tế ta gặp không ít các bài toán gắn liền với phương trình đại số
cấp cao hoặc siêu việt và hệ phương trình phi tuyến. Ta biết rằng cách xấp xỉ hệ bởi
hệ tuyến tính dẫn đến sai số rất lớn. Vì vậy trong chương này ta sẽ trình bày một số
phương pháp trực tiếp xấp xỉ nghiệm.

2.1 Phương
pháp chia đôi
Giải gần đúng phương trình
F(x) = 0
(2.1.1)
thoả mãn điều kiện
* F '(x) không đổi dấu trên [a ; b]
(2.1.2)
* F(a)F(b) < 0
(2.1.3)
Nội dung của phương pháp
Lấy giá trị giữa của đoạn [a
(k)
; b
(k)
] làm xấp xỉ thứ k+1 của

nghiệm.
* Tính xấp xỉ thứ nhất của nghiệm là x
(1)
theo công thức

(0) (0)
(1)
2
ab
x
+
=

(2.1.4)
trong đó a
(0)
= a , b
(0)
= b và tính F(x
(1)
).
* Nếu
⎜F(x
(1)
)

⎜ ≤ εf
(2.1.5)
trong đó εf > 0, cho trước (sai số đối với hàm) thì ta dừng ở x
(1)

.
* Ngược lại, có nghĩa là
⎜F(x
(1)
)

⎜ > εf
(2.1.6)
thì ta tìm xấp xỉ thứ hai của nghiệm là x
(2)
bởi công thức

(1) (1)
(2)
2
ab
x
+
=

(2.1.7)
trong đó
a
(1)
= a
(0)
, b
(1)
= x
(1)

nếu F(a
(0)
)F(x
(1)
) < 0
hoặc
a
(1)
= x
(1)
, b
(1)
= b
(0)
nếu F(b
(0)
)F(x
(1)
) < 0
* Nếu

23
⎜x
(2)
– x
(1)
⎜ ≤ εx
(2.1.8)
trong đó εx > 0 cho trước (sai số đối với nghiệm) thì ta dừng ở x
(2)

.
* Ngược lại, có nghĩa là
⎜x
(2)
– x
(1)
⎜ > εx
(2.1.9)
thì ta tính F(x
(2)
).
* Nếu
⎜F(x
(2)
)

⎜ ≤ εf
(2.1.10)
thì ta dừng ở x
(2)
.
* Ngược lại, có nghĩa là
⎜F(x
(2)
)

⎜ > εf
(2.1.11)
ta tính tương tự x
(3)

. . .
* Một cách tổng quát
Ta dừng ở xấp xỉ thứ k của nghiệm là

(1) (1)
()
2
kk
k
ab
x

+
=

(2.1.12)
trong đó
a
(k-1)
= a
(k-2)
, b
(k-1)
= x
(k-1)
nếu F(a
(k-2)
)F(x
(k-1)
) < 0

hoặc
a
(k-1)
= x
(k-1)
, b
(k-1)
= b
(k-2)
nếu F(b
(k-2)
)F(x
(k-1)
) < 0
khi thoả mãn một trong các điều kiện
⎜x
(k)
– x
(k - 1)
⎜ ≤ εx
(2.1.13)
hoặc
⎜F(x
(k)
)

⎜ ≤ εf
(2.1.14)
hoặc


()
(1) (2)
(1)
kk
k
x
xx
Fx f
kM
e
e

-
ì
ï
->
ï
ï
ï
ï
ï
>
í
ï
ï
ï
ï
=
ï
ï

î

(2.1.15)
trong đó M là số bước lặp tố đa cho trước mà ta phải dừng lại, mặc dù đến bước
lặp thứ M – 1 vẫn
chưa đảm bảo sai số đối với nghiệm và sai số đối với hàm.
Chú ý
Điều kiện (2.1.13) được thoả mãn khi

24

ln
ln 2
ba
x
k
e
-
³

(2.1.16)
Ví dụ 2.1
Xấp xỉ bằng phương pháp chia đôi nghiệm của phương trình
sinx – 3x + 2 = 0 với [a ; b] = [0 ; 1] , εx = 0,01 ,
εf = 0,01 và M = 10
Giải
* F(x) = sinx – 3x + 2 nên ta có F '(x) = cosx – 3 < 0 , ∀x
* F(0) = 2 > 0 , F(1) = – 0,158529 < 0 cho nên F(0)F(1) < 0
*
(1)

01
0, 5
2
x
+
==

* F(x
(1)
) = sin0,5 – 3.0,5 + 2 » 0,979426 > 0
* ⎜F(x
(1)
) ⎜ = 0,979426 > 0,01
* Vì F(1) F(x
(1)
) < 0 nên ta tính

(2)
0,5 1
0, 75
2
x
+
==

Dấu của F(x) + + +
+ –
* * *
* * *
0 x

(1)
x
(2)

x
(3)
x
(4)
1 x
* ⎜x
(2)
– x
(1)
⎜ = ⎜ 0,75 – 0,5 ⎜ = 0,25 > 0,01
* F(x
(2)
) = sin0,75 – 3.0,75 + 2 » 0,431639 > 0 .
* ⎜F(x
(2)

»
0,431639 > 0,01 .
* Vì F(1) F(x
(2)
) < 0 nên ta tính

(3)
0,75 1
0, 875
2

x
+
==

* ⎜x
(3)
– x
(2)
⎜ = ⎜ 0,875 – 0,75 ⎜ = 0,125 > 0,01
* F(x
(3)
) = sin0,875 – 3.0,875 + 2 » 0,142544 > 0
* ⎜F(x
(3)
) ⎜» 0,142544 > 0,01
* Vì F(1) F(x
(3)
) < 0 nên ta tính

(4)
0,875 1
0, 9375
2
x
+
==

* ⎜x
(4)
– x

(3)
⎜ = ⎜ 0,9375 – 0,875 ⎜ = 0,0625 > 0,01
* F(x
(4)
) = sin0,9375 – 3.0,9375 + 2 » – 0,006419 < 0
* ⎜F(x
(4)
) ⎜ » 0,006419 < 0,01
Vậy ta dừng ở xấp xỉ thứ tư của
nghiệm x
(4)
= 0,9375

Program CHIADOI;
Var

×