ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HỒ CHÍ MINH KHOA KHOA HỌC ỨNG DỤNG BỘ MƠN TỐN ỨNG DỤNG * - BÁOCÁO BÀI TẬP LỚN ĐỀ TÀI SỐ: 03 GVHD: Nguyễn Hữu Hiệp Khoa: CƠ KHÍ Lớp : CK12CK12 Nhóm: 02 Nhóm sinh viên thực hiện: Họ tên Thi Vỹ Học Điền Anh Huy Đào Nguyễn Nhật Huỳnh Phan Nguyễn Đăng Khôi Nguyễn Việt Linh Nguyễn Thành Luân Đặng Đức Trường MSSV 21201278 21201330 21201441 21201747 21201913 21202051 21204200 Tp HCM, tháng 12 năm 2012 ĐỀ TÀI 3A: Nhập hàm P( x, y), Q( x, y), f ( x) đường cong L có phương trình dạng y f ( x) Tính tích phân đường loại Pdx Qdy L Cơ sở lý thuyết: Áp dụng phương pháp tính tích phân đường loại biết phương trình đường cong C có dạng y f ( x) , hoành độ điểm đầu xA a hoành độ điểm cuối xB b : b I P( x, y( x)) Q( x, y( x)) y '( x) dx a Mã nguồn: syms x cP cQ cy a b kq y opt opt='y'; while opt=='y' cP=input('Nhap P(x,y)= '); cQ=input('Nhap Q(x,y)= '); cy=input('Nhap y=f(x)= '); a=input('Nhap hoanh diem dau= '); b=input('Nhap hoanh diem cuoi= '); kq=int(subs(cP,y,cy,0)+subs(cQ,y,cy,0)*diff(cy),x,a,b); disp('Ket qua:'); disp(kq); opt=input('Ban co muon tiep tuc??(y/n) ','s'); disp(' '); end Chú thích: Opt biến nhận kết lựa chọn có tiếp tục chạy chương trình hay khơng Nếu opt=’y’ chương trình tiếp tục phiên làm việc mới, opt khác ‘y’ Kq tính cách thay hết biến y hàm P(x,y) Q(x,y) cy (tức f(x)) để P(x,y) Q(x,y) (subs(cP,y,cy,0)+subs(cQ,y,cy)) trở thành hàm biến theo x, đồng thời thay dy=y’(x)dx (diff(cy),x,a,b)) Các ví dụ kết thu được: Nhap P(x,y)= x^2-2*x*y Nhap Q(x,y)= y^2-2*x*y Nhap y=f(x)= x^2 Nhap hoanh diem dau= -1 Nhap hoanh diem cuoi= Ket qua: -14/15 Nhap P(x,y)= 2*x+y Nhap Q(x,y)= 4*x+y Nhap y=f(x)= sqrt(4-x^2) Nhap hoanh diem dau= -2 Nhap hoanh diem cuoi= Ket qua: -6*pi Nhap P(x,y)= Nhap Q(x,y)= abs(x-y) Nhap y=f(x)= sqrt(4-x^2) Nhap hoanh diem dau= Nhap hoanh diem cuoi= Ket qua: Nhap P(x,y)= (x^2)*y Nhap Q(x,y)= x^2 Nhap y=f(x)= x^2 Nhap hoanh diem dau= Nhap hoanh diem cuoi= Ket qua: 72/5 Ưu điểm khuyết điểm: Ưu điểm: Chương trình ngắn gọn, xúc tích Các biến khai báo rõ rang Có vòng lặp để kiểm sốt q trình lặp lại theo ý muốn Cho đến chưa phát lỗi khâu tính tốn Khuyết điểm: Cơng thức tính kết tương đối phức tạp lồng ghép nhiều bước vào để chương trình ngắn đơn giản Sử dụng 690 bytes nhớ làm việc HẾT CÂU A ĐỀ TÀI 3B: Nhập hàm f ( x, y) số tự nhiên n Khai triển Maclaurin f ( x, y) đến cấp n Cơ sở lý thuyết: Khai triển Taylor hàm f ( x, y) đến cấp n điểm O(0,0) theo công thức: d k f (0,0) f ( x, y) f (0,0) Rn k ! k 1 n Cụ thể là: f ( x, y) f (0,0) Với Rn n ( x y)k f (0,0) Rn y k 1 k ! x d n1(x, y) (n 1)! Mã nguồn: syms x y n clc opt='y'; while opt=='y' f=input('Nhap vao ham hai bien f(x,y): '); n=input('Nhap vao so nguyen n: '); disp(taylor(f,[x y],'ExpansionPoint',[0 0],'Order',n+1)); opt=input('Ban co muon tiep tuc (y/n)? ','s'); disp(' -'); end Các ví dụ kết trả về: Nhap vao ham hai bien f(x,y): 1/(1+x+y-x*y) Nhap vao so nguyen n: x^2 + 3*x*y - x + y^2 - y + Nhap vao ham hai bien f(x,y): x*sin(y-2) Nhap vao so nguyen n: (x*sin(2)*y^2)/2 + x*cos(2)*y - x*sin(2) Nhap vao ham hai bien f(x,y): exp(x^2+x*y) Nhap vao so nguyen n: x^2 + y*x + HẾT CÂU B ĐỀ TÀI 3D: Nhập hàm z f ( x, y) điểm M Tính vi phân cấp d f (M ) Cơ sở lý thuyết: Công thức tổng quát cho vi phân cấp cao: d n f d (d n1 f ) Cơng thức hình thức: d n f ( x, y) dx dy y x n f ( x, y) Từ đó, theo khai triển nhị thức Newton cho trường hợp n=2, ta được: d f ( x, y) ( 2 f 2 f 2 f dx dy)2 dx dxdy dy x y xy x y Ta tính giá trị 2 f , 2 f , 2 f dy2 x2 xy y2 Sau ta giá trị tọa độ điểm M để tính Mã nguồn: clc syms x y a b opt opt='y'; format rat; while opt=='y' c=input('Nhap vao ham z=f(x,y): ','s'); m=input('Nhap diem M(a,b): '); f=eval(c); % TINH CAC DAO HAM RIENG % fxx=diff(subs(f,y,m(2)),x,2); fxy=diff(diff(f,x,1),y,1); fyy=diff(subs(f,x,m(1)),y,2); % TINH CAC GIA TRI CHI SO PHIA TRUOC DHR % xx_index=subs(fxx,x,m(1)); xy_index=2*subs(subs(fxy,y,m(2)),x,m(1)); yy_index=subs(fyy,y,m(2)); % CHUYEN SO THANH CHUOI DE TIEN HANH RAP NOI % xx_str=num2str(xx_index); xy_str=num2str(xy_index); yy_str=num2str(yy_index); % XU LY CHUOI VA DAU CUA CAC HANG TU % ans1=[xx_str, 'dx^2 ']; if (xy_index>0)&&(xx_index~=0) ans2=[' + ', xy_str, 'dxdy']; else ans2=[xy_str, 'dxdy ']; end if yy_index>0&&xx_index~=0&&xy_index~=0 ans3=[' + ', yy_str,'dy^2']; else ans3=[yy_str,'dy^2']; end if xx_index==1 ans1='dx^2'; end if xy_index==1 ans2='dxdy'; end if yy_index==1 ans3='dy^2'; end if xx_index==0 ans1=''; end if xy_index==0 ans2=''; end if yy_index==0 ans3=''; end if (xx_index==0)&&(xy_index==0)&&(yy_index==0) disp('0'); else disp([ans1, ans2, ans3]); end % XUAT RA MAN HINH KET QUA % opt=input('Ban co muon tiep tuc?(y/n) ','s'); disp(' -'); end Các ví dụ kết trả về: Ưu điểm – Khuyết điểm: Khuyết điểm: Một số kết trả dạng số thập phân Mã nguồn dài tương đối phức tạp phần điều chỉnh hiển thị kết Tọa độ điểm nhập vào dạng ma trận Dùng nhiều biến Ưu điểm: Kết trả dạng Giải hướng toán nên dễ hiểu phần mã tính tốn Kết hợp xử lý chuỗi số để có kết hiển thị mong muốn HẾT BÁOCÁO ... thức Newton cho trường hợp n =2, ta được: d f ( x, y) ( 2 f 2 f 2 f dx dy )2 dx dxdy dy x y xy x y Ta tính giá trị 2 f , 2 f , 2 f dy2 x2 xy y2 Sau ta giá trị tọa độ điểm... nguyen n: x ^2 + 3*x*y - x + y ^2 - y + Nhap vao ham hai bien f(x,y): x*sin(y -2) Nhap vao so nguyen n: (x*sin (2) *y ^2) /2 + x*cos (2) *y - x*sin (2) Nhap vao ham hai bien f(x,y): exp(x ^2+ x*y) Nhap vao... P(x,y)= x ^2- 2*x*y Nhap Q(x,y)= y ^2- 2*x*y Nhap y=f(x)= x ^2 Nhap hoanh diem dau= -1 Nhap hoanh diem cuoi= Ket qua: -14/15 Nhap P(x,y)= 2* x+y Nhap Q(x,y)= 4*x+y Nhap y=f(x)= sqrt(4-x ^2) Nhap hoanh