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  
1q  
*Hậu nghiệm:  
q
xn p   
xn xn1  
1q  
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  
1q  
Sai số hậu nghiệm:  
q
xn p   
xn xn1  
1q  
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.  
docx 11 trang myanh 25160 Free
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:

  • docxbao_cao_bai_tap_lon_phuong_phap_tinh_de_tai_2_phuong_phap_la.docx