Báo cáo bài tập lớn Phương pháp tính - Đề tài 2: Phương pháp lặp đơn
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
BÁO CÁO BÀI TẬP LỚN
PHƯƠNG PHÁP TÍNH
Đề tài 2: Phương pháp lặp đơn
Giảng viên hướng dẫn: Hoàng Hải Hà
Nhóm 11:
Phạm Thuỳ Dương
Tôn Thất Trí
1710054
1713656
1713383
1713337
1612787
Đàng Quang Thuận
Trần Thị Cẩm Thoa
Tạ Nhật Quang
Đề tài 2:
LÝ THUYẾT
- Cho phương trình f (x) 0 với khoảng cách li nghiệm [a, b] chứa nghiệm chính
xác p.
- Từ phương trình f (x) 0 ta chuyển về dạng tương đương x g(x) (*)
- Khi đó nghiệm của phương trình (*) còn được gọi là điểm bất động của hàm g(x).
- Về mặt hình học, nó là hoành độ giao điểm của đường thẳng y x và đường cong
y g(x)
.
f (xn1)
f '(xn1)
xn xn1
Ta xác định nghiệm gần đúng xn theo công thức:
x
Điều kiện: dãy
hội tụ về p. ⇔ Hàm g(x) là hàm co.
n
n1
Định nghĩa hàm co: Hàm g(x) được gọi là hàm co trong đoạn [a, b] nếu tồn tại
một số q thỏa
g(x1) g(x2 ) q x1 x2
0 ≤ q < 1, gọi là hệ số co, sao cho: ∀ x1, x2 ∈ [a, b],
*Ta có các định lý:
Định lý 1: Nếu g(x) là hàm co trên [a, b], thì nó liên tục trên đó.
Định lý 2: Nếu hàm g(x) liên tục trên [a, b], khả vi trong (a, b) và ∃ q : 0 ≤ q < 1
g '(x) q
sao cho ∀ x ∈ (a, b),
, thì g(x) là hàm co trên (a, b) với hệ số co là q.
Ta có công thức đánh giá sai số:
*Tiên nghiệm:
qn
xn p
x1 x0
1 q
*Hậu nghiệm:
q
xn p
xn xn1
1 q
CODE MATLAB
1. Sơ đồ khối:
INPUT: g(x), a, b, n, x0
Hàm số không có
hệ số co, không đủ
điều kiện hội tụ
Sai
g '(x) q g '(x)max 1
Đúng
f (xn1)
xn xn1
f '(xn1)
Sai số tiên nghiệm:
qn
xn p
x1 x0
1 q
Sai số hậu nghiệm:
q
xn p
xn xn1
1 q
Nhập điều kiện của sai số: e
OUTPUT: q, xn,
sai số tiên nghiệm,
sai số hậu nghiệm,
nmin
2. Code:
function lapdon
syms x
N=100;
f=input('nhap ham:')
a=input('nhap a:')
b=input('nhap b:')
n=input('nhap so lan lap n:')
x0=input('nhap x0 trong [a;b]:')
g = diff(f,x);
g1 = diff(g,x);
x_0 = solve(g1,a,b);
if(abs(subs(g,a))<abs(subs(g,x_0)))
max = abs(subs(g,x_0));
else
if (abs(subs(g,a))>abs(subs(g,b)))
max=abs(subs(g,a));
else
max=abs(subs(g,b));
end
if (max<1)
disp('ham co he so co, du dieu kien hoi tu');
fprintf('he so co ');
disp(max);
x=x0;
else
disp('ham ko co he so co, ko du dieu kien hoi tu');
end
for i=1:n
nghiem1=subs(f,x);
x=nghiem1;
end
fprintf('Nghiem x(%d) = %0.10f\n',n,nghiem1);
sstn = abs((max^n)/(1-max))*abs(subs(f,x0)-x0);
fprintf('sai so theo cong thuc tien nghiem : %0.10f\n',sstn);
for i=1:(n-1)
nghiem2=subs(f,x);
x=nghiem2;
end
sshn = abs(max/(1-max))*abs(nghiem1-nghiem2);
fprintf('sai so theo cong thuc hau nghiem : %0.10f\n',sshn);
c=input('nhap so e tu ban phím:')
qn=(c*(1-max))/abs(subs(f,x0)-x0);
nmin=floor(log(qn)/log(max));
fprintf('chi so n nho nhat %d\n',nmin);
end
VÍ DỤ
4
5푥 + 10
Ví dụ 1: Cho phương trình
thỏa điều kiện lặp trên đoạn [2,4]. Lấy
푥 =
x0=3,45, tìm x3. Tìm số lần lặp nhỏ nhất để được sai số nhỏ hơn 10-3
3
5푥 + 4
Ví dụ 2: Cho phương trình
thỏa điều kiện lặp trên đoạn [2,3]. Lấy
푥 =
x0=2,6 , tìm x5. Tìm số lần lặp nhỏ nhất để được sai số nhỏ hơn 10-10
3
2푥 + 13
Ví dụ 3: Cho phương trình
thỏa điều kiện lặp trên đoạn [2,3]. Lấy
푥 =
x0=2,6 , tìm x5. Tìm số lần lặp nhỏ nhất để được sai số nhỏ hơn 10-10
x2 ex 2
Ví dụ 4: Cho phương trình x
thỏa điều kiện lặp trên đoạn [0,1]. Lấy
3
x0=0.5, tìm x5. Tìm số lần lặp nhỏ nhất để được sai số nhỏ hơn 10-10.
Bạn đang xem tài liệu "Báo cáo bài tập lớn Phương pháp tính - Đề tài 2: Phương pháp lặp đơn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bao_cao_bai_tap_lon_phuong_phap_tinh_de_tai_2_phuong_phap_la.docx

