Matlab với môn học các phương pháp số

Chia sẻ: Truong Ngoc Tam Tam | Ngày: | Loại File: DOC | Số trang:10

0
379
lượt xem
142
download

Matlab với môn học các phương pháp số

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong báo cáo này chúng tôi đề cập đến việc sử dụng MATLAB trong việc giảng dạy môn Các phương pháp số và giới thiệu về một thư viện các chương trình/hàm mã nguồn phục vụ cho môn học đó.

Chủ đề:
Lưu

Nội dung Text: Matlab với môn học các phương pháp số

  1. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 17      MATLAB VỚI  MÔN HỌC CÁC PHƯƠNG PHÁP SỐ Đặng Quang Á  Viện Công nghệ thông tin Viện khoa học và công nghệ Việt nam Trong báo cáo này chúng tôi đề cập đến việc sử dụng MATLAB trong việc giảng  dạy môn Các phương pháp số và giới thiệu về một thư viện các chương trình/hàm mã  nguồn phục vụ cho môn học đó. 1. Giới thiệu sơ lược về MATLAB MATLAB – phần mềm nổi tiếng của công ty MathWorks,  là một ngôn ngữ hiệu  năng cao cho tính toán k    thu   t   như được viết trong logo của phần mềm này. Nó tích     ỹ   ậ  hợp tính toán, hiện thị và lập trình trong một môi trường dễ sử dụng. Các ứng dụng tiêu  biểu của MATLAB bao gồm:  − Hỗ trợ toán học và tính toán − Phát triển thuật toán − Mô hình, mô phỏng − Phân tích, khảo sát và hiển thị số liệu − Đồ họa khoa học và kỹ thuật − Phát triển ứng dụng với các giao diện đồ họa. Tên của phần mềm MATLAB bắt nguồn từ thuật ngữ “Matrix Laboratory”. Đầu  tiên nó được viết bằng FORTRAN để  cung cấp truy nhập dễ  dàng tới phần mềm ma  trận được phát triển bởi các dự án LINPACK và EISPACK. Sau đó nó được viết bằng  ngôn ngữ C trên cơ sở các thư viện nêu trên và phát triển thêm nhiều lĩnh vực của tính  toán khoa học và các ứng dụng kỹ thuật.  Ngoài MATLAB cơ  bản với các khả  năng rất phong phú sẽ  được đề  cập sau,  phần mềm MATLAB còn được trang bị thêm các ToolBox – các gói chương trình (thư viện) cho các lĩnh vực ứng dụng rất đa dạng như xử lý tín hiệu, nhận dạng hệ thống, xử lý ảnh, mạng nơ ron, logic mờ, tài chính, tối ưu hóa, phương trình đạo hàm riêng, sinh tin  học,... Đây là các tập hợp mã nguồn viết bằng chính MATLAB dựa theo các thuật toán  mới, hữu hiệu mà người dùng có thể chỉnh sửa hoặc bổ sung thêm các hàm mới.
  2. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 18        MATLAB đ   c thi   t k    đ    gi   i các bài toán b   ng s    chứ không nhằm mục đích   ượ   ế   ế   ể   ả   ằ   ố chính là tính toán ký hiệu như MATHEMATICA và MAPLE. Tuy nhiên, trong MATLAB  cũng có thể tính toán ký hiệu được nhờ các hàm trong  Symbolic Math ToolBox. Một số đặc trưng chính của MATLAB:  − MATLAB là ngôn ngữ thông dịch. Vì thế nó có thể làm việc ở hai chế độ: tương  tác và lập trình. Trong chế độ tương tác MATLAB thực hiện từng lệnh được gõ  trong cửa sổ lệnh sau dấu nhắc lệnh và kết quả tính toán được hiện ngay trong  cửa sổ này, còn đồ thị  được hiện trong một cửa sổ khác. Lệnh tương tác có thể là đơn giản, thí dụ tính sin(1.5) hoặc vẽ fplot('sin(1 ./ x)', [0.01 0.1]), có thể là cấu  trúc điều kiện, thí dụ if x
  3. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 19      tốt các đối tượng 3 chiều phức tạp như hình trụ, hình cầu, hình xuyến,..và cung  cấp khả năng xử lý ảnh và hoạt hình. − Xây dựng giao diện người dùng: với MATLAB 7 người dùng có thể dễ dàng xây  dựng giao diện gồm các thực đơn, nút lệnh, hộp thoại, hộp chọn,...mà không cần  phải viết mã như các phiên bản trước đây. 2. MATLAB với môn học Các phương pháp số Nhờ có các khả năng và ưu thế như đã nói ở trên MATLAB được cộng đồng hàn  lâm trên thế giới chấp nhận rộng rãi như một công cụ phục vụ cho giảng dạy, nghiên  cứu toán học và phát triển các ứng dụng kỹ thuật. Hơn 3500 trường đại học nhất là các  trường đại học kỹ thuật đã đưa MATLAB vào giảng dạy và nghiên cứu. Hiện nay đã có  trên 700 đầu sách về MATLAB dành cho giáo viên, sinh viên và các nhà chuyên môn. Trên  Internet   các   tài   liệu   có   liên   quan   đến   MATLAB   rất   nhiều.   Nếu   vào   trang   Web  http:\\www.google.com.vn tìm kiếm theo từ khóa “MATLAB”  ta sẽ tìm thấy nhiều triệu  kết quả có liên quan, trong đó có nhiều tài liệu giới thiệu và dạy về MATLAB. Thí dụ: A   practical   introduction   to   MATLAB  taị  địa   chỉ http://www.math.mtu.edu/~msgoken/  ,MATLAB   summary   and   Tutorial  tại  http://www.math.ufl.edu/help/matlab­tutorial. Ở Việt nam, theo tôi được biết, MATLAB đã được đưa vào giảng dạy cho sinh  viên, học viên cao học hoặc giới thiệu tại một số khoa, trường đại học và cũng đã xuất  bản một số đầu sách về MATLAB dành cho sinh viên các khối khoa học và kỹ thuật. Đã  có nhiều sinh viên ngành Toán và  các ngành kỹ thuật sử dụng MATLAB  làm đồ án tốt  nghiệp. Tuy nhiên mức độ phổ biến của MATLAB chưa phải là cao. Với ưu thế về tính toán số trị MATLAB rất thích hợp cho việc giảng dạy môn  học “Các phương pháp số”­ môn học không thể thiếu được  đối với sinh viên toán, lý,  công nghệ thông tin và các ngành kỹ thuật. Việc sử dụng MATLAB để lập trình các thuật  toán của môn học này có cái lợi là đơn giản, dễ dàng vẽ các đồ thị để hiện thị kết quả và  kiểm tra kết quả các chương trình tự viết so với kết quả của các hàm đã cài đặt sẵn vì  MATLAB cơ bản chứa đựng rất nhiều các hàm tính toán toán học như đã nói trong mục  1. Nhận thức được điều này, trong quá trình giảng dạy môn học “Các phương pháp số”  tôi đã khuyến cáo sinh viên khai thác và sử dụng MATLAB để lập trình thay cho sử dụng  ngôn ngữ truyền thống là PASCAL hoặc C. Trong giáo trình “Các phương pháp số” viết  cuối năm 2003 nhưng chưa xuất bản tôi đã minh họa các thuật toán bằng các chương  trình viết bằng MATLAB và trong phần Phụ lục tôi đã cung cấp một số kiến thức cơ
  4. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 20      bản về phần mềm này làm cơ sở ban đầu để sinh viên có thể tự học thêm về MATLAB.  Giáo trình này tôi cũng đã cho photocopy để phổ biến. Hiện nay trên thế giới người ta đã xuất bản khá nhiều sách về các ph   ng pháp    ươ       ố với các chương trình viết bằng MATLAB. Các chương trình này thường được tổ chức  s     thành các ToolBox và cung cấp miễn phí trên Internet. Dưới đây là danh sách một số sách  và  địa chỉ các Web site nơi giới thiệu hoặc có thể tải về các ToolBox –phần mềm đồng  hành với sách: 1. Gerald Recktenwald, Numerical methods with MATLAB, Prentice Hall, 2000.  Companion Software:  nmm (Numerical methods with MATLAB) ToolBox.  http://www.prenhall.com/recktenwald 2. Shoichiro Nakamura, Numerical Analysis and Graphic Visualization with MATLAB,  Prentice Hall, 1996. Companion Software: Numerical Analysis and Graphic  Visualization Toolbox. ftp://ftp.mathworks.com/pub/books/nakamura/,  http://www.mathworks.com/matlabcentral/fileexchange 3. Charles F. Van Loan, Introduction to Scientific Computing: A Matrix­Vector   Approach Using MATLAB, Prentice Hall, 1997, ftp://ftp.cs.cornell.edu/pub/cv. 4. David Kincaid & Ward Cheney,Numerical Analysis, 2e, Brooks/Cole Publishing  Company, 1996  ftp://ftp.brookscole.com/brookscole/Mathematics/Texts_by_Author/Kincaid_Cheney /matlab. 5. John H. Mathews, Numerical Methods for Mathematics, Science, and Engineering,  2e, Prentice Hall, 1992, ftp://ftp.mathworks.com/pub/books/mathews/ 6. George Lindfield & John Penny, Numerical Methods Using MATLAB,  Prentice Hall/Ellis Horwood, 1995,  7. G. J. Borse, Numerical Methods With MATLAB: A Resource for Scientists and   Engineers, PWS Publishing Company, 1997,  8. Gunnar Backstrom, Practical Mathematics Using MATLAB 5,  Studentlitteratur, 1997 9. G.W. Recktenwald Numerical Methods with MATLAB: Implementations and  Applications, Prentice Hall, 2000. www.me.pdx.edu/~gerry/nmm 10. Paolo Brandimarte, Numerical Methods in Finance: A MATLAB­Based Introduction,  Wiley, 2001. 11.   Laurene V. Fausett  , Applied Numerical Analysis Using Matlab, Prentice Hall, 1999. 12. Won Young Yang, Wenwu Cao, Tae­Sang Chung, John Morris,  Applied Numerical   Methods Using MATLAB,  Wiley, 2005.
  5. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 21      13. Howard Wilson, Louis H. Turcotte, David Halpern, Advanced Mathematics and  Mechanics Applications Using MATLAB, Third Edition, CRC Press, 1998. Trong phần tiếp theo chúng tôi giới thiệu sơ lược về Numerical methods with  MATLAB ToolBox –nmm của Recktenwald. 3. Thư viện chương trình NMM ToolBox về các phương pháp số NMM ToolBox là một thư  viện chứa khoảng 150 chương trình/hàm viết bằng  MATLAB  và 40 tập dữ liệu từ các ứng dụng rất đa dạng được tổ chức thành các thư mục: data, eigen, errors, fit, intergrate,interact, interpolate, linalg, ode, program, rootfind  and utils. Các chương trình/hàm đều cho dưới dạng mã nguồn MATLAB nên người dùng  có thể xem để tham khảo thuật toán và tự mình chỉnh sửa theo ý muốn hoặc dựa vào đó  để viết các hàm khác. Trừ thư mục data chứa các tệp dữ liệu mẫu cho các thí dụ, thư mục utils chứa một số hàm tiện ích và thư mục interact chứa một số hàm và thí dụ demo  về các loại đường, mặt, contour,  còn các thư mục khác chứa các hàm và các thí dụ minh  họa về giá trị riêng, sai số, đường phù hợp, tích phân số, nội suy, hệ phương trình đại số tuyến tính và phi tuyến, giải số phương trình vi phân thường, tìm nghiệm của phương  trình phi tuyến và một số chương trình tính toán khác. Dưới đây trích chọn một số hàm  trong các thư mục của NMM ToolBox thể hiện các thuật toán rất cơ bản có trong bất kỳ  giáo trình phương pháp tính nào. Thư mục Intergrate: − Hàm I = trapezoid(fun,a,b,npanel) và hàm I = simpson(fun,a,b,npanel) tính gần đúng  tích phân theo công thức hình thang và công thức Simpson tương ứng của hàm có  tên là fun từ a đến b với số đoạn chia đều là npanel.  − Hàm demoTrap và hàm demoSimp không tham số minh họa sử dụng hàm trapezoid  và simpson tính tích phân của hàm số x*exp(­x) trên đoạn [0,5] với các số đoạn  chia là 2 4 8 16 32 64 128 256. − Các hàm I = plotTrapInt(fun,a,b,npanel)và plotSimpInt(fun,a,b,nsub) cho biểu diễn  đồ họa các công thức hình thang và Simpson. − Hàm [x,w] = GLNodeWt(n) tính các nút và trọng số của công thức cầu phương  Gauss­Legendre bậc n. − Hàm I = gaussQuad(fun,a,b,npanel,nnode) tính gần đúng tích phân theo công thức  Gauss­Legendre với số nút trên mỗi đoạn con là nnode. − Hàm demoGauss minh họa tính tích phân của hàm số x*exp(­x) trên đoạn [0,5]  bằng công thức Gauss­Legendre.
  6. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 22      − Hàm compIntRules không tham số so sánh các công thức hình thang, Simpson và  Gauss­Legendre trên thí dụ hàm x*exp(­x) trên đoạn [0,5]. Thí dụ áp dụng: Trong cửa sổ lệnh thực hiện lệnh fun = inline('x.*exp(­x)'), rồi lệnh  plotTrapInt(fun,0,1,5) MATLAB sẽ tính được tích phân bằng 0.2609 và vẽ hình dưới đây 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Hình 1. Minh họa công thức hình thang Thư mục Interpolate − Hàm yi = lagrint(x,y,xi) tính nội suy hàm cho bởi bảng giá trị (x,y) tại xi bằng đa  thức nội suy Lagrange. − Hàm [yhat,dy,cout] = newtint(x,y,xhat) tính nội suy bởi đa thức Newton. − Hàm linterp(x,y,xi)nội suy từng mẩu tuyến tính. − Hàm [yhat,aa,bb,cc,dd] = splint(x,y,xhat,opt1,opt2) nội suy bởi hàm spline bậc 3  với các loại điều kiện biên khác nhau. − Hàm compSplinePlot demo hàm spline với các loại điều kiện biên khác nhau.
  7. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 23      Natural end conditions Zero-slope end conditions 0.5 0.5 knots knots 0.4 x*exp(-x) 0.4 x*exp(-x) 0.3 spline 0.3 spline 0.2 0.2 0.1 0.1 0 0 0 2 4 6 0 2 4 6 Not-a-knot end conditions Exact-slope end conditions knots knots 0.4 x*exp(-x) 0.4 x*exp(-x) 0.3 spline 0.3 spline 0.2 0.2 0.1 0.1 0 0 0 2 4 6 0 2 4 6 Hình 2. Spline bậc 3 với các điều kiện biên khác nhau Thư mục RootFind − Hàm r = bisect(fun,xb,xtol,ftol) tìm nghiệm của phương trình f(x)=0 bằng phương  pháp chia đôi. − Hàm r = newton(fun,x0,xtol,ftol)tìm nghiệm của phương trình f(x)=0 bằng phương  pháp Newton. − Hàm xm = demoBisect(xleft,xright,n) minh họa phương pháp chia đôi giải phương  trình x ­ x^(1/3) – 2 = 0. − Hàm x = demoNewton(x0,n) minh họa phương pháp Newton. Thư mục Fit − Hàm [c,R2] = linefit(x,y)tìm đường thẳng phù hợp (hồi quy tuyến tính). − Hàm lineTest minh họa đường thẳng phù hợp. − Hàm c = xexpfit(x,y) tìm đường phù hợp dạng y = c(1)*x*exp(c(2)*x) bằng  phương pháp bình phương cực tiểu. − Hàm demoXexp(n)minh họa hàm trên
  8. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 24      3.5 0.7 original noisy 0.6 3 fit 0.5 2.5 y data and fit function 0.4 c1 = 4.524 c2 = -2.915 2 10 points in synthetic data set y 0.3 1.5 0.2 1 0.1 0.5 0 0 1 2 3 4 5 6 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x values x Hình 3. Đường thẳng phù hợp Hình 4. Đường y = c1*x*exp(c2*x) phù hợp Thư mục Linalg − Hàm x = GEshow(A,b,ptol)chỉ ra các bước giải hệ phương trình Ax=b bằng  phương pháp khử Gauss không trụ xoay. − Hàm C = Cholesky(A)tìm khai triển Cholesky của ma trân đối xứng, xác định  dương A = C'*C. − Hàm [L,U] = luNopiv(A,ptol)tìm khai triển A = L*U không xoay. − Hàm [L,U,pv] = luPiv(A,ptol) tìm khai triển A = L*U có xoay Thư mục ode − Hàm [t,y] = odeEuler(f,tn,h,y0) giải số phương trình vi phân dy/dt=f(t,y) trên đoạn  [0, tn] với điều kiện đầu y(0)=y0, bước lưới h bằng phương pháp Euler. − Hàm [t,y] = odeRK4(f,tn,h,y0)­ phương pháp Runge­Kutta bậc 4. − Hàm demoEuler(h)minh họa phương pháp Euler giải phương trình dy/dt = t ­ 2*y;  y(0) = 1.  − Hàm demoRK4(h) minh họa phương pháp Runge­Kutta bậc 4 giải phương trình  dy/dt = t ­ 2*y;  y(0) = 1.  − Hàm [t,y] = odeRK4sys(diffeq,tn,h,y0)giải hệ phương trình vi phân thường với véc  tơ hàm vế phải diffeq. − Hàm demoSystem minh họa phương pháp giải hệ phương trình vi phân thường.   Để có thể hiểu các hàm nêu trên và các hàm khác trong NMM ToolBox  chỉ cần  nắm được một số quy ước về cách viết ma trận, trích ma trận, véc tơ, một số hàm cài  đặt sẵn như: sum, max, min, prod, norm, sort, length, size (cho kích cỡ ma trận), zeros (tạo  ma trận với các phần tử 0), linspace (tạo véc tơ các điểm cách đều), eye (tạo ma trận đơn 
  9. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 25      vị), tril và  triu (trả về ma trận tam giác dưới và trên), inline (xây dựng hàm số dạng  dòng), feval (tính giá trị của hàm) , một số hàm đồ họa như plot, subplot, set, fill, xlabel,  ylabel, legend, title. 4. Một số nhận xét kết luận − Đối với việc học  tập và nghiên cứu môn Phương pháp số nói riêng và các môn  Toán ứng dụng  nói chung như Tối ưu hóa, Xác xuất­Thống kê thì MATLAB là  một môi trường lý tưởng vì nó đơn giản, dễ sử dụng, hỗ trợ nhiều hàm cài đặt  sẵn và rất nhiều hàm dưới dạng mã nguồn (của MATLAB cơ bản và các ToolBox  Optimization, Statistics,  Spline, Wavelet, Curve Fitting) cũng như hỗ trợ đồ họa  phong phú. Người sử dụng không phải mất thời gian vào việc lập trình mà có thể dành nhiều thời gian và công sức cho tìm hiểu và phát triển thuật toán. − Đối với công việc phát triển các phần mềm  ứng dụng toán học thì MATLAB  cũng là môi trường lý tưởng vì nó cũng cung cấp công cụ xây dựng giao diện thân  thiện một cách nhanh chóng. − Không chỉ như vây, MATLAB còn là môi trường vô cùng thuận lợi cho việc học  tập, nghiên cứu và phát triển các  ứng dụng đa dạng trong nhiều lĩnh vực khác  nhau của khoa học và công nghệ  từ  điều khiển, trí tuệ  nhân tạo đến tài chính,  viễn thông,... − Chính vì thế, MATLAB được đông đảo các giới khoa học và công nghệ sử dụng  rộng rãi và được giảng dạy, phổ  biến trên toàn thế  giới.  Ở  Việt nam chúng ta  cũng phải làm được  điều này. TÀI LIỆU THAM KHẢO 1. Đặng Quang  Á, Matlab­một  môi  trường  tính  toán kỹ  thuật và đồ  họa nhanh,  Tuyển tập báo cáo Hội thảo “Phát triển công cụ tin học trợ giúp cho giảng dạy,  nghiên cứu và ứng dụng toán học”, Hà nội, 9­10/4/1999, 194­198. 2. Lê Viết Dư Khương, Matlab một công cụ tin học mạnh trợ giúp hữu hiệu việc  giảng dạy và nghiên cứu trong nhiều lĩnh vực khoa học và kỹ thuật, Tuyển tập  trên, 55­74. 3. Đặng Quang Á, Xây dựng một số hàm giải phương trình đạo hàm riêng cấp bốn  bổ sung cho ToolBox PDE của MATLAB, Hội thảo “Một số vấn đề chọn lọc của  công nghệ thông tin và truyền thông”, Thái nguyên, 8/2003. 4. MATLAB Help của MATLAB version 7.0.1, 9/2004. 5. Web site http://mathworks.com
  10. Ph¸t triÓn c«ng cô tin häc  trî gióp cho gi¶ng d¹y, nghiªn cøu  vµ øng   dông To¸n häc                 26      6. Trang Web http://www.prenhall.com/recktenwald

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản