LỜI CÁM ƠN Suốt thời gian học tập trên giảng đường Bách Khoa trong học kì 221, nhóm 22 lớp L06 chúng em xin được gửi lời cảm ơn sâu sắc nhất đến với GV.. Thầy đã phụ trách giảng dạy nhiệ
Trang 1ĐẠI HỌC QUOC GIA THANH PHO HÒ CHÍ MINH TRUONG DAI HOC BACH KHOA
Gere tyeand
BÀI TẬP LỚN MÔN PHƯƠNG PHÁP TÍNH
LỚP L06 - NHÓM 22 - HK221
NGÀY NOP 23/11/2022 Giảng viên hướng dẫn: ThS HUỲNH THÁI DUY PHƯƠNG
Sinh viên thực hiện Mã số sinh viên Diem số
Trang 2
LỜI CÁM ƠN
Suốt thời gian học tập trên giảng đường Bách Khoa trong học kì 221, nhóm 22 lớp L06 chúng em xin được gửi lời cảm ơn sâu sắc nhất đến với GV Ths Huynh Thai
Duy Phương Thầy đã phụ trách giảng dạy nhiệt tỉnh và đầy tâm huyết cho chúng em biết thêm được nhiều kiến thức thực té đặc biệt là trong môn học Phương Pháp Tính Một môn học có quá nhiều thứ mới mẻ khó tiếp thu như số gần đúng và sai số, phương trình phi tuyến, hệ phương trình phi tuyến, xáp xi đa thức, xấp xỉ hàm, nhưng với
sự tận tâm của thày, những kiến thức đã được chúng em tiếp thu trọn vẹn Chúng em hiểu hơn các thuật toán cơ cản được dùng trong kĩ thuật mà môn học mang lại Tuy nhiên, để hiểu sâu hơn về môn học cũng như các phương pháp làm bài, nhóm chúng
em đã thực hiện làm bài tập lớp của môn học, qua đó tiếp cận kĩ hơn với các phan mềm như MATLAB Qua bài tập lớn, nhóm đã biết tính toán, sử dụng phản mềm dé
giải những bài toán phức tạp
Một lần nữa, nhóm chúng em xin được cảm ơn và chúc thầy có nhiều sức khỏe
dé tiếp tục trên chặng đường truyên tải những kiến thức bô ích đến cho sinh viên
Hà Chí Minh, ngày 21 thang 11 nam 2022
Nhóm 22_L06
Trang 3MỤC LỤC
I9”) 09 0 4 2
@Ý-Ì0b-aầđađiađdidđdđđđiiaiiiiaiđảả455 4 90B V"2+iiầiầia ai{44 5
®:bquẩiiầẳầaiiaiitiaa45 6
0 .4 14
PHAN 3: XAP Xi NAM Phảảaả44 15
Phần 4: Đạo hàm tích phân - - + + 2 SE S2 S3 2S v3 Svvvrv cv gvcgrcrrecriey 17
CAU 8 (8): cecceccsessessscssessscssecsessesesessavseessersecesecsatesncsessatesessensevesectanesncstseteeessenseeeteen 17
Trang 4Phần 1: Phương trình phi tuyến
Câu 9:
sin(x) + cos(x)
2 của phương trình, ước lượng số lần lặ tối thiểu để có được nghiệm xấp xỉ với
sai số không quá 10”
Cho phuong trình « = , tìm một khoảng cách ly nghiêm |a,ÙÌ
Giải:
X= sin(x)+cos(x)
Đặt f(x) = 2x — sin(x) — cos(x)
f (x) =2 + sin(x) — cos(x) > 0 voi moi x
Ta tháy f(0)*f(1) < 0
=> Hàm số có nghiệm duy nhát trong [0,1]
= Khoảng cách ly nghiệm là [0,1]
Dat G(x) = sinœ)+cosÐ
Œ (x) -sin(x)+-codh)
Iứ'(0)I > lẾ (1Ÿ!
=> Chon x0 =0
x„ =(#n_1)
Xn-1
Trang 5Câu 12:
Cho phuong trình e? — 3z2 = 0 Sử dụng phương pháp Ñewton tìm nghiệm xấp xỉ trên đoạn [0, 1] và [3,5] với sai số không quá 10”
f(x) = e% - 3x?
f (x) = e* - 6x
f£ ®=e*—=6
Có ƒ (B) * ƒ (B) >0 => Chọn x0 = 5
x„=Ê¡—- B=U—
ƑÊu-)
Vậy nghiệm xỉ trên khoảng [3,5] = 3.733079
Có ƒ(1)*£ƒ(1)>0 = chọn zạ = 1
Vay nghiém xap xi trén khoang [0,1] =0.910008
Trang 6Phần 2: Hệ phương trình tuyến tính
Với M= 19
Câu 1:
Chỉ ra tồn tại (hoặc không) phan tich A = LU theo phuong phap Doolittle Viết cụ thể L va U nếu tồn tại phép phân tích
Giải:
Phan Code C:
#include<stdio.h>
int main0
{
float A[50][50]= {0} ,L[50][50]= {0}, U[50][50];
int i,j,k,n;
printf("Nhap bac cua ma tran: ");
scanf("%d",&n);
printf("\n Nhap cac phan tu cua ma tran \n");
for(i=1; ic=n; i++)
{
for(j=1; j<=n; j++)
{
printi("Nhap A[%d][%ed] = ", i,j);
scanfŒ“%f",&A[Illil):
}
for(j=1; j<=n; j++)
{
Trang 7{
if((<=j) { U[Ï|IIIEA[iIIIl:
†or(K=1; k<=i-1; k++)
U[ï|[jI-=L[II[KI"U[RIl];
ifd==j) LIIIil=1:
else
LIIIIi]=0:
else
LIIIIEA[Il:
for(k=1; k<=j-1; k++)
LIIIIII-=Lillkl*U[KIIl L[IIIiI=U[III]›
U[Ï[j]E0:
}
printf("[L]: \n");
for(i=1; ic=n; i++)
{
for(j=1; j<=n; j++)
printf("%9.5f" L[i][i]);
printf('\n");
}
printf("\n\n[U]: \n");
for(i=1; ic=n; i++)
{
Trang 8for(j=1; j<=n; j++)
printf("%9.5f",UII|[[]);
printf("\n");
}
return 0;
Phan két qua:
xa
input
Trang 9
Cau 2:
Cho hé phuong trinh AX = B, stt dung (a) Jacobi va (b) Gauss-seidel tim
nghiém gan ding ctia hé vdi sai sd khong qua 107°, xét chuẩn hàng vói
2i, khi i=j va i=1,2, ,M
j=t+2,i=1,2, ,(M@-2
05 khí ,JÌ?†3/=12:-.,(M — 2)
j=i-2,i=3,4, ,M
“0 0.251, khỉ 47— j=i+4i=1,2, ,(M—4) mm
j=i- đi =5,6, ,M
0, các trường hợp còn lại
B= (b¡)aArx1 với b; = iT
G) &
Phan code MatLab:
cle
clear all
syms m;
format long;
m= input('nhap gia tri M: ' );
B = zeros(m,1);
B(1:m,1) = pi;
A = zeros(m,m);
x = zeros(m,1);
x(lim,1) = 0;
for i=1:m
for J=1:m
if li == ] A(i1,1) = 2*1;
end end
end
Trang 10for
end
end
for j=1:
end
end
for j=1:
end
end
for j=1:
for
end
end
err 1;
lap 0;
D
LU = A;
i=1:m-2 1£ ] == i + 2 A(i,j) = 0.5*1;
end
rm
i=3:m 1£ ] == i - 2 A(i,j) = 0.5*1;
end
rm
i=1:m-4
if jf == li + 4i A(i,j) = 0.25*i;
end
rm
i=5:m
if jf == li - 4i A(i,j) = 0.25*i;
end
diag (diag (A));
for i=lim
10
Trang 11T = inv(D)*(-LU);
while err > 10e-5
xold = x¿
for i = 1:m
sum = 0;
for 7 = 1:m
if ] ~= 1
sum = sum + A(i,j)*xold(4);
end end x(i) = (1/A(i,i))*(B(i)-sum);
end
lap = lap + 1;
err = (norm(T,Inf)/(l-norm(T,Inf)))*abs (norm( (x-xold),inf));
end
disp("ket qua theo phuong phap Jacobi la ");
disp(x);
disp("sai so theo phuong phap Jacobi la ");
disp(err);
for i= 1:m
for 7 = 1l:m
if io gy LU(i,4) = 9;
end end
end
lap = 1;
U = -LU;
T = inv(A+U) *U;
11
Trang 12err = 1;
while err > 10e-5
xold = x;
for i = 1:m
Sum II œ `
for j7 = 1:i-1
sum = sum + A(i,j)*x(]);
end end for j = itl:m
sum = sum + A(i,4)*xold(4);
end x(1) = (1/A(1,1))*(B(1)-sum) ; end
lap = lap + 1;
err = (norm(T,Inf)/(l-norm(T,Inf)))*abs (norm( (x-xold),inf));
end
disp ("ket qua theo phuong phap Gauss-Seidel la ");
disp(x);
disp ("sai so theo phuong phap Gauss-Seidel la ");
disp(err);
12
Trang 13Kết quá chạy MatLab:
ket qua theo phuong phap Jacobi la
1.553545860097745
0.745819690044439
0.069028110720594
0.158335115476975
0.264812135192284
0.191686433091300
0.128426379231229
0.122169840440178
0.119190194870480
0.105106883554954
0.093021716041384
0.085782110977933
0.080019275113804
0.075429893406355
0.070285523046305
0.061342875794072
0.057778314383881
0.071934886147560
0.068233858167310
Sai so theo phuong phap Jacobi la
5.679217385069768e-05
ket qua theo phuong phap Gauss-Seidel la
1.553530646191785
0.745809175239471
0.069013825570955
0.15832502051574
0.264799923811716
0.191669707711446
0.128396395862779
0.122172027107951
0.119196689125258
0.105083547457289
0.092987546705251
0.085778441422088
0.080020411912860
0.075419105186642
0.070269217880970
0.061337383999602
0.057775465303002
0.071932116599816
0.068229624558191
Sai so theo phuong phap Gauss-Seidel la
13
Trang 14Câu 3: Giải một hệ phương trình tuyến tính băng phương pháp phân tử trội
Ví dụ:
Xịi—Xaạ+2Xa—Xạ = —8 2X) —2X2+3xX3-3xX, = —20
Xi+xXa+xXạ+0X¿ = -2 Xi—Xa+4xạ+3x*¿; = 4
h, > 4h,- h,
h )Ồ©h+ Blịa => 2g »7h of 64h '71+ Yo 468 h —»10h ọ 280 d 6
a7 a*"t! 9 0 280 0Ì560
-16&, =— 336 |x,= 3
oS
280x, = 560 x= 2
14
Trang 15Phần 3: Xấp xỉ hàm Câu 4: Sử dụng công thức Newton sai phân tiến đề xây dựng các đa thức nội suy bậc một, hai và ba cho dữ liệu sau Tính gần đúng giá trị đã chỉ định băng cách sử dụng các kết quả thu được
4.3 † (0.43) thỏa f (0) =1, f (0.25) =1.64872, f (0.5) =2.71828, f (0.75) = 4.48169
Theo đề bài ta có bảng số liệu sau:
Bang sai phan:
1
2,59488
7,05364
Newton sai phan tién
Đa thức nội suy bậc 1:
M() = 1+ 2,59488.x
= ƒ(0.43) ~ (0,43) = 2.1158
Đa thức nội suy bậc 2:
Ni? (x) = 1 + 2,59488 x + 3,36672.x (x — 0,25)
15
Trang 16
=> f (0.43) ~ NO (0,43) = 2,3764
Đa thức nội suy bậc 3:
NE? (x) = 1 + 2,59488, x + 3,36672 x (x — 0,25) + 2,91211 x (x — 0,25) (x — 0,5)
= f(0.43) = NE (0,43) = 2.3606 (làm tròn đến 4 chữ só thập phân sau dáu phay)
Câu 2: Gọi Ps(x) là đa thức nội suy cho dữ liệu (0,0), (0.5,y), (1,3) và (2,2) Hệ số của
x? trong Ps(x) la 6, timy
Goi da thire néi suy P3(x) can tìm có dang la Ps(x) = ax? + bx? + cx +d
Hé sé cua x? trong Ps(x) la 6 => P(x) = 634 bx? +ex4+d
Theo dé bai ta có:
0=6.01+b.0°+c.0+d
\y = 6.0,53 + b.0,5ˆ +c.0,5+ đ
3=611+b.12+c.1+d
2=6.23+in2l¿c.2+d
(0.5 =0,25.b+0,5.c—y
eS
—-3=bt+c
(ứ d=046=4.b+2.c
{bh = —20
©rgc=17
( — 17
_
Vậy y = 24
16
Trang 17Phần 4: Đạo hàm tích phân
0
Câu 8 (8): Tính xáp xi tích phân sau: Ea, Xn( + 1) ‹
Giải 0-(-0.5) 9,
10
Đặt số khoảng cách nghiệm n=10, suyIra
Áp dụng công thức hình thang mở rộng, ta có:
Sy,+ V)= S006 Mn(0.05k 1 0.05% J)In(0.0B( +1)=)) 0‹
h
2
Với x =0, x =0.0E, x =0.1, >x =0.0%
Như vậy, l~ 0.0356
Câu 3: Cho bảng dữ liệu sau:
0.7 | 0.6442 O04 1.3718
0.00000
a) f(x) = sinx
b) f(x)=ex—2x2+3x—-1
Ước lượng sai số trong phép tinh xáp xỉ
Giải
2h
Í(,x 2
Công thức sai phân tiếnf '(x_)=
_f(x-2h} 4f(x ly 3f(›
Cong thuc sai phan luif (x, )
8) — & sin(
Sử dụng công thức sai phân tiến và sai phân lùi, ta có bảng sau: (với h=0.1)
Sai phân tiên Sai phân lùi
Ket qua Sai so Ket qua Sai So 0.5 0.4794 | 0.8776 0.8804 | 0.0028 | 0.8806 | 0.0030
17
Trang 180.6 0.5646 0.8253 0.8279 0.0026 0.8282 0.0029 0,7
0.6442 0.7648 0.7672 0.0024 0.7675 0.0027
b) f(x) =6 2k #Bx-
Sử dụng công thức sai phân tiến và sai phân lùi, ta có bảng sau: (với h=0.1)
18
Sai
Trang 19
Phần 5: Phương trình vi phân Câu 1: Sử dụng phương phap Euler tim nghiệm xấp xỉ trong các trường hợp sau
bf =14(t-y, 2<t<3, y()=1, with-osf
Giải
Ta có:
Wz+i = V¿ + 0,5.[1 + ( — y)”]
CODE: y = y + 0,5.[1 + (x — y)“]:x = x + 0,5
Calc: y=1; x=2
Câu 7: Tìm nghiệm xap xi Cua phuong trinh trong các trường hợp sau:
d.J'—2y +y=t.e!— tÍ <t< 1Í) = y (0) = 0,Ý= 01
Giới
Đặt y' =z>y’ = 7’
Ta có:
(¿=2⁄-y+tet~t, 0<¿£<1
y(0)=0,z(0)=0,h= 0,1
Bam may tinh bo tui f(x) 580 VNX
CODE:A = 0,1z:B=0,1.2z-y+xe*-—x):x=x+01:C=01@+B):D= 0,1 (2 (2+ B) — (y+ A)+x.e*—x):y=y+ er zazt—
19
Trang 20Ta có bảng:
1,1043.1 7,1452.1 2,9695.10°
6,9270.10°
20
Z
5,2585.1 3,4840.10°