1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn phương pháp tính

19 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo bài tập lớn phương pháp tính
Tác giả Group 4
Người hướng dẫn TS. Đậu Thế Phiệt
Trường học Đại Học Bách Khoa TP.HCM
Chuyên ngành Phương Pháp Tính
Thể loại Báo Cáo Bài Tập Lớn
Năm xuất bản 2022
Thành phố TP.HCM
Định dạng
Số trang 19
Dung lượng 687,06 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH Group 4 Giảng viên TS Đậu Thế Phiệt TP HCM 2022 Danh sách thành viên STT Họ Tên MSSV Tiến độ hoàn thành 1 Huỳnh Vă[.]

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA

BÁO CÁO BÀI TẬP LỚN

PHƯƠNG PHÁP TÍNH

Group 4

Giảng viên: TS Đậu Thế Phiệt

TP.HCM - 2022

Trang 2

Danh sách thành viên

Trang 3

LỜI NÓI ĐẦU

Phương pháp tính là môn học đại cương có tầm quan trọng đối với sinh viên ĐH Bách Khoa nói riêng và sinh viên các ngành khối khoa học kỹ thuật công nghệ nói chung Mục đích môn học là cung cấp đầy đủ nội dung cơ bản của phương pháp tính dùng cho các ngành khoa học kỹ thuật Nó sẽ giúp sinh viên khối kỹ thuật tiếp thu vấn đề một cách nhẹ nhàng và trang bị những kỹ năng cơ bản cho người học tự phát triển khả năng áp dụng toán học vào các bài toán thực tế

Môn phương pháp tính bao gồm các kiến thức cơ bản về tìm gần đúng nghiệm cho các phương trình vi tích phân hàm phức tạp, lý thuyết sai số Cùng với đó là các chuẩn đầu ra: Nhắc lại được định nghĩa, tính chất, cách tính, vận dụng được lý thuyết vào các bài toán áp dụng và bài toán thực tế , có khả năng hoạt động nhóm

Trang 4

Mục lục

I CƠ SỞ LÝ THUYẾT 5

1 Problem 1 5

2 Problem 2 5

a Công thức hình thang 5

b Công thức Simpson 1/3 5

c Công thức Simpson 8/3 6

3 Problem 3 6

a Phương pháp chụp 6

b Phương pháp sai phân hữu hạn 7

II Code Matlab 8

III Kết quả 13

1 Problem 1 13

2 Problem 2 14

3 Problem 3 15

Trang 5

I CƠ SỞ LÝ THUYẾT

Có các giá trị của t và p(t), lúc này ta có thể lập được hệ phương trình với 3 ẩn A, B và

+ −0.3 + −0.05 = ( )

−1.5

−1.5

2 = 4.4

−1.5 3

= 3.2

Để tìm được các giá trị A, B và C ta áp dụng cách chia ma trận, lấy Vector p(t) chia

cho ma trận hệ số bên vế trái, ta sẽ thu được các hệ số A, B và C

2 Problem 2

a Công thức hình thang

chia đoạn [a, b] thành n đoạn nhỏ với bước chia ℎ = −

( 0 + 1 )+

( 2 + 1 )+⋯+

( −1 + )

b Công thức Simpson 1/3

Tìm giá trị gần đúng của tích phân xác định sau:

=∫() Trong đó ( ) là 1 hàm liên tục và khả vi trên đoạn [a;b]

Sử dụng công thức Simpson, cụ thể như sau:

Chia đoạn [a;b] thành 2 đoạn bằng nhau với 3 mốc

+

; 3 =

2

Trang 6

Khi đó ta có được:

=

Công thức (2) gọi là công thức Simpson đơn giản

Để gia tăng độ chính xác khi lấy tích phân trên các khoảng lớn hơn, khoảng (a,b) có thể được chia nhỏ hơn nữa thành n bước

Việc định trị qua 3 điểm (tương đương với việc có hai khoảng) đối với mỗi khoảng con đòi hỏi rằng phải có một số chẳn các khoảng con Nghĩa là chúng ta có thể khai

triển số các khoảng con dưới dạng n = 2k.

Ta có: ℎ = 2 − các mốc là = + ℎ; = [0;2 ]

Ta có phép biến đổi:

2

=∫() = ∫ () +∫ () +⋯+∫ ()

.( 0 +4 1 + 2 )+

.( 2 +4 3 + 4 )+⋯+

( 2 −2 + 4 2 −1 + 2 )

.[ 0 + 2 + 4( 1 + 3 + ⋯+ 2 −1 ) + 2( 2 + 4 + ⋯+ 2 −2 )]

3

c Công thức Simpson 8/3

3 (y 0 + 2(y 3 + y 6 + +y n−3 ) + 3(y 1 + y 2 + y 4 + y 5 + +y n−2 + y n−1 ) + y n )

3 Problem 3

Phương pháp Shooting được áp dụng để giải các bài toán về phương trình vi phân bậc

2 với điều kiện biên

Giả sử, ta có phương trình vi phân bậc 2 với điều kiện biên như sau:

"( ) = ( ), ( 0 ) = , ( ) = , 0 ≤ ≤

Để giải bài toán trên, ta đưa phương trình vi phân bậc 2 về dạng hệ phương trình vi phân bậc 1 của bài toán giá trị ban đầu

Đặt = ′ → ′ = ”

Phương trình vi phân bậc 2 ban đầu trở thành dạng:

Trang 7

= ( )

( 0 )= ′

( 0 )=?

{ (0)=

thì giá trị này được thay đổi theo dự đoán chủ quan của người giải

Sau khi đã đưa ra dự đoán giá trị, ta có thể áp dụng các phương pháp để giải hệ phương

vi phân như Runge – kutta bậc 4 hoặc phương pháp Euler b Phương pháp sai phân

hữu hạn

Với phương pháp sai phân hữu hạn, chọn số tự nhiên n bất kỳ >0 Chia đều đoạn [a, b] thành n đoạn bởi các điểm chia x 0 = a, x k = x 0 +kh, k = 1, 2, …, n-1, x n = b với ℎ =

Tại các nút xk, k = 1, 2, …, n-1 bên trong đoạn [a, b] sử dụng công thức sai phân hướng tâm, ta có:

′ ( )≈

( +1 ) − ( −1 )

=

+1 −

−1

2ℎ 2ℎ

"( ) ≈

( +1 ) − 2 ( ) + ( −1 )

=

+1 − 2 + −1

Thay vào phương trình đã cho ta được

+1 − 2 +

−1

+

+1 −

−1

ℎ 2

2ℎ

∀ = 1,2,…, − 1

Từ các điều kiện biên ( ) = , ( ) = , sau khi biến đổi ta thu được hệ phương trình

0 = , =

ℎ2−2ℎ) −1 + ( −

ℎ2) + (ℎ2+2ℎ) +1 = ,∀ = 1,2,…, − 1

Đây chính là hệ phương trình đại số tuyến tính cấp n-1: AY=B với A là ma trận bên dưới

Trang 8

+

1

0 … 0

ℎ 2

2

2

2 2

ℎ 2 2ℎ ℎ 2 ℎ 2 2ℎ

2

−1

)

−1

= [ , , … , ]

1 2 −1

−(

1

1

)

Và =

ℎ 2ℎ

2

−2

( −1−( ℎ −2+2ℎ)

)

function[]=Project1()

tt=[0.5 1 2 3 4 5 6 7 9]; %thiết lập các giá trị t P=[6 4.4 3.2 2.7 2 1.9 1.7 1.4 1.1]; %thiết lập các giá trị p(t)

BPCTABCProjec1(P',tt') %gọi hàm BPCTABCProjec1 để tìm các

hệ số A, B, C

f=1-exp(-x); thiết lập hàm f(x)

disp('[2.a]');b2a=double(int(f,0,4)); %tính giá trị tích phân bằng hàm int của matlab

fprintf('Integral of Matlab`s Function: %.4f\n',b2a);

%dùng công thức hình thang tính giá trị tích phân với

đoạn chia là 1

b2b=c5trapez(f,0,4,1); %dùng phương pháp hình thang để tính tích phân của f với số đoạn chia là 1

disp('[2.b]');

fprintf('- Single application of the trapezoidal rule:

%.4f\n',b2b); %hiện giá trị tích phân từ công thức hình thang với n = 1

fprintf('- The true percent relative error based on (a):

%.4f\n',abs(b2b-b2a)*100/b2a); %hiện giá trị sai số so với giá trị chuẩn ở câu a

b2c1=c5trapez(f,0,4,2); %dùng công thức hình thang tính giá trị tích phân với đoạn chia là 2 disp('[2.c]');

Trang 9

fprintf('- Composite trapezoidal rule, with n = 2: %.4f\ n',b2c1); %hiện giá trị tích phân từ công thức hình thang với n = 2

Trang 10

fprintf('- The true percent relative error based on (a):

%.4f\n',abs(b2c1-b2a)*100/b2a); b2c2=c5trapez(f,0,4,4);

%dùng công thức hình thang tính giá trị tích phân với đoạn chia là 4 disp('([2.c]');

fprintf('- Composite trapezoidal rule, with n = 4: %.4f\ n',b2c2); %hiện giá trị tích phân từ công thức hình

thang với n = 4

fprintf('- The true percent relative error based on (a):

%.4f\n',abs(b2c2-b2a)*100/b2a); %hiện giá trị sai số so với giá trị chuẩn ở câu a

disp('[2.d]');

b2d=simpson1_3(f,0,4,1); %dùng công thức Simpson 1/3 tính giá trị tích phân với đoạn chia là 1

fprintf('- Single application of Simpson`s 1/3 rule:

%.4f\n',b2d); %hiện giá trị tích phân từ công thức

Simpson 1/3 với n = 1

fprintf('- The true percent relative error based on (a):

%.4f\n',abs(b2d-b2a)*100/b2a); %hiện giá trị sai số so với giá trị chuẩn ở câu a

disp('[2.e]');

b2e=simpson1_3(f,0,4,4); %dùng công thức Simpson 1/3 tính giá trị tích phân với đoạn chia là 4

fprintf('- Composite Simpson`s 1/3 rule, with n = 4:

%.4f\n',b2e); %hiện giá trị tích phân từ công thức

Simpson 1/3 với n = 4

fprintf('- The true percent relative error based on (a):

%.4f\n',abs(b2e-b2a)*100/b2a); %hiện giá trị sai số so với giá trị chuẩn ở câu a

disp('[2.f]');

b2f=simpson3_8(f,0,4,1); %dùng công thức Simpson 8/3 tính giá trị tích phân với đoạn chia là 1

fprintf('- Single application of Simpson`s 3/8 rule:

%.4f\n',b2f); %hiện giá trị tích phân từ công thức

Simpson 8/3 với n = 1

fprintf('- The true percent relative error based on (a):

%.4f\n',abs(b2f-b2a)*100/b2a); %hiện giá trị sai số so với giá trị chuẩn ở câu a

disp('[2.g]');

b2g=simpson1_3(f,0,4,5); %dùng công thức Simpson 1/3 tính giá trị tích phân với đoạn chia là 5

fprintf('- Composite Simpson`s 1/3 rule, with n = 5:

%.4f\n',b2g); %hiện giá trị tích phân từ công thức

Simpson 1/3 với n = 5

fprintf('- The true percent relative error based on (a):

%.4f\n',abs(b2g-b2a)*100/b2a); %hiện giá trị sai số so với giá trị chuẩn ở câu a

Trang 11

disp('>Problem 3<');

figure(2);

ShootingMethod(-25,x,0,10,40,200,2); %gọi hàm

ShootingMethod để tính toán

thị

figure(3);

SPHH(1,0,0,-25,2,0,10,40,200); %gọi hàm SPHH để tính toán

tiêu đề đồ thị

end

function []=BPCTABCProjec1(P,tt) – hàm BPCTABCProject1 tìm các hệ số A, B, C

pt=[exp(-1.5*tt) exp(-0.3*tt) exp(-0.05*tt)];

Y=pt\P;

YT=Y(1)*exp(-1.5*t) + Y(2)*exp(-0.3*t) +

Y(3)*exp(-0.05*t);

end

function [y]= c5trapez(f,a,b,n) – công thức hình thang

h=(b-a)/n;

X=a;

y=0;

y=(y+h*subs(f,X));

X=X+h;

else

y=(y+0.5*h*subs(f,X));

X=X+h;

end

end

end

function [y]=simpson1_3(f,a,b,n) – công thức simpson 1/3 h=(b-a)/n;A=a;

y=subs(f,a)+subs(f,b);

Trang 12

for i=1:n-1

A=A+h;

B=2;

end

y=y+B*subs(f,A);

end

y=double(y*h/3);

end

function[Y]=simpson3_8(f,a,b,n) – công thức simpson 8/3

h=(b-a)/n;k=h;h=h+a;

y(i)=subs(f,x,h);

h=h+k;

end

Y=subs(f,a)+y(n);

B=2;

end

Y=Y+B*y(i);

end

Y=double(Y*k*3/8);

end

function[]=SPHH(p,q,r,f,h,x1,x2,y0,yn) – hàm SPHH

k=x1;

n=(x2-x1)/h;

Y(1)=y0;X(1)=x1;

t(i)=h+k;

k=t(i);

end

X(i)=t(i-1);

X(n+1)=x2;

end

Trang 13

if i==j

A(i,j)=double(subs(r,t(i))-2*subs(p,t(i))*(h^-2));

elseif i<j

A(i,j)=0;

else

A(i,j)=double((subs(p,t(i))*h^-2)+(subs(q,t(i))/(2*h)));

end else if i>=j+2

A(i,j)=0;

A(i,j)=double((subs(p,t(i))*h^-2)-(subs(q,t(i))/(2*h)));

end end

end

B(i)=double(subs(f,t(i))(subs(p,t(i))/(h^2) -subs(q,t(i))/(2*h))*y0);

elseif i==n-1

B(i)=double(subs(f,t(i))-(subs(p,t(i))/(h^2) + subs(q,t(i))/(2*h))*yn);

else

B(i)=double(subs(f,t(i)));

end

end

B=double(transpose(B));

y=double((A^-1)*B);

Y(i)=y(i-1);

Y(n+1)=double(yn);

end

figure(3);

end

end

function[]=ShootingMethod(f,g,a,b,ya,yb,h)

Trang 14

end

end

function[]=c6rk4vp(f,g,x0,y0,t1,t2,h,c)

xa=x0;ya=y0;ta=t1;n=(t2-t1)/h;

hh=0;

XA=xa;YA=ya;TA=ta;

k1x=h*subs(subs(subs(f,x,xa),y,ya),t,ta);

k1y=h*subs(subs(subs(g,x,xa),y,ya),t,ta);

k2x=h*subs(subs(subs(f,x,xa+0.5*k1x),y,ya+0.5*k1y),t,ta+0 5*h);

k2y=h*subs(subs(subs(g,x,xa+0.5*k1x),y,ya+0.5*k1y),t,ta+0 5*h);

k3x=h*subs(subs(subs(f,x,xa+0.5*k2x),y,ya+0.5*k2y),t,ta+0 5*h);

k3y=h*subs(subs(subs(g,x,xa+0.5*k2x),y,ya+0.5*k2y),t,ta+0 5*h);

k4x=h*subs(subs(subs(f,x,xa+k3x),y,ya+k3y),t,ta+h);

k4y=h*subs(subs(subs(g,x,xa+k3x),y,ya+k3y),t,ta+h);

xa=double(xa+(k1x+2*k2x+2*k3x+k4x)/6);

ya=ya+(k1y+2*k2y+2*k3y+k4y)/6;

XA=[XA xa];YA=[YA ya];

ta=ta+h;TA=[TA ta];

ya=double(ya);

hh=hh+h;

%f, k3y = %f\nk4x = %f, k4y =

end

Trang 15

2 Problem 2

Trang 19

TÀI LIỆU THAM KHẢO

Stephen C Chapra Dr

TP.HCM)

Ngày đăng: 25/04/2023, 09:39

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w