BÁO CÁO BÀI TẬP LỚN MATLAB ĐỀ TÀI Tìm Hiểu Hàm fminbnd A.Thành viên nhóm giảng viên hướng dẫn I.Thành viên nhóm Nhóm gồm 10 thành viên học lớp L02-AB: 15101 1.Lê Quốc Bảo 59 15102 2.Bùi Mạnh Can 54 15104 3.Đỗ Ngọc Duy 44 4.Lưu 15108 Trường Gian 31 15127 5.Lê Ngọc Quí 01 6.Nguyễn 15128 Hữu Tài 88 Tha 15129 7.Lê Hồng nh 91 8.Nguyễn Thịn 15132 Tiến h 64 15136 9.Hồ Đăng Trí 54 10.Nguyễn Tuấ 15138 Minh n 39 II.Giảng viên hướng dẫn Cô Trần Ngọc Diễm B.Nội dung báo cáo Hàm fminbnd dùng để tìm giá trọ nhỏ hàm biến khoảng xác định Cú pháp: I • • • • • x=fminbnd(fun,x1,x2) x=fminbnd(fun,x1,x2,options) [x,fval]=fminbnd( ) [x,fval,exitflag] = fminbnd( ) [x,fval,exitflag,output] = fminbnd( ) Giới thiệu II a) x=fminbnd(fun,x1,x2) :có chức đưa giá trị x khoảng x1 , x2 mà f nhỏ VD:Tìm GTNN cos(x) với x khoảng (3,4) x=fminbnd(@cos,3,4) x= 3.1416 b) • x=fminbnd(fun,x1,x2,options) :lệnh giúp bạn điều chỉnh nghiệm dài hay ngắn để rút ngắn làm bạn (làm gọn), bạn dùng lệnh optimset để thực nhiều cấu trúc: Disply : ‘off’ không hiển thị output VD : x=fminbnd(@cos,3,4,optimset('Display','off')) x= 3.1416 ‘iter’ hiển thị output sau lần làm VD: x=fminbnd(@cos,3,4,optimset('Display','iter')) Func-count x f(x) Procedure 3.38197 -0.971249 initial 3.61803 -0.888633 golden 3.23607 -0.995541 golden 3.13571 -0.999983 parabolic 3.1413 -1 parabolic 3.14159 -1 parabolic 3.14156 -1 parabolic 3.14163 -1 parabolic Optimization terminated: the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-04 x= 3.1416 ‘final’ hiển thị output sau VD: >> x=fminbnd(@cos,3,4,optimset('Display','final')) Optimization terminated: the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-04 x= 3.1416 ‘notify’ (mặt định) hiển thị output hàm không hội tụ VD: x=fminbnd(@(x).1/x,-1,-1/2,optimset('Display','notify')) x= -0.5001 • • • • • • • c) d) e) III FunValCheck : kiểm tra lại lần cho dù tìm giá trị 'on' thị thông báo lỗi hàm cho giá trị phức tạp 'off' không báo lỗi MaxFunEvals : cho phép đánh giá tất hàm số MaxIter : cho phép lặp lại tất OutputFcn : xác định hàm dùng lần làm PlotFcns : tự động điều chỉnh độ dài ngắn trình thực thuật toán , chọn từ vị trí xác định trước vị trí mà bạn chọn chuyển qua hàm khác cụm hàm khác Tolx : chấm dứt x [x,fval] = fminbnd( ) : trả giá trị nhỏ f với x tương ứng [x,fval,exitflag] = fminbnd( ) trả lại giá trị exitflag mà mô tả điều kiện thoát hàm fminbnd: : fminbnd dùng kết x dựa option.tollx : tối đa số hàm số lần lặp lặp lại làm -1 : thuật toán chấm dứt output -2 : toán sai (x1>x2) [x,fval,exitflag,output] = fminbnd( ) trở cấu trúc output tối ưu hóa vấn đề : • algorithm : thuật toán sử dụng • funcCount : đánh giá số hàm số • iterations :số lần lặp • message :kết thúc tin nhắn Giải thích fun hàm số cần tìm cực tiểu fun chấp nhận x vô hướng trả f vô hướng, hàm đối tượng đánh giá x hàm fun xác định hàm tự viết hay hàm có sẵn Ví dụ IV x=fminbnd(@cos,3,4) cho kết với vài chữ số thập phân thông báo kết thúc [x,fval,exitflag]=fminbnd(@cos,3,4,optimset(‘TolX’,1e12,’Display’,’off’)) cho kết làm tròn đến chữ số thập phân thứ 12, không hiển thị output, trả giá trị hàm x, trả exitflag = fun hàm tự viết theo x, ví dụ f(x)=x^3-2x-5 , ta tạo hàm số f=@(x) x^3-2*x-5 sử dụng fminbnd x=fminbnd(f,0,2) kết x= 0.8165 Giá trị f cực tiểu y=f(x) y= -6.0887 Hoặc làm sau: [x f]=minbnd(‘x^3-2*x-5’,0,2) Cho kết x=0.8165 f=-6.0887 4.Nếu fun hàm tham số, ta dùng : Function f=myfun(x,a) f=(x-a)^2 định giá trị a, ví du: a=1.5 tính x x=fminbnd(@(x)myfun(x,a),o,1) V Giới hạn Hàm số cần tìm cực tiểu phải liên tục đoạn cần tìm Fminbnd cho kết gần fminbnd thường cho kết gần cực tiểu ranh giới khoảng xét Fminbnd chạy với biến số thực