Phương pháp số và lập trình - Giải phương trình phi tuyến

Preview:

Citation preview

PHƯƠNG PHÁP SỐPHƯƠNG PHÁP SỐVÀ LẬP TRÌNH

GV: Hoàng Đỗ Ngọc Trầm

Tìm nghiệm phương trình: f(x)=0

Input data

Xác định kho ảng phân ly nghi ệm[a, b]

Hàm f(x)

[a, b]

Tìm nghi ệm bằng một trong các ph ương pháp:Chia đôi/ Nội suy tuy ến tính/

Newton-Raphson/ Cát tuyến - Dây cung/Lặp liên tiếp

Output data

[ ],x a b∈

Phương pháp chia đôi

f(c )

c

Phương pháp chia đôi

1) Cho ph ương trình f(x) = 0

2) Ấn định sai s ố .

3) Xác định kho ảng phân ly nghi ệm [a, b].

-Nếu f(a)=0 thì x=a là m ột nghi ệm chính xác => STOP

-Nếu f(b)= 0 thì x=b là m ột nghi ệm chính xác => STOP

ε

-Nếu f(b)= 0 thì x=b là m ột nghi ệm chính xác => STOP

4) Chọn điểm c là điểm giữa của (a, b).

- Nếu f(c)=0 thì x=c là m ột nghi ệm chính xác => STOP

- Nếu như f (c) cùng d ấu với f (a) thì thay kho ảng (a, b) b ằng (c, b).

- Nếu như f (c) cùng d ấu với f (b) thì thay kho ảng (a, b) b ằng (a, c).

Lặp quá trình trên một số bước nào đó, hoặc khoảng chia đôi bé hơn sai số.

Phương pháp chia đôi

Phương pháp nội suy tuyến tính

Xác địnhc?

c

c?

1) Cho ph ương trình f(x) = 0

2) Ấn định sai s ố .

3) Xác định kho ảng phân ly nghi ệm [a, b].

4) Chọn điểm c là giao điểm giữa đường th ẳng đi qua hai điểm (a, f(a)), (b,f(b)) và tr ục Ox.

ε

Phương pháp nội suy tuyến tính

(b,f(b)) và tr ục Ox.

- Nếu f(c)=0 thì x=c là m ột nghi ệm chính xác => STOP

- Nếu như f (c) cùng d ấu với f (a) thì thay kho ảng (a, b) b ằng (c, b).

- Nếu như f (c) cùng d ấu với f (b) thì thay kho ảng (a, b) b ằng (a, c).

Lặp quá trình trên một số bước nào đó, hoặc khoảng chia đôi bé hơn sai số.

. ( ) . ( )

( ) ( )

a f b b f ac

f b f a

−=−

c=[af(b)-bf(a)]/[f(b)-f(a)]=

Phương pháp nội suy tuyến tính

Xét hàm f(x).

Khai tri ển Taylor f(x) t ại điểm x lân c ận điểm x 0:

Giả sử: f(x 1) = 0, xét khai tri ển Taylor t ại x 1 đến gần đúng b ậc 1:

Phương pháp Newton - Raphson

20 0 0 0 0

1f(x) = f(x ) + (x - x )f'(x ) + (x - x ) f''(x ) + ...

2!

f(x )

Tương tự, ta có:

=> Xn+1 là giao điểm của đường th ẳng qua (x n , f(x n)) và tiếp tuy ến với

đồ th ị f(x) t ại x n và trục Ox.

1 1 1≈ → ≈ − 00 0 0 0

0

f(x )f(x ) f(x ) + (x - x )f'(x ) x x

f'(x )

= − nn+1 n

n

f(x )x x

f'(x )

Phương pháp Newton - Raphson

Phương pháp Newton - Raphson

1) Cho ph ương trình f(x) = 0

2) Ấn định sai s ố .

3) Xác định kho ảng phân ly nghi ệm [a, b].

4) Chọn điểm c:

ε

n= = − f(a )c a a

- Nếu f(c)=0 thì x=c là m ột nghi ệm chính xác => STOP

- Nếu như f (c) cùng d ấu với f (a) thì thay kho ảng (a, b) b ằng (c, b).

- Nếu như f (c) cùng d ấu với f (b) thì thay kho ảng (a, b) b ằng (a, c).

Lặp quá trình trên một số bước nào đó, hoặc khoảng chia đôi bé hơn sai số.

1n

n nn

+= = −c a af'(a )

Phương pháp Newton - Raphson

Đặc điểm:

-Hội tụ nhanh h ơn so v ới PP chia đôi và n ội suy tuy ến tính

- Không đảm bảo sự hội tụ

Phương pháp dây cung – cát tuyến

Sử dụng sai phân h ữu hạn để tính x ấp x ỉ đạo hàm:

n ≈ n n-1

n n-1

f(x ) - f(x )f'(x )

x - x

Phương pháp dây cung – cát tuyến

1) Cho ph ương trình f(x) = 0

2) Ấn định sai s ố .

3) Xác định kho ảng phân ly nghi ệm [a, b].

4) Chọn điểm c:

ε

1n n n−= − = −f(a ) a - ac = a a a

PP nội suy tuyếntính, giới hạn 1

đầu

- Nếu f(c)=0 thì x=c là m ột nghi ệm chính xác => STOP

- Nếu như f (c) cùng d ấu với f (a) thì thay kho ảng (a, b) b ằng (c, b).

- Nếu như f (c) cùng d ấu với f (b) thì thay kho ảng (a, b) b ằng (a, c).

Lặp quá trình trên một số bước nào đó, hoặc khoảng chia đôi bé hơn sai số.

11

1

n n nn n n

n n n

−+

= − = −c = a a af'(a ) f(a ) - f(a )

Phương pháp dây cung – cát tuyến

Phương pháp lặp

Sử dụng phép bi ến đổi ,

công th ức lặp là

g(x) = T(f(x),x)

1n n+x = g(x )

- Dùng kh ảo sát pt nhi ều nghi ệm, có vài nghi ệm đã biết

- Tính hi ệu quả phụ thuộc việc chọn hàm g(x )- Tính hi ệu quả phụ thuộc việc chọn hàm g(x n)

Phương pháp lặp

Y=f(x)Y=x

Bài tập

Recommended